Index: mojo/dart/unittests/embedder_tests/control_messages_test.dart |
diff --git a/mojo/dart/unittests/embedder_tests/control_messages_test.dart b/mojo/dart/unittests/embedder_tests/control_messages_test.dart |
index 08eb8ac0a5a2aa602edd68e7e281c9fc03a07632..5418403e0e38874ae6b9605bd0953f5bb9f46602 100644 |
--- a/mojo/dart/unittests/embedder_tests/control_messages_test.dart |
+++ b/mojo/dart/unittests/embedder_tests/control_messages_test.dart |
@@ -19,8 +19,9 @@ class IntegerAccessorImpl implements sample.IntegerAccessor { |
// Some initial value. |
int _value = 0; |
- dynamic getInteger([Function responseFactory = null]) => |
- responseFactory(_value, sample.Enum.value); |
+ void getInteger(Function response) { |
+ response(_value, sample.Enum.value); |
+ } |
void setInteger(int data, sample.Enum type) { |
Expect.equals(sample.Enum.value, type); |
@@ -39,11 +40,11 @@ List buildConnectedProxyAndStub() { |
return [proxy, stub]; |
} |
-void closeProxyAndStub(List ps) { |
+closeProxyAndStub(List ps) async { |
var proxy = ps[0]; |
var stub = ps[1]; |
- proxy.close(); |
- stub.close(); |
+ await proxy.close(); |
+ await stub.close(); |
} |
testQueryVersion() async { |
@@ -56,7 +57,7 @@ testQueryVersion() async { |
Expect.equals(maxVersion, providedVersion); |
// The proxy's version has been updated. |
Expect.equals(providedVersion, proxy.ctrl.version); |
- closeProxyAndStub(ps); |
+ await closeProxyAndStub(ps); |
} |
testRequireVersionSuccess() async { |
@@ -65,10 +66,15 @@ testRequireVersionSuccess() async { |
Expect.equals(0, proxy.ctrl.version); |
// Require version maxVersion. |
proxy.ctrl.requireVersion(maxVersion); |
+ Expect.equals(maxVersion, proxy.ctrl.version); |
// Make a request and get a response. |
- var response = await proxy.getInteger(); |
- Expect.equals(0, response.data); |
- closeProxyAndStub(ps); |
+ var c = new Completer(); |
+ proxy.getInteger((int response, sample.Enum type) { |
+ c.complete(response); |
+ }); |
+ var response = await proxy.responseOrError(c.future); |
+ Expect.equals(0, response); |
+ await closeProxyAndStub(ps); |
} |
testRequireVersionDisconnect() async { |
@@ -81,22 +87,30 @@ testRequireVersionDisconnect() async { |
// Set integer. |
proxy.setInteger(34, sample.Enum.value); |
// Get integer. |
- var response = await proxy.getInteger(); |
- Expect.equals(34, response.data); |
+ var c = new Completer(); |
+ proxy.getInteger((int response, sample.Enum type) { |
+ c.complete(response); |
+ }); |
+ var response = await proxy.responseOrError(c.future); |
+ Expect.equals(34, response); |
// Require version maxVersion + 1 |
proxy.ctrl.requireVersion(maxVersion + 1); |
// Version number is updated synchronously. |
Expect.equals(maxVersion + 1, proxy.ctrl.version); |
// Get integer, expect a failure. |
bool exceptionCaught = false; |
+ c = new Completer(); |
+ proxy.getInteger((int response, sample.Enum type) { |
+ Expect.fail('Should ahve an exception.'); |
+ }); |
try { |
- response = await proxy.getInteger(); |
+ response = await proxy.responseOrError(c.future); |
Expect.fail('Should have an exception.'); |
} catch(e) { |
exceptionCaught = true; |
} |
Expect.isTrue(exceptionCaught); |
- closeProxyAndStub(ps); |
+ await closeProxyAndStub(ps); |
} |
main() async { |