Index: mojo/public/dart/tests/bindings_generation_test.dart |
diff --git a/mojo/public/dart/tests/bindings_generation_test.dart b/mojo/public/dart/tests/bindings_generation_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ed365abb58787d78cafd88330800c628fb1225bd |
--- /dev/null |
+++ b/mojo/public/dart/tests/bindings_generation_test.dart |
@@ -0,0 +1,66 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+import 'dart:async'; |
+import 'dart:isolate'; |
+import 'dart:typed_data'; |
+ |
+import 'package:mojo/public/dart/utils/lib/expect.dart'; |
+import 'package:mojo/public/dart/bindings/lib/bindings.dart' as bindings; |
+import 'package:mojo/public/dart/system/lib/core.dart' as core; |
+import 'package:mojo/public/dart/system/lib/embedder.dart' as embedder; |
+ |
+import 'package:mojo/public/interfaces/bindings/tests/sample_interfaces.mojom.dart' as sample; |
+ |
+ |
+class ProviderInterfaceImpl extends sample.ProviderInterface { |
+ ProviderInterfaceImpl(core.MojoMessagePipeEndpoint endpoint) : super(endpoint); |
+ |
+ Future echoString(Object params) { |
+ Expect.isTrue(params is sample.Provider_EchoString_Params); |
+ var response = new sample.Provider_EchoString_ResponseParams(); |
+ response.a = params.a; |
+ return new Future.value(response); |
+ } |
+ |
+ Future echoStrings(Object params) { |
+ Expect.isTrue(params is sample.Provider_EchoStrings_Params); |
+ var response = new sample.Provider_EchoStrings_ResponseParams(); |
+ response.a = params.a; |
+ response.b = params.b; |
+ return new Future.value(response); |
+ } |
+ |
+ Future echoMessagePipeHandle(Object params) { |
+ Expect.isTrue(params is sample.Provider_EchoMessagePipeHandle_Params); |
+ var response = new sample.Provider_EchoMessagePipeHandle_ResponseParams(); |
+ response.a = params.a; |
+ return new Future.value(response); |
+ } |
+ |
+ Future echoEnum(Object params) { |
+ var response = new sample.Provider_EchoEnum_ResponseParams(); |
+ response.a = params.a; |
+ return new Future.value(response); |
+ } |
+} |
+ |
+ |
+void providerIsolate(core.MojoMessagePipeEndpoint endpoint) { |
+ var provider = new ProviderInterfaceImpl(endpoint); |
+} |
+ |
+ |
+main() { |
+ embedder.mojoEmbedderInit().then((status) { |
+ var pipe = new core.MojoMessagePipe(); |
+ var client = new sample.ProviderClient(pipe.endpoints[0]); |
+ Isolate.spawn(providerIsolate, pipe.endpoints[1]).then((_) { |
+ client.echoString("hello!").then((response) { |
+ Expect.equals("hello!", response.a); |
+ client.close(); |
+ }); |
+ }); |
+ }); |
+} |