Skip to content

Commit 4b6a901

Browse files
Fix getText to support TextField (#24)
1 parent 950c706 commit 4b6a901

File tree

5 files changed

+16
-14
lines changed

5 files changed

+16
-14
lines changed

demo-app/pubspec.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ packages:
1515
path: "../server"
1616
relative: true
1717
source: path
18-
version: "0.0.21"
18+
version: "0.0.23"
1919
archive:
2020
dependency: transitive
2121
description:

server/lib/src/runner.dart

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@ import 'package:appium_flutter_server/src/server.dart';
77
import 'package:integration_test/integration_test.dart';
88
import 'package:package_info_plus/package_info_plus.dart';
99

10-
1110
const MAX_TEST_DURATION_SECS = 24 * 60 * 60;
1211
// Need a better way to fetch this for automated release, this needs to be updated along with version bump
1312
// Can stay for now as it is not a breaking change
14-
const serverVersion = '0.0.22';
15-
13+
const serverVersion = '0.0.23';
1614

1715
void initializeTest({Widget? app, Function? callback}) async {
1816
IntegrationTestWidgetsFlutterBinding binding =

server/lib/src/utils/element_helper.dart

+9-4
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import 'package:appium_flutter_server/src/models/api/find_element.dart';
1212
import 'package:appium_flutter_server/src/models/session.dart';
1313
import 'package:appium_flutter_server/src/utils/flutter_settings.dart';
1414
import 'package:flutter/gestures.dart';
15+
import 'package:flutter/material.dart';
1516
import 'package:flutter/rendering.dart';
16-
import 'package:flutter/widgets.dart';
1717
import 'package:flutter_test/flutter_test.dart';
1818
import 'package:integration_test/integration_test.dart';
1919

@@ -27,7 +27,6 @@ const defaultScrollDelta = 64.0;
2727
/// Default maximum number of drags during scrolling.
2828
const defaultScrollMaxIteration = 15;
2929

30-
3130
class ElementHelper {
3231
static Future<Finder> findElement(Finder by, {String? contextId}) async {
3332
List<Finder> elementList =
@@ -52,7 +51,9 @@ class ElementHelper {
5251
final FinderResult<Element> elements = finder.evaluate();
5352
if (evaluatePresence) {
5453
await waitForElementExist(FlutterElement.fromBy(finder),
55-
timeout: Duration(milliseconds: FlutterDriver.instance.settings.getSetting('flutterElementWaitTimeout')));
54+
timeout: Duration(
55+
milliseconds: FlutterDriver.instance.settings
56+
.getSetting(FlutterSettings.flutterElementWaitTimeout)));
5657

5758
if (elements.isEmpty) {
5859
throw ElementNotFoundException("Unable to locate element");
@@ -182,6 +183,8 @@ class ElementHelper {
182183
buffer.write(widget.text.toPlainText());
183184
} else if (widget is EditableText) {
184185
buffer.write(widget.controller.text);
186+
} else if (widget is TextField) {
187+
buffer.write(widget.controller?.value.text);
185188
}
186189

187190
if (element is RenderObjectElement) {
@@ -496,7 +499,9 @@ class ElementHelper {
496499
Finder elementToFind = await locateElement(finder, evaluatePresence: false);
497500

498501
await waitForElementExist(FlutterElement.fromBy(scrollViewElement),
499-
timeout: Duration(milliseconds: FlutterDriver.instance.settings.getSetting('flutterElementWaitTimeout')));
502+
timeout: Duration(
503+
milliseconds: FlutterDriver.instance.settings
504+
.getSetting('flutterElementWaitTimeout')));
500505
AxisDirection direction;
501506
if (scrollDirection == null) {
502507
if (scrollViewElement.evaluate().first.widget is Scrollable) {

server/lib/src/utils/flutter_settings.dart

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
class FlutterSettings {
22
Map<String, dynamic> _settings = {};
3+
static const String flutterElementWaitTimeout = "flutterElementWaitTimeout";
34

45
FlutterSettings() {
56
_setDefaultSetting();
67
}
78

89
_setDefaultSetting() {
9-
_settings = {
10-
'flutterElementWaitTimeout': 5000
11-
};
10+
_settings = {flutterElementWaitTimeout: 5000};
1211
}
1312

1413
updateSetting(Map<String, dynamic> capabilities) {
1514
// if the capability sent by user is present in the settings, then update it.
1615
// Else the capability is not known to flutter server and ignore
1716
capabilities.forEach((settingName, value) {
18-
if (_settings[settingName] != null) {
17+
if (_settings[settingName] != null) {
1918
_settings[settingName] = value;
20-
}
19+
}
2120
});
2221
}
2322

server/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: appium_flutter_server
22
description: "Appium Flutter server using Integration Test package for testing Flutter apps with Appium"
3-
version: 0.0.22
3+
version: 0.0.23
44
homepage: "https://github.com/AppiumTestDistribution/appium-flutter-server"
55

66
environment:

0 commit comments

Comments
 (0)