| 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:convert'; | 8 import 'dart:convert'; | 
| 9 | 9 | 
| 10 import 'package:mojo/bindings.dart' as bindings; | 10 import 'package:mojo/bindings.dart' as bindings; | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 51 | 51 | 
| 52 void providerIsolate(core.MojoMessagePipeEndpoint endpoint) { | 52 void providerIsolate(core.MojoMessagePipeEndpoint endpoint) { | 
| 53   new ProviderImpl(endpoint); | 53   new ProviderImpl(endpoint); | 
| 54 } | 54 } | 
| 55 | 55 | 
| 56 Future<bool> testCallResponse() { | 56 Future<bool> testCallResponse() { | 
| 57   var pipe = new core.MojoMessagePipe(); | 57   var pipe = new core.MojoMessagePipe(); | 
| 58   var client = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 58   var client = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 
| 59   var c = new Completer(); | 59   var c = new Completer(); | 
| 60   Isolate.spawn(providerIsolate, pipe.endpoints[1]).then((_) { | 60   Isolate.spawn(providerIsolate, pipe.endpoints[1]).then((_) { | 
| 61     client.ptr.echoString("hello!").then((echoStringResponse) { | 61     client.echoString("hello!").then((echoStringResponse) { | 
| 62       Expect.equals("hello!", echoStringResponse.a); | 62       Expect.equals("hello!", echoStringResponse.a); | 
| 63     }).then((_) { | 63     }).then((_) { | 
| 64       client.ptr.echoStrings("hello", "mojo!").then((echoStringsResponse) { | 64       client.echoStrings("hello", "mojo!").then((echoStringsResponse) { | 
| 65         Expect.equals("hello", echoStringsResponse.a); | 65         Expect.equals("hello", echoStringsResponse.a); | 
| 66         Expect.equals("mojo!", echoStringsResponse.b); | 66         Expect.equals("mojo!", echoStringsResponse.b); | 
| 67         client.close().then((_) { | 67         client.close().then((_) { | 
| 68           c.complete(true); | 68           c.complete(true); | 
| 69         }); | 69         }); | 
| 70       }); | 70       }); | 
| 71     }); | 71     }); | 
| 72   }); | 72   }); | 
| 73   return c.future; | 73   return c.future; | 
| 74 } | 74 } | 
| 75 | 75 | 
| 76 Future testAwaitCallResponse() async { | 76 Future testAwaitCallResponse() async { | 
| 77   var pipe = new core.MojoMessagePipe(); | 77   var pipe = new core.MojoMessagePipe(); | 
| 78   var client = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 78   var client = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 
| 79   var isolate = await Isolate.spawn(providerIsolate, pipe.endpoints[1]); | 79   var isolate = await Isolate.spawn(providerIsolate, pipe.endpoints[1]); | 
| 80 | 80 | 
| 81   var echoStringResponse = await client.ptr.echoString("hello!"); | 81   var echoStringResponse = await client.echoString("hello!"); | 
| 82   Expect.equals("hello!", echoStringResponse.a); | 82   Expect.equals("hello!", echoStringResponse.a); | 
| 83 | 83 | 
| 84   var echoStringsResponse = await client.ptr.echoStrings("hello", "mojo!"); | 84   var echoStringsResponse = await client.echoStrings("hello", "mojo!"); | 
| 85   Expect.equals("hello", echoStringsResponse.a); | 85   Expect.equals("hello", echoStringsResponse.a); | 
| 86   Expect.equals("mojo!", echoStringsResponse.b); | 86   Expect.equals("mojo!", echoStringsResponse.b); | 
| 87 | 87 | 
| 88   await client.close(); | 88   await client.close(); | 
| 89 } | 89 } | 
| 90 | 90 | 
| 91 bindings.ServiceMessage messageOfStruct(bindings.Struct s) => | 91 bindings.ServiceMessage messageOfStruct(bindings.Struct s) => | 
| 92     s.serializeWithHeader(new bindings.MessageHeader(0)); | 92     s.serializeWithHeader(new bindings.MessageHeader(0)); | 
| 93 | 93 | 
| 94 testSerializeNamedRegion() { | 94 testSerializeNamedRegion() { | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 276 checkEnumCapsIsolate(core.MojoMessagePipeEndpoint endpoint) { | 276 checkEnumCapsIsolate(core.MojoMessagePipeEndpoint endpoint) { | 
| 277   new CheckEnumCapsImpl(endpoint); | 277   new CheckEnumCapsImpl(endpoint); | 
| 278 } | 278 } | 
| 279 | 279 | 
| 280 testCheckEnumCapsImpl() { | 280 testCheckEnumCapsImpl() { | 
| 281   var pipe = new core.MojoMessagePipe(); | 281   var pipe = new core.MojoMessagePipe(); | 
| 282   var client = | 282   var client = | 
| 283       new regression.CheckEnumCapsProxy.fromEndpoint(pipe.endpoints[0]); | 283       new regression.CheckEnumCapsProxy.fromEndpoint(pipe.endpoints[0]); | 
| 284   var c = new Completer(); | 284   var c = new Completer(); | 
| 285   Isolate.spawn(checkEnumCapsIsolate, pipe.endpoints[1]).then((_) { | 285   Isolate.spawn(checkEnumCapsIsolate, pipe.endpoints[1]).then((_) { | 
| 286     client.ptr.setEnumWithInternalAllCaps( | 286     client.setEnumWithInternalAllCaps( | 
| 287         regression.EnumWithInternalAllCaps.standard); | 287         regression.EnumWithInternalAllCaps.standard); | 
| 288     client.close().then((_) { | 288     client.close().then((_) { | 
| 289       c.complete(null); | 289       c.complete(null); | 
| 290     }); | 290     }); | 
| 291   }); | 291   }); | 
| 292   return c.future; | 292   return c.future; | 
| 293 } | 293 } | 
| 294 | 294 | 
| 295 testSerializeEnum() { | 295 testSerializeEnum() { | 
| 296   var constants = new structs.ScopedConstants(); | 296   var constants = new structs.ScopedConstants(); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
| 313 | 313 | 
| 314 void closingProviderIsolate(core.MojoMessagePipeEndpoint endpoint) { | 314 void closingProviderIsolate(core.MojoMessagePipeEndpoint endpoint) { | 
| 315   var provider = new ProviderImpl(endpoint); | 315   var provider = new ProviderImpl(endpoint); | 
| 316   provider._stub.close(); | 316   provider._stub.close(); | 
| 317 } | 317 } | 
| 318 | 318 | 
| 319 Future<bool> runOnClosedTest() { | 319 Future<bool> runOnClosedTest() { | 
| 320   var testCompleter = new Completer(); | 320   var testCompleter = new Completer(); | 
| 321   var pipe = new core.MojoMessagePipe(); | 321   var pipe = new core.MojoMessagePipe(); | 
| 322   var proxy = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 322   var proxy = new sample.ProviderProxy.fromEndpoint(pipe.endpoints[0]); | 
| 323   proxy.impl.onError = (_) => testCompleter.complete(true); | 323   proxy.ctrl.onError = (_) => testCompleter.complete(true); | 
| 324   Isolate.spawn(closingProviderIsolate, pipe.endpoints[1]); | 324   Isolate.spawn(closingProviderIsolate, pipe.endpoints[1]); | 
| 325   return testCompleter.future.then((b) { | 325   return testCompleter.future.then((b) { | 
| 326     Expect.isTrue(b); | 326     Expect.isTrue(b); | 
| 327   }); | 327   }); | 
| 328 } | 328 } | 
| 329 | 329 | 
| 330 class Regression551Impl implements regression.Regression551 { | 330 class Regression551Impl implements regression.Regression551 { | 
| 331   regression.Regression551Stub _stub; | 331   regression.Regression551Stub _stub; | 
| 332 | 332 | 
| 333   Regression551Impl(core.MojoMessagePipeEndpoint endpoint) { | 333   Regression551Impl(core.MojoMessagePipeEndpoint endpoint) { | 
| 334     _stub = new regression.Regression551Stub.fromEndpoint(endpoint, this); | 334     _stub = new regression.Regression551Stub.fromEndpoint(endpoint, this); | 
| 335   } | 335   } | 
| 336 | 336 | 
| 337   dynamic get(List<String> keyPrefixes, Function responseFactory) => | 337   dynamic get(List<String> keyPrefixes, Function responseFactory) => | 
| 338     responseFactory(0); | 338     responseFactory(0); | 
| 339 } | 339 } | 
| 340 | 340 | 
| 341 void regression551Isolate(core.MojoMessagePipeEndpoint endpoint) { | 341 void regression551Isolate(core.MojoMessagePipeEndpoint endpoint) { | 
| 342   new Regression551Impl(endpoint); | 342   new Regression551Impl(endpoint); | 
| 343 } | 343 } | 
| 344 | 344 | 
| 345 Future<bool> testRegression551() { | 345 Future<bool> testRegression551() { | 
| 346   var pipe = new core.MojoMessagePipe(); | 346   var pipe = new core.MojoMessagePipe(); | 
| 347   var client = new regression.Regression551Proxy.fromEndpoint(pipe.endpoints[0])
     ; | 347   var client = new regression.Regression551Proxy.fromEndpoint(pipe.endpoints[0])
     ; | 
| 348   var c = new Completer(); | 348   var c = new Completer(); | 
| 349   Isolate.spawn(regression551Isolate, pipe.endpoints[1]).then((_) { | 349   Isolate.spawn(regression551Isolate, pipe.endpoints[1]).then((_) { | 
| 350     client.ptr.get(["hello!"]).then((response) { | 350     client.get(["hello!"]).then((response) { | 
| 351       Expect.equals(0, response.result); | 351       Expect.equals(0, response.result); | 
| 352       client.close().then((_) { | 352       client.close().then((_) { | 
| 353         c.complete(true); | 353         c.complete(true); | 
| 354       }); | 354       }); | 
| 355     }); | 355     }); | 
| 356   }); | 356   }); | 
| 357   return c.future; | 357   return c.future; | 
| 358 } | 358 } | 
| 359 | 359 | 
| 360 class ServiceNameImpl implements regression.ServiceName { | 360 class ServiceNameImpl implements regression.ServiceName { | 
| 361   regression.ServiceNameStub _stub; | 361   regression.ServiceNameStub _stub; | 
| 362 | 362 | 
| 363   ServiceNameImpl(core.MojoMessagePipeEndpoint endpoint) { | 363   ServiceNameImpl(core.MojoMessagePipeEndpoint endpoint) { | 
| 364     _stub = new regression.ServiceNameStub.fromEndpoint(endpoint, this); | 364     _stub = new regression.ServiceNameStub.fromEndpoint(endpoint, this); | 
| 365   } | 365   } | 
| 366 | 366 | 
| 367   dynamic serviceName_(Function responseFactory) => | 367   dynamic serviceName_(Function responseFactory) => | 
| 368       responseFactory(regression.ServiceName.serviceName); | 368       responseFactory(regression.ServiceName.serviceName); | 
| 369 } | 369 } | 
| 370 | 370 | 
| 371 void serviceNameIsolate(core.MojoMessagePipeEndpoint endpoint) { | 371 void serviceNameIsolate(core.MojoMessagePipeEndpoint endpoint) { | 
| 372   new ServiceNameImpl(endpoint); | 372   new ServiceNameImpl(endpoint); | 
| 373 } | 373 } | 
| 374 | 374 | 
| 375 Future<bool> testServiceName() { | 375 Future<bool> testServiceName() { | 
| 376   var pipe = new core.MojoMessagePipe(); | 376   var pipe = new core.MojoMessagePipe(); | 
| 377   var client = new regression.ServiceNameProxy.fromEndpoint(pipe.endpoints[0]); | 377   var client = new regression.ServiceNameProxy.fromEndpoint(pipe.endpoints[0]); | 
| 378   var c = new Completer(); | 378   var c = new Completer(); | 
| 379   Isolate.spawn(serviceNameIsolate, pipe.endpoints[1]).then((_) { | 379   Isolate.spawn(serviceNameIsolate, pipe.endpoints[1]).then((_) { | 
| 380     client.ptr.serviceName_().then((response) { | 380     client.serviceName_().then((response) { | 
| 381       Expect.equals(ServiceName.serviceName, response.serviceName_); | 381       Expect.equals(ServiceName.serviceName, response.serviceName_); | 
| 382       client.close().then((_) { | 382       client.close().then((_) { | 
| 383         c.complete(true); | 383         c.complete(true); | 
| 384       }); | 384       }); | 
| 385     }); | 385     }); | 
| 386   }); | 386   }); | 
| 387   return c.future; | 387   return c.future; | 
| 388 } | 388 } | 
| 389 | 389 | 
| 390 | 390 | 
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 647 | 647 | 
| 648   mojom_types.UserDefinedType udt = testValidationDescriptor[interfaceID]; | 648   mojom_types.UserDefinedType udt = testValidationDescriptor[interfaceID]; | 
| 649   Expect.isNotNull(udt); | 649   Expect.isNotNull(udt); | 
| 650 | 650 | 
| 651   mojom_types.MojomInterface mi = udt.interfaceType; | 651   mojom_types.MojomInterface mi = udt.interfaceType; | 
| 652   Expect.isNotNull(mi); | 652   Expect.isNotNull(mi); | 
| 653 | 653 | 
| 654   _checkMojomInterface(mi, shortName, fullIdentifier, methodMap); | 654   _checkMojomInterface(mi, shortName, fullIdentifier, methodMap); | 
| 655 | 655 | 
| 656   // The proxy and stub need to have a valid serviceDescription. | 656   // The proxy and stub need to have a valid serviceDescription. | 
| 657   var boundsCheckProxyImpl = | 657   var boundsCheckProxyController = | 
| 658       new validation.BoundsCheckTestInterfaceProxy.unbound().impl; | 658       new validation.BoundsCheckTestInterfaceProxy.unbound().ctrl; | 
| 659   var boundsCheckStubDescription = | 659   var boundsCheckStubDescription = | 
| 660       validation.BoundsCheckTestInterfaceStub.serviceDescription; | 660       validation.BoundsCheckTestInterfaceStub.serviceDescription; | 
| 661 | 661 | 
| 662   _checkServiceDescription( | 662   _checkServiceDescription( | 
| 663       boundsCheckProxyImpl.serviceDescription, interfaceID, shortName, | 663       boundsCheckProxyController.serviceDescription, interfaceID, shortName, | 
| 664       fullIdentifier, methodMap); | 664       fullIdentifier, methodMap); | 
| 665   _checkServiceDescription( | 665   _checkServiceDescription( | 
| 666       boundsCheckStubDescription, interfaceID, shortName, fullIdentifier, | 666       boundsCheckStubDescription, interfaceID, shortName, fullIdentifier, | 
| 667       methodMap); | 667       methodMap); | 
| 668 } | 668 } | 
| 669 | 669 | 
| 670 _checkServiceDescription(service_describer.ServiceDescription sd, | 670 _checkServiceDescription(service_describer.ServiceDescription sd, | 
| 671     String interfaceID, String shortName, String fullIdentifier, | 671     String interfaceID, String shortName, String fullIdentifier, | 
| 672     Map<int, String> methodMap) { | 672     Map<int, String> methodMap) { | 
| 673   // Check the top level interface, which must pass _checkMojomInterface. | 673   // Check the top level interface, which must pass _checkMojomInterface. | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 755   testValidateMojomTypes(); | 755   testValidateMojomTypes(); | 
| 756   testCamelCase(); | 756   testCamelCase(); | 
| 757   testSerializeErrorMessage(); | 757   testSerializeErrorMessage(); | 
| 758   await testEnums(); | 758   await testEnums(); | 
| 759   await testCallResponse(); | 759   await testCallResponse(); | 
| 760   await testAwaitCallResponse(); | 760   await testAwaitCallResponse(); | 
| 761   await runOnClosedTest(); | 761   await runOnClosedTest(); | 
| 762   await testRegression551(); | 762   await testRegression551(); | 
| 763   await testServiceName(); | 763   await testServiceName(); | 
| 764 } | 764 } | 
| OLD | NEW | 
|---|