2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // @dart = 2.9
6
-
7
5
@Timeout (Duration (seconds: 60 ))
8
6
import 'dart:async' ;
9
7
import 'dart:io' ;
@@ -15,28 +13,28 @@ import 'package:webdev/src/serve/chrome.dart';
15
13
import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart' ;
16
14
17
15
void main () {
18
- Chrome chrome;
16
+ Chrome ? chrome;
19
17
20
- Future <void > launchChrome ({int port, String userDataDir}) async {
18
+ Future <void > launchChrome ({int ? port, String ? userDataDir}) async {
21
19
chrome = await Chrome .start ([_googleUrl],
22
20
port: port ?? 0 , userDataDir: userDataDir);
23
21
}
24
22
25
23
Future <void > openTab (String url) =>
26
- chrome.chromeConnection.getUrl (_openTabUrl (url));
24
+ chrome! .chromeConnection.getUrl (_openTabUrl (url));
27
25
28
26
Future <void > closeTab (ChromeTab tab) =>
29
- chrome.chromeConnection.getUrl (_closeTabUrl (tab.id));
27
+ chrome! .chromeConnection.getUrl (_closeTabUrl (tab.id));
30
28
31
29
Future <WipConnection > connectToTab (String url) async {
32
- var tab = await chrome.chromeConnection.getTab ((t) => t.url.contains (url));
30
+ var tab = await chrome! .chromeConnection.getTab ((t) => t.url.contains (url));
33
31
expect (tab, isNotNull);
34
- return tab.connect ();
32
+ return tab! .connect ();
35
33
}
36
34
37
35
group ('chrome with temp data dir' , () {
38
36
tearDown (() async {
39
- var tabs = await chrome? .chromeConnection? .getTabs ();
37
+ var tabs = await chrome? .chromeConnection.getTabs ();
40
38
if (tabs != null ) {
41
39
for (var tab in tabs) {
42
40
await closeTab (tab);
@@ -53,7 +51,7 @@ void main() {
53
51
54
52
test ('has a working debugger' , () async {
55
53
await launchChrome ();
56
- var tabs = await chrome.chromeConnection.getTabs ();
54
+ var tabs = await chrome! .chromeConnection.getTabs ();
57
55
expect (
58
56
tabs,
59
57
contains (const TypeMatcher <ChromeTab >()
@@ -62,7 +60,7 @@ void main() {
62
60
63
61
test ('uses open debug port if provided port is 0' , () async {
64
62
await launchChrome (port: 0 );
65
- expect (chrome.debugPort, isNot (equals (0 )));
63
+ expect (chrome! .debugPort, isNot (equals (0 )));
66
64
});
67
65
68
66
test ('has correct profile path' , () async {
@@ -84,16 +82,16 @@ void main() {
84
82
});
85
83
86
84
group ('chrome with user data dir' , () {
87
- Directory dataDir;
88
- StreamController <String > logController;
89
- Stream <String > logStream;
85
+ late Directory dataDir;
86
+ late StreamController <String > logController;
87
+ late Stream <String > logStream;
90
88
91
89
setUp (() {
92
90
logController = StreamController <String >();
93
91
logStream = logController.stream;
94
92
95
93
void _logWriter (Level level, String message,
96
- {String error, String loggerName, String stackTrace}) {
94
+ {String ? error, String ? loggerName, String ? stackTrace}) {
97
95
if (level >= Level .INFO ) {
98
96
logController.add ('[$level ] $loggerName : $message ' );
99
97
}
@@ -104,7 +102,7 @@ void main() {
104
102
});
105
103
106
104
tearDown (() async {
107
- var tabs = await chrome? .chromeConnection? .getTabs ();
105
+ var tabs = await chrome? .chromeConnection.getTabs ();
108
106
if (tabs != null ) {
109
107
for (var tab in tabs) {
110
108
await closeTab (tab);
@@ -121,7 +119,7 @@ void main() {
121
119
'.*chrome_user_data_copy' )));
122
120
await logController.close ();
123
121
}
124
- dataDir? .deleteSync (recursive: true );
122
+ dataDir.deleteSync (recursive: true );
125
123
});
126
124
127
125
test ('works with debug port' , () async {
@@ -132,7 +130,7 @@ void main() {
132
130
test ('has a working debugger' , () async {
133
131
await launchChrome (userDataDir: dataDir.path);
134
132
135
- var tabs = await chrome.chromeConnection.getTabs ();
133
+ var tabs = await chrome! .chromeConnection.getTabs ();
136
134
expect (
137
135
tabs,
138
136
contains (const TypeMatcher <ChromeTab >()
@@ -160,7 +158,7 @@ void main() {
160
158
var userDataDir = autoDetectChromeUserDataDirectory ();
161
159
expect (userDataDir, isNotNull);
162
160
163
- expect (Directory (userDataDir).existsSync (), isTrue);
161
+ expect (Directory (userDataDir! ).existsSync (), isTrue);
164
162
165
163
await launchChrome (userDataDir: userDataDir);
166
164
await openTab (_chromeVersionUrl);
@@ -188,14 +186,14 @@ String _openTabUrl(String url) => '/json/new?$url';
188
186
String _closeTabUrl (String id) => '/json/close/$id ' ;
189
187
190
188
Future <String > _evaluateExpression (WipPage page, String expression) async {
191
- var result = '' ;
189
+ String ? result = '' ;
192
190
while (result == null || result.isEmpty) {
193
191
await Future .delayed (const Duration (milliseconds: 100 ));
194
192
var wipResponse = await page.sendCommand (
195
193
'Runtime.evaluate' ,
196
194
params: {'expression' : expression},
197
195
);
198
- result = wipResponse.json['result' ]['result' ]['value' ] as String ;
196
+ result = wipResponse.json['result' ]['result' ]['value' ] as String ? ;
199
197
}
200
198
return result;
201
199
}
0 commit comments