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
5
+ import ' dart:async' ;
6
6
7
7
import 'package:dwds/src/connections/debug_connection.dart' ;
8
8
import 'package:dwds/src/debugging/debugger.dart' ;
@@ -20,8 +20,8 @@ final context = TestContext(
20
20
WipConnection get tabConnection => context.tabConnection;
21
21
22
22
void main () {
23
- AppInspector inspector;
24
- Debugger debugger;
23
+ late AppInspector inspector;
24
+ late Debugger debugger;
25
25
26
26
setUpAll (() async {
27
27
await context.setUp ();
@@ -54,9 +54,9 @@ void main() {
54
54
final remoteObject = await libraryPublicFinal ();
55
55
final nullVariable = await inspector.loadField (remoteObject, 'notFinal' );
56
56
final ref = await inspector.instanceRefFor (nullVariable);
57
- expect (ref.valueAsString, 'null' );
57
+ expect (ref! .valueAsString, 'null' );
58
58
expect (ref.kind, InstanceKind .kNull);
59
- final classRef = ref.classRef;
59
+ final classRef = ref.classRef! ;
60
60
expect (classRef.name, 'Null' );
61
61
expect (classRef.id, 'classes|dart:core|Null' );
62
62
});
@@ -65,9 +65,9 @@ void main() {
65
65
final remoteObject = await libraryPublicFinal ();
66
66
final count = await inspector.loadField (remoteObject, 'count' );
67
67
final ref = await inspector.instanceRefFor (count);
68
- expect (ref.valueAsString, '0' );
68
+ expect (ref! .valueAsString, '0' );
69
69
expect (ref.kind, InstanceKind .kDouble);
70
- final classRef = ref.classRef;
70
+ final classRef = ref.classRef! ;
71
71
expect (classRef.name, 'Double' );
72
72
expect (classRef.id, 'classes|dart:core|Double' );
73
73
});
@@ -76,8 +76,8 @@ void main() {
76
76
final remoteObject = await libraryPublicFinal ();
77
77
final count = await inspector.loadField (remoteObject, 'myselfField' );
78
78
final ref = await inspector.instanceRefFor (count);
79
- expect (ref.kind, InstanceKind .kPlainInstance);
80
- final classRef = ref.classRef;
79
+ expect (ref! .kind, InstanceKind .kPlainInstance);
80
+ final classRef = ref.classRef! ;
81
81
expect (classRef.name, 'MyTestClass<dynamic>' );
82
82
expect (
83
83
classRef.id,
@@ -87,11 +87,11 @@ void main() {
87
87
88
88
test ('for closure' , () async {
89
89
final remoteObject = await libraryPublicFinal ();
90
- final properties = await debugger.getProperties (remoteObject.objectId);
90
+ final properties = await debugger.getProperties (remoteObject.objectId! );
91
91
final closure =
92
92
properties.firstWhere ((property) => property.name == 'closure' );
93
- final instanceRef = await inspector.instanceRefFor (closure.value);
94
- final functionName = instanceRef.closureFunction.name;
93
+ final instanceRef = await inspector.instanceRefFor (closure.value! );
94
+ final functionName = instanceRef! .closureFunction! .name;
95
95
// Older SDKs do not contain function names
96
96
if (functionName != 'Closure' ) {
97
97
expect (functionName, 'someFunction' );
@@ -102,40 +102,40 @@ void main() {
102
102
test ('for a list' , () async {
103
103
final remoteObject = await libraryPublic ();
104
104
final ref = await inspector.instanceRefFor (remoteObject);
105
- expect (ref.length, greaterThan (0 ));
105
+ expect (ref! .length, greaterThan (0 ));
106
106
expect (ref.kind, InstanceKind .kList);
107
- expect (ref.classRef.name, 'List<String>' );
107
+ expect (ref.classRef! .name, 'List<String>' );
108
108
});
109
109
110
110
test ('for map' , () async {
111
111
final remoteObject =
112
112
await inspector.jsEvaluate (libraryVariableExpression ('map' ));
113
113
final ref = await inspector.instanceRefFor (remoteObject);
114
- expect (ref.length, 2 );
114
+ expect (ref! .length, 2 );
115
115
expect (ref.kind, InstanceKind .kMap);
116
- expect (ref.classRef.name, 'LinkedMap<Object, Object>' );
116
+ expect (ref.classRef! .name, 'LinkedMap<Object, Object>' );
117
117
});
118
118
119
119
test ('for an IdentityMap' , () async {
120
120
final remoteObject =
121
121
await inspector.jsEvaluate (libraryVariableExpression ('identityMap' ));
122
122
final ref = await inspector.instanceRefFor (remoteObject);
123
- expect (ref.length, 2 );
123
+ expect (ref! .length, 2 );
124
124
expect (ref.kind, InstanceKind .kMap);
125
- expect (ref.classRef.name, 'IdentityMap<String, int>' );
125
+ expect (ref.classRef! .name, 'IdentityMap<String, int>' );
126
126
});
127
127
});
128
128
129
129
group ('instance' , () {
130
130
test ('for class object' , () async {
131
131
final remoteObject = await libraryPublicFinal ();
132
132
final instance = await inspector.instanceFor (remoteObject);
133
- expect (instance.kind, InstanceKind .kPlainInstance);
134
- final classRef = instance.classRef;
133
+ expect (instance! .kind, InstanceKind .kPlainInstance);
134
+ final classRef = instance.classRef! ;
135
135
expect (classRef, isNotNull);
136
136
expect (classRef.name, 'MyTestClass<dynamic>' );
137
137
final fieldNames =
138
- instance.fields.map ((boundField) => boundField.decl.name).toList ();
138
+ instance.fields! .map ((boundField) => boundField.decl! .name).toList ();
139
139
expect (fieldNames, [
140
140
'_privateField' ,
141
141
'abstractField' ,
@@ -146,54 +146,54 @@ void main() {
146
146
'notFinal' ,
147
147
'tornOff' ,
148
148
]);
149
- for (var field in instance.fields) {
150
- expect (field.decl.declaredType, isNotNull);
149
+ for (var field in instance.fields! ) {
150
+ expect (field.decl! .declaredType, isNotNull);
151
151
}
152
152
});
153
153
154
154
test ('for closure' , () async {
155
155
final remoteObject = await libraryPublicFinal ();
156
- final properties = await debugger.getProperties (remoteObject.objectId);
156
+ final properties = await debugger.getProperties (remoteObject.objectId! );
157
157
final closure =
158
158
properties.firstWhere ((property) => property.name == 'closure' );
159
- final instance = await inspector.instanceFor (closure.value);
160
- expect (instance.kind, InstanceKind .kClosure);
161
- expect (instance.classRef.name, 'Closure' );
159
+ final instance = await inspector.instanceFor (closure.value! );
160
+ expect (instance! .kind, InstanceKind .kClosure);
161
+ expect (instance.classRef! .name, 'Closure' );
162
162
});
163
163
164
164
test ('for a nested class' , () async {
165
165
final libraryRemoteObject = await libraryPublicFinal ();
166
166
final fieldRemoteObject =
167
167
await inspector.loadField (libraryRemoteObject, 'myselfField' );
168
168
final instance = await inspector.instanceFor (fieldRemoteObject);
169
- expect (instance.kind, InstanceKind .kPlainInstance);
170
- final classRef = instance.classRef;
169
+ expect (instance! .kind, InstanceKind .kPlainInstance);
170
+ final classRef = instance.classRef! ;
171
171
expect (classRef, isNotNull);
172
172
expect (classRef.name, 'MyTestClass<dynamic>' );
173
173
});
174
174
175
175
test ('for a list' , () async {
176
176
final remote = await libraryPublic ();
177
177
final instance = await inspector.instanceFor (remote);
178
- expect (instance.kind, InstanceKind .kList);
179
- final classRef = instance.classRef;
178
+ expect (instance! .kind, InstanceKind .kList);
179
+ final classRef = instance.classRef! ;
180
180
expect (classRef, isNotNull);
181
181
expect (classRef.name, 'List<String>' );
182
- final first = instance.elements[0 ];
182
+ final first = instance.elements! [0 ];
183
183
expect (first.valueAsString, 'library' );
184
184
});
185
185
186
186
test ('for a map' , () async {
187
187
final remote =
188
188
await inspector.jsEvaluate (libraryVariableExpression ('map' ));
189
189
final instance = await inspector.instanceFor (remote);
190
- expect (instance.kind, InstanceKind .kMap);
191
- final classRef = instance.classRef;
190
+ expect (instance! .kind, InstanceKind .kMap);
191
+ final classRef = instance.classRef! ;
192
192
expect (classRef.name, 'LinkedMap<Object, Object>' );
193
- final first = instance.associations[0 ].value as InstanceRef ;
193
+ final first = instance.associations! [0 ].value as InstanceRef ;
194
194
expect (first.kind, InstanceKind .kList);
195
195
expect (first.length, 3 );
196
- final second = instance.associations[1 ].value as InstanceRef ;
196
+ final second = instance.associations! [1 ].value as InstanceRef ;
197
197
expect (second.kind, InstanceKind .kString);
198
198
expect (second.valueAsString, 'something' );
199
199
});
@@ -202,10 +202,10 @@ void main() {
202
202
final remote =
203
203
await inspector.jsEvaluate (libraryVariableExpression ('identityMap' ));
204
204
final instance = await inspector.instanceFor (remote);
205
- expect (instance.kind, InstanceKind .kMap);
206
- final classRef = instance.classRef;
205
+ expect (instance! .kind, InstanceKind .kMap);
206
+ final classRef = instance.classRef! ;
207
207
expect (classRef.name, 'IdentityMap<String, int>' );
208
- final first = instance.associations[0 ].value;
208
+ final first = instance.associations! [0 ].value;
209
209
expect (first.valueAsString, '1' );
210
210
});
211
211
@@ -214,12 +214,12 @@ void main() {
214
214
final remote =
215
215
await inspector.jsEvaluate (libraryVariableExpression ('notAList' ));
216
216
final instance = await inspector.instanceFor (remote);
217
- expect (instance.kind, InstanceKind .kPlainInstance);
218
- final classRef = instance.classRef;
217
+ expect (instance! .kind, InstanceKind .kPlainInstance);
218
+ final classRef = instance.classRef! ;
219
219
expect (classRef.name, 'NotReallyAList' );
220
220
expect (instance.elements, isNull);
221
- final field = instance.fields.first;
222
- expect (field.decl.name, '_internal' );
221
+ final field = instance.fields! .first;
222
+ expect (field.decl! .name, '_internal' );
223
223
});
224
224
});
225
225
}
0 commit comments