Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(503)

Unified Diff: runtime/observatory/tests/service/developer_extension_test.dart

Issue 1299493007: Rework service extensions to be safe (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/lib/developer.dart ('k') | runtime/observatory/tests/service/service.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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']));
+ }
+
},
];
« no previous file with comments | « runtime/lib/developer.dart ('k') | runtime/observatory/tests/service/service.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698