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

Side by Side Diff: mojo/android/javatests/src/org/chromium/mojo/bindings/ConnectorTest.java

Issue 371603003: Adding a router class to handle messages that expect responses. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: FOllow review Created 6 years, 5 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 | Annotate | Revision Log
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 package org.chromium.mojo.bindings; 5 package org.chromium.mojo.bindings;
6 6
7 import android.test.suitebuilder.annotation.SmallTest; 7 import android.test.suitebuilder.annotation.SmallTest;
8 8
9 import org.chromium.mojo.MojoTestCase; 9 import org.chromium.mojo.MojoTestCase;
10 import org.chromium.mojo.TestUtils;
11 import org.chromium.mojo.bindings.BindingsTestUtils.CapturingErrorHandler; 10 import org.chromium.mojo.bindings.BindingsTestUtils.CapturingErrorHandler;
12 import org.chromium.mojo.bindings.BindingsTestUtils.RecordingMessageReceiver; 11 import org.chromium.mojo.bindings.BindingsTestUtils.RecordingMessageReceiver;
13 import org.chromium.mojo.system.Core; 12 import org.chromium.mojo.system.Core;
14 import org.chromium.mojo.system.Handle; 13 import org.chromium.mojo.system.Handle;
15 import org.chromium.mojo.system.MessagePipeHandle; 14 import org.chromium.mojo.system.MessagePipeHandle;
16 import org.chromium.mojo.system.MojoResult; 15 import org.chromium.mojo.system.MojoResult;
17 import org.chromium.mojo.system.Pair; 16 import org.chromium.mojo.system.Pair;
18 import org.chromium.mojo.system.impl.CoreImpl; 17 import org.chromium.mojo.system.impl.CoreImpl;
19 18
20 import java.nio.ByteBuffer; 19 import java.nio.ByteBuffer;
21 import java.util.ArrayList; 20 import java.util.ArrayList;
22 21
23 /** 22 /**
24 * Testing the {@link Connector} class. 23 * Testing the {@link Connector} class.
25 */ 24 */
26 public class ConnectorTest extends MojoTestCase { 25 public class ConnectorTest extends MojoTestCase {
27 26
28 private static final long RUN_LOOP_TIMEOUT_MS = 25; 27 private static final long RUN_LOOP_TIMEOUT_MS = 25;
29 28
30 private static final int DATA_LENGTH = 1024; 29 private static final int DATA_LENGTH = 1024;
31 30
32 private MessagePipeHandle mHandle; 31 private MessagePipeHandle mHandle;
33 private Connector mConnector; 32 private Connector mConnector;
34 private Message mTestMessage; 33 private MessageWithHeader mTestMessage;
35 private RecordingMessageReceiver mReceiver; 34 private RecordingMessageReceiver mReceiver;
36 private CapturingErrorHandler mErrorHandler; 35 private CapturingErrorHandler mErrorHandler;
37 36
38 /** 37 /**
39 * @see MojoTestCase#setUp() 38 * @see MojoTestCase#setUp()
40 */ 39 */
41 @Override 40 @Override
42 protected void setUp() throws Exception { 41 protected void setUp() throws Exception {
43 super.setUp(); 42 super.setUp();
44 Core core = CoreImpl.getInstance(); 43 Core core = CoreImpl.getInstance();
45 Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessageP ipe(); 44 Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessageP ipe();
46 mHandle = handles.first; 45 mHandle = handles.first;
47 mConnector = new Connector(handles.second); 46 mConnector = new Connector(handles.second);
48 mReceiver = new RecordingMessageReceiver(); 47 mReceiver = new RecordingMessageReceiver();
49 mConnector.setIncomingMessageReceiver(mReceiver); 48 mConnector.setIncomingMessageReceiver(mReceiver);
50 mErrorHandler = new CapturingErrorHandler(); 49 mErrorHandler = new CapturingErrorHandler();
51 mConnector.setErrorHandler(mErrorHandler); 50 mConnector.setErrorHandler(mErrorHandler);
52 mConnector.start(); 51 mConnector.start();
53 mTestMessage = new Message(TestUtils.newRandomBuffer(DATA_LENGTH), new A rrayList<Handle>()); 52 mTestMessage = BindingsTestUtils.newRandomMessageWithHeader(DATA_LENGTH) ;
54 assertNull(mErrorHandler.exception); 53 assertNull(mErrorHandler.exception);
55 assertEquals(0, mReceiver.messages.size()); 54 assertEquals(0, mReceiver.messages.size());
56 } 55 }
57 56
58 /** 57 /**
59 * @see MojoTestCase#tearDown() 58 * @see MojoTestCase#tearDown()
60 */ 59 */
61 @Override 60 @Override
62 protected void tearDown() throws Exception { 61 protected void tearDown() throws Exception {
63 mConnector.close(); 62 mConnector.close();
64 mHandle.close(); 63 mHandle.close();
65 super.tearDown(); 64 super.tearDown();
66 } 65 }
67 66
68 /** 67 /**
69 * Test sending a message through a {@link Connector}. 68 * Test sending a message through a {@link Connector}.
70 */ 69 */
71 @SmallTest 70 @SmallTest
72 public void testSendingMessage() { 71 public void testSendingMessage() {
73 mConnector.accept(mTestMessage); 72 mConnector.accept(mTestMessage);
74 assertNull(mErrorHandler.exception); 73 assertNull(mErrorHandler.exception);
75 ByteBuffer received = ByteBuffer.allocateDirect(DATA_LENGTH); 74 ByteBuffer received = ByteBuffer.allocateDirect(DATA_LENGTH);
76 MessagePipeHandle.ReadMessageResult result = mHandle.readMessage(receive d, 0, 75 MessagePipeHandle.ReadMessageResult result = mHandle.readMessage(receive d, 0,
77 MessagePipeHandle.ReadFlags.NONE); 76 MessagePipeHandle.ReadFlags.NONE);
78 assertEquals(MojoResult.OK, result.getMojoResult()); 77 assertEquals(MojoResult.OK, result.getMojoResult());
79 assertEquals(DATA_LENGTH, result.getMessageSize()); 78 assertEquals(DATA_LENGTH, result.getMessageSize());
80 assertEquals(mTestMessage.buffer, received); 79 assertEquals(mTestMessage.getMessage().buffer, received);
81 } 80 }
82 81
83 /** 82 /**
84 * Test receiving a message through a {@link Connector} 83 * Test receiving a message through a {@link Connector}
85 */ 84 */
86 @SmallTest 85 @SmallTest
87 public void testReceivingMessage() { 86 public void testReceivingMessage() {
88 mHandle.writeMessage(mTestMessage.buffer, new ArrayList<Handle>(), 87 mHandle.writeMessage(mTestMessage.getMessage().buffer, new ArrayList<Han dle>(),
89 MessagePipeHandle.WriteFlags.NONE); 88 MessagePipeHandle.WriteFlags.NONE);
90 nativeRunLoop(RUN_LOOP_TIMEOUT_MS); 89 nativeRunLoop(RUN_LOOP_TIMEOUT_MS);
91 assertNull(mErrorHandler.exception); 90 assertNull(mErrorHandler.exception);
92 assertEquals(1, mReceiver.messages.size()); 91 assertEquals(1, mReceiver.messages.size());
93 Message received = mReceiver.messages.get(0); 92 MessageWithHeader received = mReceiver.messages.get(0);
94 assertEquals(0, received.handles.size()); 93 assertEquals(0, received.getMessage().handles.size());
95 assertEquals(mTestMessage.buffer, received.buffer); 94 assertEquals(mTestMessage.getMessage().buffer, received.getMessage().buf fer);
96 } 95 }
97 96
98 /** 97 /**
99 * Test receiving an error through a {@link Connector}. 98 * Test receiving an error through a {@link Connector}.
100 */ 99 */
101 @SmallTest 100 @SmallTest
102 public void testErrors() { 101 public void testErrors() {
103 mHandle.close(); 102 mHandle.close();
104 nativeRunLoop(RUN_LOOP_TIMEOUT_MS); 103 nativeRunLoop(RUN_LOOP_TIMEOUT_MS);
105 assertNotNull(mErrorHandler.exception); 104 assertNotNull(mErrorHandler.exception);
106 assertEquals(MojoResult.FAILED_PRECONDITION, mErrorHandler.exception.get MojoResult()); 105 assertEquals(MojoResult.FAILED_PRECONDITION, mErrorHandler.exception.get MojoResult());
107 } 106 }
108 } 107 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698