Index: runtime/observatory/tests/service/developer_extension_test.dart |
diff --git a/runtime/observatory/tests/service/developer_extension_test.dart b/runtime/observatory/tests/service/developer_extension_test.dart |
index fcfd66751f8139fe0a97ff585a715a3ef94d70c5..f134606fb66b6bdf0b2ab4dac38d6b785cd4ba9d 100644 |
--- a/runtime/observatory/tests/service/developer_extension_test.dart |
+++ b/runtime/observatory/tests/service/developer_extension_test.dart |
@@ -47,6 +47,12 @@ Future<ServiceExtensionResponse> Handler(String method, |
} |
} |
+Future<ServiceExtensionResponse> LanguageErrorHandler(String method, |
+ Map paremeters) { |
+ // The following is an intentional syntax error. |
+ klajsdlkjfad |
+} |
+ |
void test() { |
registerExtension('__delay', Handler); |
registerExtension('__error', Handler); |
@@ -61,6 +67,7 @@ void test() { |
exceptionThrown = true; |
} |
expect(exceptionThrown, isTrue); |
+ registerExtension('__languageError', LanguageErrorHandler); |
} |
var tests = [ |
@@ -98,7 +105,8 @@ var tests = [ |
await isolate.invokeRpcNoUpgrade('__nullFuture', {}); |
} on ServerRpcException catch (e, st) { |
expect(e.code, equals(ServiceExtensionResponse.kExtensionError)); |
- expect(e.message, equals('Extension handler returned null')); |
+ expect(e.message, equals('Extension handler must complete to a ' |
+ 'ServiceExtensionResponse')); |
} |
result = await isolate.invokeRpcNoUpgrade('__success', |
@@ -109,6 +117,16 @@ var tests = [ |
expect(result['parameters']['apple'], equals('banana')); |
+ try { |
+ result = await isolate.invokeRpcNoUpgrade('__languageError', {}); |
+ } on ServerRpcException catch (e, st) { |
+ expect(e.code, equals(ServiceExtensionResponse.kExtensionError)); |
+ expect(e.message, stringContainsInOrder([ |
+ 'Error in extension `__languageError`:', |
+ 'developer_extension_test.dart', |
+ 'semicolon expected'])); |
+ } |
+ |
}, |
]; |