Index: mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java |
diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java |
deleted file mode 100644 |
index 219a00a81709f23561c989de3a7e32b544616a33..0000000000000000000000000000000000000000 |
--- a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java |
+++ /dev/null |
@@ -1,335 +0,0 @@ |
-// 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. |
- |
-package org.chromium.mojo.bindings; |
- |
-import android.test.suitebuilder.annotation.SmallTest; |
- |
-import org.chromium.mojo.MojoTestCase; |
-import org.chromium.mojo.bindings.BindingsTestUtils.CapturingErrorHandler; |
-import org.chromium.mojo.bindings.test.mojom.imported.ImportedInterface; |
-import org.chromium.mojo.bindings.test.mojom.sample.Factory; |
-import org.chromium.mojo.bindings.test.mojom.sample.FactoryClient; |
-import org.chromium.mojo.bindings.test.mojom.sample.NamedObject; |
-import org.chromium.mojo.bindings.test.mojom.sample.NamedObject.GetNameResponse; |
-import org.chromium.mojo.bindings.test.mojom.sample.Request; |
-import org.chromium.mojo.bindings.test.mojom.sample.Response; |
-import org.chromium.mojo.system.DataPipe.ConsumerHandle; |
-import org.chromium.mojo.system.MessagePipeHandle; |
-import org.chromium.mojo.system.MojoException; |
-import org.chromium.mojo.system.Pair; |
-import org.chromium.mojo.system.impl.CoreImpl; |
- |
-import java.io.Closeable; |
-import java.util.ArrayList; |
-import java.util.Collections; |
-import java.util.List; |
- |
-/** |
- * Tests for interfaces / proxies / stubs generated for sample_factory.mojom. |
- */ |
-public class InterfacesTest extends MojoTestCase { |
- |
- private static final long RUN_LOOP_TIMEOUT_MS = 25; |
- |
- private final List<Closeable> mCloseablesToClose = new ArrayList<Closeable>(); |
- |
- /** |
- * Basic implementation of {@link NamedObject}. |
- */ |
- public static class MockNamedObjectImpl extends CapturingErrorHandler implements NamedObject { |
- |
- private String mName; |
- |
- /** |
- * @see org.chromium.mojo.bindings.Interface#close() |
- */ |
- @Override |
- public void close() { |
- } |
- |
- @Override |
- public void setName(String name) { |
- mName = name; |
- } |
- |
- @Override |
- public void getName(GetNameResponse callback) { |
- callback.call(mName); |
- } |
- |
- public String getNameSynchronously() { |
- return mName; |
- } |
- } |
- |
- /** |
- * Implementation of {@link GetNameResponse} keeping track of usage. |
- */ |
- public static class RecordingGetNameResponse implements GetNameResponse { |
- private String mName; |
- private boolean mCalled; |
- |
- public RecordingGetNameResponse() { |
- reset(); |
- } |
- |
- @Override |
- public void call(String name) { |
- mName = name; |
- mCalled = true; |
- } |
- |
- public String getName() { |
- return mName; |
- } |
- |
- public boolean wasCalled() { |
- return mCalled; |
- } |
- |
- public void reset() { |
- mName = null; |
- mCalled = false; |
- } |
- } |
- |
- /** |
- * Basic implementation of {@link Factory}. |
- */ |
- public class MockFactoryImpl extends CapturingErrorHandler implements Factory { |
- |
- private boolean mClosed = false; |
- private FactoryClient mFactoryClient; |
- |
- public boolean isClosed() { |
- return mClosed; |
- } |
- |
- @Override |
- public void setClient(FactoryClient client) { |
- mFactoryClient = client; |
- mCloseablesToClose.add(client); |
- } |
- |
- /** |
- * @see org.chromium.mojo.bindings.Interface#close() |
- */ |
- @Override |
- public void close() { |
- mClosed = true; |
- } |
- |
- @Override |
- public void doStuff(Request request, MessagePipeHandle pipe) { |
- } |
- |
- @Override |
- public void doStuff2(ConsumerHandle pipe) { |
- if (pipe != null) { |
- pipe.close(); |
- } |
- mFactoryClient.didStuff2("Hello"); |
- } |
- |
- @Override |
- public void createNamedObject(InterfaceRequest<NamedObject> obj) { |
- NamedObject.MANAGER.bind(new MockNamedObjectImpl(), obj); |
- } |
- |
- @Override |
- public void requestImportedInterface(InterfaceRequest<ImportedInterface> obj, |
- RequestImportedInterfaceResponse callback) { |
- throw new UnsupportedOperationException("Not implemented."); |
- } |
- |
- @Override |
- public void takeImportedInterface(ImportedInterface obj, |
- TakeImportedInterfaceResponse callback) { |
- throw new UnsupportedOperationException("Not implemented."); |
- } |
- } |
- |
- /** |
- * Basic implementation of {@link FactoryClient}. |
- */ |
- public class MockFactoryClientImpl implements FactoryClient { |
- |
- private boolean mClosed = false; |
- private boolean mDidStuff2Called = false; |
- |
- public boolean isClosed() { |
- return mClosed; |
- } |
- |
- public boolean wasDidStuff2Called() { |
- return mDidStuff2Called; |
- } |
- |
- /** |
- * @see org.chromium.mojo.bindings.Interface#close() |
- */ |
- @Override |
- public void close() { |
- mClosed = true; |
- } |
- |
- /** |
- * @see ConnectionErrorHandler#onConnectionError(MojoException) |
- */ |
- @Override |
- public void onConnectionError(MojoException e) { |
- } |
- |
- /** |
- * @see FactoryClient#didStuff(Response, java.lang.String) |
- */ |
- @Override |
- public void didStuff(Response response, String text) { |
- } |
- |
- /** |
- * @see FactoryClient#didStuff2(String) |
- */ |
- @Override |
- public void didStuff2(String text) { |
- mDidStuff2Called = true; |
- } |
- |
- } |
- |
- /** |
- * @see MojoTestCase#tearDown() |
- */ |
- @Override |
- protected void tearDown() throws Exception { |
- // Close the elements in the reverse order they were added. This is needed because it is an |
- // error to close the handle of a proxy without closing the proxy first. |
- Collections.reverse(mCloseablesToClose); |
- for (Closeable c : mCloseablesToClose) { |
- c.close(); |
- } |
- } |
- |
- private <I extends Interface, P extends Interface.Proxy> P newProxyOverPipe( |
- Interface.Manager<I, P> manager, I impl) { |
- Pair<MessagePipeHandle, MessagePipeHandle> handles = |
- CoreImpl.getInstance().createMessagePipe(null); |
- P proxy = manager.attachProxy(handles.first); |
- mCloseablesToClose.add(proxy); |
- manager.bind(impl, handles.second); |
- return proxy; |
- } |
- |
- private <I extends InterfaceWithClient<C>, P extends InterfaceWithClient.Proxy<C>, |
- C extends Interface> P newProxyOverPipeWithClient( |
- InterfaceWithClient.Manager<I, P, C> manager, I impl, C client) { |
- Pair<MessagePipeHandle, MessagePipeHandle> handles = |
- CoreImpl.getInstance().createMessagePipe(null); |
- P proxy = manager.attachProxy(handles.first, client); |
- mCloseablesToClose.add(proxy); |
- manager.bind(impl, handles.second); |
- return proxy; |
- } |
- |
- /** |
- * Check that the given proxy receives the calls. If |impl| is not null, also check that the |
- * calls are forwared to |impl|. |
- */ |
- private void checkProxy(NamedObject.Proxy proxy, MockNamedObjectImpl impl) { |
- final String NAME = "hello world"; |
- RecordingGetNameResponse callback = new RecordingGetNameResponse(); |
- CapturingErrorHandler errorHandler = new CapturingErrorHandler(); |
- proxy.setErrorHandler(errorHandler); |
- |
- if (impl != null) { |
- assertNull(impl.getLastMojoException()); |
- assertNull(impl.getNameSynchronously()); |
- } |
- |
- proxy.getName(callback); |
- nativeRunLoop(RUN_LOOP_TIMEOUT_MS); |
- |
- assertNull(errorHandler.getLastMojoException()); |
- assertTrue(callback.wasCalled()); |
- assertNull(callback.getName()); |
- |
- callback.reset(); |
- proxy.setName(NAME); |
- nativeRunLoop(RUN_LOOP_TIMEOUT_MS); |
- |
- assertNull(errorHandler.getLastMojoException()); |
- if (impl != null) { |
- assertNull(impl.getLastMojoException()); |
- assertEquals(NAME, impl.getNameSynchronously()); |
- } |
- |
- proxy.getName(callback); |
- nativeRunLoop(RUN_LOOP_TIMEOUT_MS); |
- |
- assertNull(errorHandler.getLastMojoException()); |
- assertTrue(callback.wasCalled()); |
- assertEquals(NAME, callback.getName()); |
- } |
- |
- @SmallTest |
- public void testProxyAndStub() { |
- MockNamedObjectImpl impl = new MockNamedObjectImpl(); |
- NamedObject.Proxy proxy = |
- NamedObject.MANAGER.buildProxy(null, NamedObject.MANAGER.buildStub(null, impl)); |
- |
- checkProxy(proxy, impl); |
- } |
- |
- @SmallTest |
- public void testProxyAndStubOverPipe() { |
- MockNamedObjectImpl impl = new MockNamedObjectImpl(); |
- NamedObject.Proxy proxy = newProxyOverPipe(NamedObject.MANAGER, impl); |
- |
- checkProxy(proxy, impl); |
- } |
- |
- @SmallTest |
- public void testFactoryOverPipe() { |
- Factory.Proxy proxy = newProxyOverPipe(Factory.MANAGER, new MockFactoryImpl()); |
- Pair<NamedObject.Proxy, InterfaceRequest<NamedObject>> request = |
- NamedObject.MANAGER.getInterfaceRequest(CoreImpl.getInstance()); |
- mCloseablesToClose.add(request.first); |
- proxy.createNamedObject(request.second); |
- |
- checkProxy(request.first, null); |
- } |
- |
- @SmallTest |
- public void testInterfaceClosing() { |
- MockFactoryImpl impl = new MockFactoryImpl(); |
- MockFactoryClientImpl client = new MockFactoryClientImpl(); |
- Factory.Proxy proxy = newProxyOverPipeWithClient( |
- Factory.MANAGER, impl, client); |
- |
- assertFalse(impl.isClosed()); |
- assertFalse(client.isClosed()); |
- |
- proxy.close(); |
- nativeRunLoop(RUN_LOOP_TIMEOUT_MS); |
- |
- assertTrue(impl.isClosed()); |
- assertTrue(client.isClosed()); |
- } |
- |
- @SmallTest |
- public void testClient() { |
- MockFactoryImpl impl = new MockFactoryImpl(); |
- MockFactoryClientImpl client = new MockFactoryClientImpl(); |
- Factory.Proxy proxy = newProxyOverPipeWithClient( |
- Factory.MANAGER, impl, client); |
- proxy.doStuff2(null); |
- |
- assertFalse(client.wasDidStuff2Called()); |
- |
- nativeRunLoop(RUN_LOOP_TIMEOUT_MS); |
- |
- assertTrue(client.wasDidStuff2Called()); |
- } |
-} |