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 math | 5 import math |
6 | 6 |
7 import mojo_unittest | 7 import mojo_unittest |
8 | 8 |
9 # pylint: disable=E0611,F0401 | 9 # pylint: disable=E0611,F0401 |
| 10 import mojo.bindings.serialization as serialization |
10 import mojo.system | 11 import mojo.system |
11 | 12 |
12 # Generated files | 13 # Generated files |
13 # pylint: disable=F0401 | 14 # pylint: disable=F0401 |
14 import sample_import_mojom | 15 import sample_import_mojom |
15 import sample_import2_mojom | 16 import sample_import2_mojom |
16 import sample_service_mojom | 17 import sample_service_mojom |
17 | 18 |
18 | 19 |
19 def _NewHandle(): | 20 def _NewHandle(): |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 | 62 |
62 class SerializationDeserializationTest(mojo_unittest.MojoTestCase): | 63 class SerializationDeserializationTest(mojo_unittest.MojoTestCase): |
63 | 64 |
64 def testFooSerialization(self): | 65 def testFooSerialization(self): |
65 (data, _) = _NewFoo().Serialize() | 66 (data, _) = _NewFoo().Serialize() |
66 self.assertTrue(len(data)) | 67 self.assertTrue(len(data)) |
67 self.assertEquals(len(data) % 8, 0) | 68 self.assertEquals(len(data) % 8, 0) |
68 | 69 |
69 def testFooDeserialization(self): | 70 def testFooDeserialization(self): |
70 (data, handles) = _NewFoo().Serialize() | 71 (data, handles) = _NewFoo().Serialize() |
| 72 context = serialization.RootDeserializationContext(data, handles) |
71 self.assertTrue( | 73 self.assertTrue( |
72 sample_service_mojom.Foo.Deserialize(data, handles)) | 74 sample_service_mojom.Foo.Deserialize(context)) |
73 | 75 |
74 def testFooSerializationDeserialization(self): | 76 def testFooSerializationDeserialization(self): |
75 foo1 = _NewFoo() | 77 foo1 = _NewFoo() |
76 (data, handles) = foo1.Serialize() | 78 (data, handles) = foo1.Serialize() |
77 foo2 = sample_service_mojom.Foo.Deserialize(data, handles) | 79 context = serialization.RootDeserializationContext(data, handles) |
| 80 foo2 = sample_service_mojom.Foo.Deserialize(context) |
78 self.assertEquals(foo1, foo2) | 81 self.assertEquals(foo1, foo2) |
79 | 82 |
80 def testDefaultsTestSerializationDeserialization(self): | 83 def testDefaultsTestSerializationDeserialization(self): |
81 v1 = sample_service_mojom.DefaultsTest() | 84 v1 = sample_service_mojom.DefaultsTest() |
82 v1.a18 = [] | 85 v1.a18 = [] |
83 v1.a19 = "" | 86 v1.a19 = "" |
84 v1.a21 = sample_import_mojom.Point() | 87 v1.a21 = sample_import_mojom.Point() |
85 v1.a22.location = sample_import_mojom.Point() | 88 v1.a22.location = sample_import_mojom.Point() |
86 v1.a22.size = sample_import2_mojom.Size() | 89 v1.a22.size = sample_import2_mojom.Size() |
87 (data, handles) = v1.Serialize() | 90 (data, handles) = v1.Serialize() |
88 v2 = sample_service_mojom.DefaultsTest.Deserialize(data, handles) | 91 context = serialization.RootDeserializationContext(data, handles) |
| 92 v2 = sample_service_mojom.DefaultsTest.Deserialize(context) |
89 # NaN needs to be a special case. | 93 # NaN needs to be a special case. |
90 self.assertNotEquals(v1, v2) | 94 self.assertNotEquals(v1, v2) |
91 self.assertTrue(math.isnan(v2.a28)) | 95 self.assertTrue(math.isnan(v2.a28)) |
92 self.assertTrue(math.isnan(v2.a31)) | 96 self.assertTrue(math.isnan(v2.a31)) |
93 v1.a28 = v2.a28 = v1.a31 = v2.a31 = 0 | 97 v1.a28 = v2.a28 = v1.a31 = v2.a31 = 0 |
94 self.assertEquals(v1, v2) | 98 self.assertEquals(v1, v2) |
95 | 99 |
96 def testFooDeserializationError(self): | 100 def testFooDeserializationError(self): |
97 with self.assertRaises(Exception): | 101 with self.assertRaises(Exception): |
98 sample_service_mojom.Foo.Deserialize("", []) | 102 sample_service_mojom.Foo.Deserialize("", []) |
OLD | NEW |