| Index: components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/DevToolsBridgeServerTest.java
|
| diff --git a/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/DevToolsBridgeServerTest.java b/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/DevToolsBridgeServerTest.java
|
| index 5710a2b864cbe1ae4e6145f028a50d0bda1f42ea..9f1910a52fa23ce17f63ac690aa157b1f1272325 100644
|
| --- a/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/DevToolsBridgeServerTest.java
|
| +++ b/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/DevToolsBridgeServerTest.java
|
| @@ -4,72 +4,65 @@
|
|
|
| package org.chromium.components.devtools_bridge;
|
|
|
| -import android.content.Intent;
|
| +import android.content.Context;
|
| import android.net.LocalServerSocket;
|
| import android.net.LocalSocket;
|
| -import android.os.IBinder;
|
| -import android.test.ServiceTestCase;
|
| +import android.test.InstrumentationTestCase;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| import junit.framework.Assert;
|
|
|
| -import java.util.concurrent.Callable;
|
| +import org.chromium.components.devtools_bridge.util.LooperExecutor;
|
| +
|
| +import java.util.concurrent.CountDownLatch;
|
| import java.util.concurrent.Future;
|
|
|
| /**
|
| * Tests for {@link DevToolsBridgeServer}
|
| */
|
| -public class DevToolsBridgeServerTest extends ServiceTestCase<LocalBindingTestService> {
|
| +public class DevToolsBridgeServerTest extends InstrumentationTestCase {
|
| private static final String REQUEST = "Request";
|
| private static final String RESPONSE = "Response";
|
| private static final String SESSION_ID = "SESSION_ID";
|
| private static final String CLIENT_SOCKET_NAME =
|
| DevToolsBridgeServerTest.class.getName() + ".CLIENT_SOCKET_NAME";
|
| + private static final String SERVER_SOCKET_NAME =
|
| + DevToolsBridgeServerTest.class.getName() + ".SERVER_SOCKET_NAME";
|
| private SessionDependencyFactory mFactory;
|
|
|
| - public DevToolsBridgeServerTest() {
|
| - super(LocalBindingTestService.class);
|
| - }
|
| -
|
| - private void invokeOnServiceThread(Runnable runnable) {
|
| - getService().invokeOnServiceThread(runnable);
|
| - }
|
| -
|
| - private <T> T invokeOnServiceThread(Callable<T> callable) throws Exception {
|
| - return getService().invokeOnServiceThread(callable);
|
| - }
|
| + private LooperExecutor mServerExecutor;
|
| + private DevToolsBridgeServer mServer;
|
|
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| - setupService();
|
| mFactory = SessionDependencyFactory.newInstance();
|
| + mServer = new DevToolsBridgeServer(new ServerDelegate());
|
| + mServerExecutor = LooperExecutor.newInstanceForMainLooper(
|
| + getInstrumentation().getTargetContext());
|
| }
|
|
|
| @Override
|
| protected void tearDown() throws Exception {
|
| - invokeOnServiceThread(new Runnable() {
|
| + final CountDownLatch done = new CountDownLatch(1);
|
| + mServerExecutor.postOnSessionThread(0, new Runnable() {
|
| @Override
|
| public void run() {
|
| - shutdownService();
|
| + mServer.dispose();
|
| + mServer = null;
|
| + done.countDown();
|
| }
|
| });
|
| + done.await();
|
| mFactory.dispose();
|
| super.tearDown();
|
| }
|
|
|
| @SmallTest
|
| - public void testBind() throws Exception {
|
| - Assert.assertNotNull(bindService().getReceiver());
|
| - }
|
| -
|
| - @SmallTest
|
| public void testRequestResponse() throws Exception {
|
| - LocalBindingTestService.LocalBinder binder = bindService();
|
| - LocalServerSocket serverListeningSocket = new LocalServerSocket(binder.socketName());
|
| + LocalServerSocket serverListeningSocket = new LocalServerSocket(SERVER_SOCKET_NAME);
|
| ClientSessionTestingHost clientSession = new ClientSessionTestingHost(
|
| - mFactory, binder.getReceiver(), binder.createExecutor(),
|
| - SESSION_ID, CLIENT_SOCKET_NAME);
|
| + mFactory, mServer, mServerExecutor, SESSION_ID, CLIENT_SOCKET_NAME);
|
| clientSession.start();
|
|
|
| Future<String> response = TestUtils.asyncRequest(CLIENT_SOCKET_NAME, REQUEST);
|
| @@ -83,13 +76,18 @@ public class DevToolsBridgeServerTest extends ServiceTestCase<LocalBindingTestSe
|
| clientSession.dispose();
|
| }
|
|
|
| - private LocalBindingTestService.LocalBinder bindService() throws Exception {
|
| - IBinder binder = invokeOnServiceThread(new Callable<IBinder>() {
|
| - @Override
|
| - public IBinder call() {
|
| - return bindService(new Intent(getContext(), LocalBindingTestService.class));
|
| - }
|
| - });
|
| - return (LocalBindingTestService.LocalBinder) binder;
|
| + private class ServerDelegate implements DevToolsBridgeServer.Delegate {
|
| + @Override
|
| + public Context getContext() {
|
| + return getInstrumentation().getTargetContext();
|
| + }
|
| +
|
| + @Override
|
| + public void querySocketName(DevToolsBridgeServer.QuerySocketCallback callback) {
|
| + callback.onSuccess(SERVER_SOCKET_NAME);
|
| + }
|
| +
|
| + @Override
|
| + public void onSessionCountChange(int count) {}
|
| }
|
| }
|
|
|