@@ -11,53 +11,43 @@ import 'package:unittest/unittest.dart';
1111import 'service_test_common.dart' ;
1212import 'test_helper.dart' ;
1313
14- Future <ServiceExtensionResponse > Handler (String method,
15- Map paremeters) {
14+ Future <ServiceExtensionResponse > Handler (String method, Map paremeters) {
1615 print ('Invoked extension: $method ' );
1716 switch (method) {
1817 case 'ext..delay' :
19- Completer c = new Completer ();
18+ Completer c = new Completer < ServiceExtensionResponse > ();
2019 new Timer (new Duration (seconds: 1 ), () {
2120 c.complete (new ServiceExtensionResponse .result (jsonEncode ({
22- 'type' : '_delayedType' ,
23- 'method' : method,
24- 'parameters' : paremeters,
25- })));
21+ 'type' : '_delayedType' ,
22+ 'method' : method,
23+ 'parameters' : paremeters,
24+ })));
2625 });
2726 return c.future;
2827 case 'ext..error' :
29- return new Future .value (
30- new ServiceExtensionResponse .error (
31- ServiceExtensionResponse .extensionErrorMin,
32- 'My error detail.' ));
28+ return new Future <ServiceExtensionResponse >.value (
29+ new ServiceExtensionResponse .error (
30+ ServiceExtensionResponse .extensionErrorMin, 'My error detail.' ));
3331 case 'ext..exception' :
3432 throw "I always throw!" ;
3533 case 'ext..success' :
36- return new Future .value (
34+ return new Future < ServiceExtensionResponse > .value (
3735 new ServiceExtensionResponse .result (jsonEncode ({
38- 'type' : '_extensionType' ,
39- 'method' : method,
40- 'parameters' : paremeters,
41- })));
36+ 'type' : '_extensionType' ,
37+ 'method' : method,
38+ 'parameters' : paremeters,
39+ })));
4240 case 'ext..null' :
4341 return null ;
4442 case 'ext..nullFuture' :
45- return new Future .value (null );
43+ return new Future < ServiceExtensionResponse > .value (null );
4644 }
4745}
4846
49- Future <ServiceExtensionResponse > LanguageErrorHandler (String method,
50- Map paremeters) {
51- // The following is an intentional syntax error.
52- klajsdlkjfad
53- }
54-
5547void test () {
5648 registerExtension ('ext..delay' , Handler );
5749 debugger ();
58- postEvent ('ALPHA' , {
59- 'cat' : 'dog'
60- });
50+ postEvent ('ALPHA' , {'cat' : 'dog' });
6151 debugger ();
6252 registerExtension ('ext..error' , Handler );
6353 registerExtension ('ext..exception' , Handler );
@@ -71,15 +61,20 @@ void test() {
7161 exceptionThrown = true ;
7262 }
7363 expect (exceptionThrown, isTrue);
74- registerExtension ('ext..languageError' , LanguageErrorHandler );
7564}
7665
7766var tests = < IsolateTest > [
7867 hasStoppedAtBreakpoint,
7968 (Isolate isolate) async {
8069 await isolate.load ();
81- expect (isolate.extensionRPCs.length, 1 );
82- expect (isolate.extensionRPCs[0 ], equals ('ext..delay' ));
70+ // Note: extensions other than those is this test might already be
71+ // registered by core libraries.
72+ expect (isolate.extensionRPCs, contains ('ext..delay' ));
73+ expect (isolate.extensionRPCs, isNot (contains ('ext..error' )));
74+ expect (isolate.extensionRPCs, isNot (contains ('ext..exception' )));
75+ expect (isolate.extensionRPCs, isNot (contains ('ext..null' )));
76+ expect (isolate.extensionRPCs, isNot (contains ('ext..nullFuture' )));
77+ expect (isolate.extensionRPCs, isNot (contains ('ext..success' )));
8378 },
8479 resumeIsolateAndAwaitEvent (Isolate .kExtensionStream, (ServiceEvent event) {
8580 expect (event.kind, equals (ServiceEvent .kExtension));
@@ -127,27 +122,19 @@ var tests = <IsolateTest>[
127122 await isolate.invokeRpcNoUpgrade ('ext..nullFuture' , {});
128123 } on ServerRpcException catch (e, st) {
129124 expect (e.code, equals (ServiceExtensionResponse .extensionError));
130- expect (e.message, equals ('Extension handler must complete to a '
131- 'ServiceExtensionResponse' ));
125+ expect (
126+ e.message,
127+ equals ('Extension handler must complete to a '
128+ 'ServiceExtensionResponse' ));
132129 }
133130
134- result = await isolate. invokeRpcNoUpgrade ( 'ext..success' ,
135- {'apple' : 'banana' });
131+ result =
132+ await isolate. invokeRpcNoUpgrade ( 'ext..success' , {'apple' : 'banana' });
136133 expect (result['type' ], equals ('_extensionType' ));
137134 expect (result['method' ], equals ('ext..success' ));
138135 expect (result['parameters' ]['isolateId' ], isNotNull);
139136 expect (result['parameters' ]['apple' ], equals ('banana' ));
140-
141-
142- try {
143- result = await isolate.invokeRpcNoUpgrade ('ext..languageError' , {});
144- } on ServerRpcException catch (e, st) {
145- expect (e.code, equals (ServiceExtensionResponse .extensionError));
146- expect (e.message, stringContainsInOrder ([
147- 'developer_extension_test.dart' ,
148- 'semicolon expected' ]));
149- }
150137 },
151138];
152139
153- main (args) async => runIsolateTests (args, tests, testeeConcurrent: test);
140+ main (args) async => runIsolateTests (args, tests, testeeConcurrent: test);
0 commit comments