OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:isolate'; | 6 import 'dart:isolate'; |
7 import 'dart:typed_data'; | 7 import 'dart:typed_data'; |
8 import 'dart:mojo.bindings' as bindings; | 8 import 'dart:mojo.bindings' as bindings; |
9 import 'dart:mojo.core' as core; | 9 import 'dart:mojo.core' as core; |
10 | 10 |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 Expect.listEquals(arrayValues.f3, arrayValues2.f3); | 106 Expect.listEquals(arrayValues.f3, arrayValues2.f3); |
107 Expect.listEquals(arrayValues.f4, arrayValues2.f4); | 107 Expect.listEquals(arrayValues.f4, arrayValues2.f4); |
108 Expect.listEquals(arrayValues.f5, arrayValues2.f5); | 108 Expect.listEquals(arrayValues.f5, arrayValues2.f5); |
109 } | 109 } |
110 | 110 |
111 testSerializeStructs() { | 111 testSerializeStructs() { |
112 testSerializeNamedRegion(); | 112 testSerializeNamedRegion(); |
113 testSerializeArrayValueTypes(); | 113 testSerializeArrayValueTypes(); |
114 } | 114 } |
115 | 115 |
| 116 void closingProviderIsolate(core.MojoMessagePipeEndpoint endpoint) { |
| 117 var provider = new ProviderImpl(endpoint); |
| 118 provider._stub.close(); |
| 119 } |
| 120 |
| 121 Future<bool> runOnClosedTest() { |
| 122 var testCompleter = new Completer(); |
| 123 var pipe = new core.MojoMessagePipe(); |
| 124 var proxy = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); |
| 125 proxy.impl.onError = () => testCompleter.complete(true); |
| 126 Isolate.spawn(closingProviderIsolate, pipe.endpoints[1]); |
| 127 return testCompleter.future.then((b) { |
| 128 Expect.isTrue(b); |
| 129 }); |
| 130 } |
| 131 |
116 main() async { | 132 main() async { |
117 testSerializeStructs(); | 133 testSerializeStructs(); |
118 await testCallResponse(); | 134 await testCallResponse(); |
119 await testAwaitCallResponse(); | 135 await testAwaitCallResponse(); |
| 136 await runOnClosedTest(); |
120 } | 137 } |
OLD | NEW |