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

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

Issue 525383002: MessageReceiver must handle Message and not MessageWithHeader. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Follow review Created 6 years, 3 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 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.bindings.BindingsTestUtils.RecordingMessageReceiver; 10 import org.chromium.mojo.bindings.BindingsTestUtils.RecordingMessageReceiver;
11 import org.chromium.mojo.system.Core; 11 import org.chromium.mojo.system.Core;
12 import org.chromium.mojo.system.DataPipe; 12 import org.chromium.mojo.system.DataPipe;
13 import org.chromium.mojo.system.Handle; 13 import org.chromium.mojo.system.Handle;
14 import org.chromium.mojo.system.MessagePipeHandle; 14 import org.chromium.mojo.system.MessagePipeHandle;
15 import org.chromium.mojo.system.MojoException; 15 import org.chromium.mojo.system.MojoException;
16 import org.chromium.mojo.system.MojoResult; 16 import org.chromium.mojo.system.MojoResult;
17 import org.chromium.mojo.system.Pair; 17 import org.chromium.mojo.system.Pair;
18 import org.chromium.mojo.system.impl.CoreImpl; 18 import org.chromium.mojo.system.impl.CoreImpl;
19 19
20 import java.nio.ByteBuffer; 20 import java.nio.ByteBuffer;
21 import java.util.ArrayList; 21 import java.util.ArrayList;
22 import java.util.Arrays; 22 import java.util.Arrays;
23 import java.util.List; 23 import java.util.List;
24 24
25 /** 25 /**
26 * Testing {@link MessageWithHeader}. 26 * Testing {@link Connector#readAndDispatchMessage}.
27 */ 27 */
28 public class MessageWithHeaderTest extends MojoTestCase { 28 public class ReadAndDispatchMessageTest extends MojoTestCase {
29 29
30 private static final int DATA_SIZE = 1024; 30 private static final int DATA_SIZE = 1024;
31 31
32 private ByteBuffer mData; 32 private ByteBuffer mData;
33 private Pair<MessagePipeHandle, MessagePipeHandle> mHandles; 33 private Pair<MessagePipeHandle, MessagePipeHandle> mHandles;
34 private List<Handle> mHandlesToSend = new ArrayList<Handle>(); 34 private List<Handle> mHandlesToSend = new ArrayList<Handle>();
35 private List<Handle> mHandlesToClose = new ArrayList<Handle>(); 35 private List<Handle> mHandlesToClose = new ArrayList<Handle>();
36 private RecordingMessageReceiver mMessageReceiver; 36 private RecordingMessageReceiver mMessageReceiver;
37 37
38 /** 38 /**
39 * @see org.chromium.mojo.MojoTestCase#setUp() 39 * @see org.chromium.mojo.MojoTestCase#setUp()
40 */ 40 */
41 @Override 41 @Override
42 protected void setUp() throws Exception { 42 protected void setUp() throws Exception {
43 super.setUp(); 43 super.setUp();
44 Core core = CoreImpl.getInstance(); 44 Core core = CoreImpl.getInstance();
45 mData = BindingsTestUtils.newRandomMessageWithHeader(DATA_SIZE).getMessa ge().buffer; 45 mData = BindingsTestUtils.newRandomMessageWithHeader(DATA_SIZE).getData( );
46 mMessageReceiver = new RecordingMessageReceiver(); 46 mMessageReceiver = new RecordingMessageReceiver();
47 mHandles = core.createMessagePipe(new MessagePipeHandle.CreateOptions()) ; 47 mHandles = core.createMessagePipe(new MessagePipeHandle.CreateOptions()) ;
48 Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> datapipe = core.c reateDataPipe(null); 48 Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> datapipe = core.c reateDataPipe(null);
49 mHandlesToSend.addAll(Arrays.asList(datapipe.first, datapipe.second)); 49 mHandlesToSend.addAll(Arrays.asList(datapipe.first, datapipe.second));
50 mHandlesToClose.addAll(Arrays.asList(mHandles.first, mHandles.second)); 50 mHandlesToClose.addAll(Arrays.asList(mHandles.first, mHandles.second));
51 mHandlesToClose.addAll(mHandlesToSend); 51 mHandlesToClose.addAll(mHandlesToSend);
52 } 52 }
53 53
54 /** 54 /**
55 * @see org.chromium.mojo.MojoTestCase#tearDown() 55 * @see org.chromium.mojo.MojoTestCase#tearDown()
56 */ 56 */
57 @Override 57 @Override
58 protected void tearDown() throws Exception { 58 protected void tearDown() throws Exception {
59 for (Handle handle : mHandlesToClose) { 59 for (Handle handle : mHandlesToClose) {
60 handle.close(); 60 handle.close();
61 } 61 }
62 super.tearDown(); 62 super.tearDown();
63 } 63 }
64 64
65 /** 65 /**
66 * Testing {@link MessageWithHeader#readAndDispatchMessage(MessagePipeHandle , MessageReceiver)} 66 * Testing {@link Connector#readAndDispatchMessage(MessagePipeHandle, Messag eReceiver)}
67 */ 67 */
68 @SmallTest 68 @SmallTest
69 public void testReadAndDispatchMessage() { 69 public void testReadAndDispatchMessage() {
70 mHandles.first.writeMessage(mData, mHandlesToSend, MessagePipeHandle.Wri teFlags.NONE); 70 mHandles.first.writeMessage(mData, mHandlesToSend, MessagePipeHandle.Wri teFlags.NONE);
71 assertEquals(MojoResult.OK, 71 assertEquals(MojoResult.OK,
72 MessageWithHeader.readAndDispatchMessage(mHandles.second, mMessa geReceiver)); 72 Connector.readAndDispatchMessage(mHandles.second, mMessageReceiv er));
73 assertEquals(1, mMessageReceiver.messages.size()); 73 assertEquals(1, mMessageReceiver.messages.size());
74 MessageWithHeader message = mMessageReceiver.messages.get(0); 74 Message message = mMessageReceiver.messages.get(0);
75 mHandlesToClose.addAll(message.getMessage().handles); 75 mHandlesToClose.addAll(message.getHandles());
76 assertEquals(mData, message.getMessage().buffer); 76 assertEquals(mData, message.getData());
77 assertEquals(2, message.getMessage().handles.size()); 77 assertEquals(2, message.getHandles().size());
78 for (Handle handle : message.getMessage().handles) { 78 for (Handle handle : message.getHandles()) {
79 assertTrue(handle.isValid()); 79 assertTrue(handle.isValid());
80 } 80 }
81 } 81 }
82 82
83 /** 83 /**
84 * Testing {@link MessageWithHeader#readAndDispatchMessage(MessagePipeHandle , MessageReceiver)} 84 * Testing {@link Connector#readAndDispatchMessage(MessagePipeHandle, Messag eReceiver)}
85 * with no message available. 85 * with no message available.
86 */ 86 */
87 @SmallTest 87 @SmallTest
88 public void testReadAndDispatchMessageOnEmptyHandle() { 88 public void testReadAndDispatchMessageOnEmptyHandle() {
89 assertEquals(MojoResult.SHOULD_WAIT, 89 assertEquals(MojoResult.SHOULD_WAIT,
90 MessageWithHeader.readAndDispatchMessage(mHandles.second, mMessa geReceiver)); 90 Connector.readAndDispatchMessage(mHandles.second, mMessageReceiv er));
91 assertEquals(0, mMessageReceiver.messages.size()); 91 assertEquals(0, mMessageReceiver.messages.size());
92 } 92 }
93 93
94 /** 94 /**
95 * Testing {@link MessageWithHeader#readAndDispatchMessage(MessagePipeHandle , MessageReceiver)} 95 * Testing {@link Connector#readAndDispatchMessage(MessagePipeHandle, Messag eReceiver)}
96 * on closed handle. 96 * on closed handle.
97 */ 97 */
98 @SmallTest 98 @SmallTest
99 public void testReadAndDispatchMessageOnClosedHandle() { 99 public void testReadAndDispatchMessageOnClosedHandle() {
100 mHandles.first.close(); 100 mHandles.first.close();
101 try { 101 try {
102 MessageWithHeader.readAndDispatchMessage(mHandles.second, mMessageRe ceiver); 102 Connector.readAndDispatchMessage(mHandles.second, mMessageReceiver);
103 fail("MojoException should have been thrown"); 103 fail("MojoException should have been thrown");
104 } catch (MojoException expected) { 104 } catch (MojoException expected) {
105 assertEquals(MojoResult.FAILED_PRECONDITION, expected.getMojoResult( )); 105 assertEquals(MojoResult.FAILED_PRECONDITION, expected.getMojoResult( ));
106 } 106 }
107 assertEquals(0, mMessageReceiver.messages.size()); 107 assertEquals(0, mMessageReceiver.messages.size());
108 } 108 }
109 } 109 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698