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

Side by Side Diff: mojo/dart/unittests/embedder_tests/bindings_generation_test.dart

Issue 1964193002: Dart: Refactors Proxies (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Address comments Created 4 years, 7 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 unified diff | Download patch
OLDNEW
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
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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698