OLD | NEW |
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 import unittest | 5 import unittest |
6 | 6 |
| 7 import mojo_unittest |
| 8 |
7 # pylint: disable=F0401 | 9 # pylint: disable=F0401 |
8 import mojo.embedder | |
9 from mojo.bindings import messaging | 10 from mojo.bindings import messaging |
10 from mojo import system | 11 from mojo import system |
11 | 12 |
12 | 13 |
13 class _ForwardingConnectionErrorHandler(messaging.ConnectionErrorHandler): | 14 class _ForwardingConnectionErrorHandler(messaging.ConnectionErrorHandler): |
14 | 15 |
15 def __init__(self, callback): | 16 def __init__(self, callback): |
16 self._callback = callback | 17 self._callback = callback |
17 | 18 |
18 def OnError(self, result): | 19 def OnError(self, result): |
19 self._callback(result) | 20 self._callback(result) |
20 | 21 |
21 | 22 |
22 class ConnectorTest(unittest.TestCase): | 23 class ConnectorTest(mojo_unittest.MojoTestCase): |
23 | 24 |
24 def setUp(self): | 25 def setUp(self): |
25 mojo.embedder.Init() | 26 super(ConnectorTest, self).setUp() |
26 self.loop = system.RunLoop() | |
27 self.received_messages = [] | 27 self.received_messages = [] |
28 self.received_errors = [] | 28 self.received_errors = [] |
29 def _OnMessage(message): | 29 def _OnMessage(message): |
30 self.received_messages.append(message) | 30 self.received_messages.append(message) |
31 return True | 31 return True |
32 def _OnError(result): | 32 def _OnError(result): |
33 self.received_errors.append(result) | 33 self.received_errors.append(result) |
34 handles = system.MessagePipe() | 34 handles = system.MessagePipe() |
35 self.connector = messaging.Connector(handles.handle1) | 35 self.connector = messaging.Connector(handles.handle1) |
36 self.connector.SetIncomingMessageReceiver( | 36 self.connector.SetIncomingMessageReceiver( |
37 messaging.ForwardingMessageReceiver(_OnMessage)) | 37 messaging.ForwardingMessageReceiver(_OnMessage)) |
38 self.connector.SetErrorHandler( | 38 self.connector.SetErrorHandler( |
39 _ForwardingConnectionErrorHandler(_OnError)) | 39 _ForwardingConnectionErrorHandler(_OnError)) |
40 self.connector.Start() | 40 self.connector.Start() |
41 self.handle = handles.handle0 | 41 self.handle = handles.handle0 |
42 | 42 |
43 | 43 |
44 def tearDown(self): | 44 def tearDown(self): |
45 self.connector = None | 45 self.connector = None |
46 self.handle = None | 46 self.handle = None |
47 self.loop = None | 47 super(ConnectorTest, self).tearDown() |
48 | 48 |
49 def testConnectorRead(self): | 49 def testConnectorRead(self): |
50 self.handle.WriteMessage() | 50 self.handle.WriteMessage() |
51 self.loop.RunUntilIdle() | 51 self.loop.RunUntilIdle() |
52 self.assertTrue(self.received_messages) | 52 self.assertTrue(self.received_messages) |
53 self.assertFalse(self.received_errors) | 53 self.assertFalse(self.received_errors) |
54 | 54 |
55 def testConnectorWrite(self): | 55 def testConnectorWrite(self): |
56 self.connector.Accept(messaging.Message()) | 56 self.connector.Accept(messaging.Message()) |
57 (result, _, _) = self.handle.ReadMessage() | 57 (result, _, _) = self.handle.ReadMessage() |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 data = header.Serialize() | 127 data = header.Serialize() |
128 other_header = messaging.MessageHeader.Deserialize(data) | 128 other_header = messaging.MessageHeader.Deserialize(data) |
129 | 129 |
130 self.assertEqual(other_header.message_type, 0xdeadbeaf) | 130 self.assertEqual(other_header.message_type, 0xdeadbeaf) |
131 self.assertTrue(other_header.has_request_id) | 131 self.assertTrue(other_header.has_request_id) |
132 self.assertFalse(other_header.expects_response) | 132 self.assertFalse(other_header.expects_response) |
133 self.assertTrue(other_header.is_response) | 133 self.assertTrue(other_header.is_response) |
134 self.assertEqual(other_header.request_id, 0xdeadbeafdeadbeaf) | 134 self.assertEqual(other_header.request_id, 0xdeadbeafdeadbeaf) |
135 | 135 |
136 | 136 |
137 class RouterTest(unittest.TestCase): | 137 class RouterTest(mojo_unittest.MojoTestCase): |
138 | 138 |
139 def setUp(self): | 139 def setUp(self): |
140 mojo.embedder.Init() | 140 super(RouterTest, self).setUp() |
141 self.loop = system.RunLoop() | |
142 self.received_messages = [] | 141 self.received_messages = [] |
143 self.received_errors = [] | 142 self.received_errors = [] |
144 def _OnMessage(message): | 143 def _OnMessage(message): |
145 self.received_messages.append(message) | 144 self.received_messages.append(message) |
146 return True | 145 return True |
147 def _OnError(result): | 146 def _OnError(result): |
148 self.received_errors.append(result) | 147 self.received_errors.append(result) |
149 handles = system.MessagePipe() | 148 handles = system.MessagePipe() |
150 self.router = messaging.Router(handles.handle1) | 149 self.router = messaging.Router(handles.handle1) |
151 self.router.SetIncomingMessageReceiver( | 150 self.router.SetIncomingMessageReceiver( |
152 messaging.ForwardingMessageReceiver(_OnMessage)) | 151 messaging.ForwardingMessageReceiver(_OnMessage)) |
153 self.router.SetErrorHandler( | 152 self.router.SetErrorHandler( |
154 _ForwardingConnectionErrorHandler(_OnError)) | 153 _ForwardingConnectionErrorHandler(_OnError)) |
155 self.router.Start() | 154 self.router.Start() |
156 self.handle = handles.handle0 | 155 self.handle = handles.handle0 |
157 | 156 |
158 def tearDown(self): | 157 def tearDown(self): |
159 self.router = None | 158 self.router = None |
160 self.handle = None | 159 self.handle = None |
161 self.loop = None | 160 super(RouterTest, self).tearDown() |
162 | 161 |
163 def testSimpleMessage(self): | 162 def testSimpleMessage(self): |
164 header_data = messaging.MessageHeader(0, messaging.NO_FLAG).Serialize() | 163 header_data = messaging.MessageHeader(0, messaging.NO_FLAG).Serialize() |
165 message = messaging.Message(header_data) | 164 message = messaging.Message(header_data) |
166 self.router.Accept(message) | 165 self.router.Accept(message) |
167 self.loop.RunUntilIdle() | 166 self.loop.RunUntilIdle() |
168 self.assertFalse(self.received_errors) | 167 self.assertFalse(self.received_errors) |
169 self.assertFalse(self.received_messages) | 168 self.assertFalse(self.received_messages) |
170 (res, data, _) = self.handle.ReadMessage(bytearray(len(header_data))) | 169 (res, data, _) = self.handle.ReadMessage(bytearray(len(header_data))) |
171 self.assertEquals(system.RESULT_OK, res) | 170 self.assertEquals(system.RESULT_OK, res) |
(...skipping 26 matching lines...) Expand all Loading... |
198 self.assertNotEquals(message_header.request_id, 0) | 197 self.assertNotEquals(message_header.request_id, 0) |
199 response_header_data = messaging.MessageHeader( | 198 response_header_data = messaging.MessageHeader( |
200 0, | 199 0, |
201 messaging.MESSAGE_IS_RESPONSE_FLAG, | 200 messaging.MESSAGE_IS_RESPONSE_FLAG, |
202 message_header.request_id).Serialize() | 201 message_header.request_id).Serialize() |
203 self.handle.WriteMessage(response_header_data) | 202 self.handle.WriteMessage(response_header_data) |
204 self.loop.RunUntilIdle() | 203 self.loop.RunUntilIdle() |
205 self.assertFalse(self.received_errors) | 204 self.assertFalse(self.received_errors) |
206 self.assertEquals(len(back_messages), 1) | 205 self.assertEquals(len(back_messages), 1) |
207 self.assertEquals(back_messages[0].data, response_header_data) | 206 self.assertEquals(back_messages[0].data, response_header_data) |
OLD | NEW |