Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
31d2ee9c
Commit
31d2ee9c
authored
Jul 28, 2017
by
Yegor Jbanov
Committed by
Yegor
Jul 28, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tests for waitFor/waitForAbsent
parent
11d7c79b
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
139 additions
and
0 deletions
+139
-0
integration_ui.dart
dev/devicelab/lib/tasks/integration_ui.dart
+1
-0
driver.dart
dev/integration_tests/ui/lib/driver.dart
+57
-0
driver_test.dart
dev/integration_tests/ui/test_driver/driver_test.dart
+81
-0
No files found.
dev/devicelab/lib/tasks/integration_ui.dart
View file @
31d2ee9c
...
...
@@ -22,6 +22,7 @@ Future<TaskResult> runEndToEndTests() async {
await
prepareProvisioningCertificates
(
testDirectory
.
path
);
await
flutter
(
'drive'
,
options:
<
String
>[
'--verbose'
,
'-d'
,
deviceId
,
'lib/keyboard_resize.dart'
]);
await
flutter
(
'drive'
,
options:
<
String
>[
'--verbose'
,
'-d'
,
deviceId
,
'lib/driver.dart'
]);
});
return
new
TaskResult
.
success
(<
String
,
dynamic
>{});
...
...
dev/integration_tests/ui/lib/driver.dart
0 → 100644
View file @
31d2ee9c
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'package:flutter/material.dart'
;
import
'package:flutter/widgets.dart'
;
import
'package:flutter_driver/driver_extension.dart'
;
void
main
(
)
{
enableFlutterDriverExtension
();
runApp
(
new
DriverTestApp
());
}
class
DriverTestApp
extends
StatefulWidget
{
@override
State
<
StatefulWidget
>
createState
()
{
return
new
DriverTestAppState
();
}
}
class
DriverTestAppState
extends
State
<
DriverTestApp
>
{
bool
present
=
true
;
@override
Widget
build
(
BuildContext
context
)
{
return
new
MaterialApp
(
home:
new
Scaffold
(
appBar:
new
AppBar
(
title:
const
Text
(
'FlutterDriver test'
),
),
body:
new
ListView
(
padding:
const
EdgeInsets
.
all
(
5.0
),
children:
<
Widget
>[
new
Row
(
children:
<
Widget
>[
new
Expanded
(
child:
new
Text
(
present
?
'present'
:
'absent'
),
),
new
RaisedButton
(
child:
const
Text
(
'toggle'
,
key:
const
ValueKey
<
String
>(
'togglePresent'
),
),
onPressed:
()
{
setState
(()
{
present
=
!
present
;
});
},
),
],
),
],
),
),
);
}
}
dev/integration_tests/ui/test_driver/driver_test.dart
0 → 100644
View file @
31d2ee9c
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:async'
;
import
'package:flutter_driver/flutter_driver.dart'
;
import
'package:test/test.dart'
;
void
main
(
)
{
group
(
'FlutterDriver'
,
()
{
final
SerializableFinder
presentText
=
find
.
text
(
'present'
);
FlutterDriver
driver
;
setUpAll
(()
async
{
driver
=
await
FlutterDriver
.
connect
();
});
tearDownAll
(()
async
{
await
driver
.
close
();
});
test
(
'waitFor should find text "present"'
,
()
async
{
await
driver
.
waitFor
(
presentText
);
});
test
(
'waitForAbsent should time out waiting for text "present" to disappear'
,
()
async
{
try
{
await
driver
.
waitForAbsent
(
presentText
,
timeout:
const
Duration
(
seconds:
1
));
fail
(
'expected DriverError'
);
}
on
DriverError
catch
(
error
)
{
expect
(
error
.
message
,
contains
(
'Timeout while executing waitForAbsent'
));
}
});
test
(
'waitForAbsent should resolve when text "present" disappears'
,
()
async
{
// Begin waiting for it to disappear
final
Completer
<
Null
>
whenWaitForAbsentResolves
=
new
Completer
<
Null
>();
driver
.
waitForAbsent
(
presentText
).
then
(
whenWaitForAbsentResolves
.
complete
,
onError:
whenWaitForAbsentResolves
.
completeError
,
);
// Wait 1 second then make it disappear
await
new
Future
<
Null
>.
delayed
(
const
Duration
(
seconds:
1
));
await
driver
.
tap
(
find
.
byValueKey
(
'togglePresent'
));
// Ensure waitForAbsent resolves
await
whenWaitForAbsentResolves
.
future
;
});
test
(
'waitFor times out waiting for "present" to reappear'
,
()
async
{
try
{
await
driver
.
waitFor
(
presentText
,
timeout:
const
Duration
(
seconds:
1
));
fail
(
'expected DriverError'
);
}
on
DriverError
catch
(
error
)
{
expect
(
error
.
message
,
contains
(
'Timeout while executing waitFor'
));
}
});
test
(
'waitFor should resolve when text "present" reappears'
,
()
async
{
// Begin waiting for it to reappear
final
Completer
<
Null
>
whenWaitForResolves
=
new
Completer
<
Null
>();
driver
.
waitFor
(
presentText
).
then
(
whenWaitForResolves
.
complete
,
onError:
whenWaitForResolves
.
completeError
,
);
// Wait 1 second then make it appear
await
new
Future
<
Null
>.
delayed
(
const
Duration
(
seconds:
1
));
await
driver
.
tap
(
find
.
byValueKey
(
'togglePresent'
));
// Ensure waitFor resolves
await
whenWaitForResolves
.
future
;
});
test
(
'waitForAbsent resolves immediately when the element does not exist'
,
()
async
{
await
driver
.
waitForAbsent
(
find
.
text
(
'that does not exist'
));
});
});
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment