| OLD | NEW |
| (Empty) |
| 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 | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import math | |
| 6 import unittest | |
| 7 | |
| 8 # pylint: disable=E0611,F0401 | |
| 9 import mojo.system | |
| 10 | |
| 11 # Generated files | |
| 12 # pylint: disable=F0401 | |
| 13 import sample_import_mojom | |
| 14 import sample_import2_mojom | |
| 15 import sample_service_mojom | |
| 16 | |
| 17 | |
| 18 def _NewHandle(): | |
| 19 return mojo.system.MessagePipe().handle0 | |
| 20 | |
| 21 | |
| 22 def _NewBar(): | |
| 23 bar_instance = sample_service_mojom.Bar() | |
| 24 bar_instance.alpha = 22 | |
| 25 bar_instance.beta = 87 | |
| 26 bar_instance.gamma = 122 | |
| 27 bar_instance.type = sample_service_mojom.Bar.Type.BOTH | |
| 28 return bar_instance | |
| 29 | |
| 30 | |
| 31 def _NewFoo(): | |
| 32 foo_instance = sample_service_mojom.Foo() | |
| 33 foo_instance.name = "Foo.name" | |
| 34 foo_instance.x = 23 | |
| 35 foo_instance.y = -23 | |
| 36 foo_instance.a = False | |
| 37 foo_instance.b = True | |
| 38 foo_instance.c = True | |
| 39 foo_instance.bar = _NewBar() | |
| 40 foo_instance.extra_bars = [ | |
| 41 _NewBar(), | |
| 42 _NewBar(), | |
| 43 ] | |
| 44 foo_instance.data = 'Hello world' | |
| 45 foo_instance.source = _NewHandle() | |
| 46 foo_instance.input_streams = [ _NewHandle() ] | |
| 47 foo_instance.output_streams = [ _NewHandle(), _NewHandle() ] | |
| 48 foo_instance.array_of_array_of_bools = [ [ True, False ], [] ] | |
| 49 foo_instance.multi_array_of_strings = [ | |
| 50 [ | |
| 51 [ "1", "2" ], | |
| 52 [], | |
| 53 [ "3", "4" ], | |
| 54 ], | |
| 55 [], | |
| 56 ] | |
| 57 foo_instance.array_of_bools = [ True, 0, 1, 2, 0, 0, 0, 0, 0, True ] | |
| 58 return foo_instance | |
| 59 | |
| 60 | |
| 61 class SerializationDeserializationTest(unittest.TestCase): | |
| 62 | |
| 63 def testFooSerialization(self): | |
| 64 (data, _) = _NewFoo().Serialize() | |
| 65 self.assertTrue(len(data)) | |
| 66 self.assertEquals(len(data) % 8, 0) | |
| 67 | |
| 68 def testFooDeserialization(self): | |
| 69 (data, handles) = _NewFoo().Serialize() | |
| 70 self.assertTrue( | |
| 71 sample_service_mojom.Foo.Deserialize(data, handles)) | |
| 72 | |
| 73 def testFooSerializationDeserialization(self): | |
| 74 foo1 = _NewFoo() | |
| 75 (data, handles) = foo1.Serialize() | |
| 76 foo2 = sample_service_mojom.Foo.Deserialize(data, handles) | |
| 77 self.assertEquals(foo1, foo2) | |
| 78 | |
| 79 def testDefaultsTestSerializationDeserialization(self): | |
| 80 v1 = sample_service_mojom.DefaultsTest() | |
| 81 v1.a18 = [] | |
| 82 v1.a19 = "" | |
| 83 v1.a21 = sample_import_mojom.Point() | |
| 84 v1.a22.location = sample_import_mojom.Point() | |
| 85 v1.a22.size = sample_import2_mojom.Size() | |
| 86 (data, handles) = v1.Serialize() | |
| 87 v2 = sample_service_mojom.DefaultsTest.Deserialize(data, handles) | |
| 88 # NaN needs to be a special case. | |
| 89 self.assertNotEquals(v1, v2) | |
| 90 self.assertTrue(math.isnan(v2.a28)) | |
| 91 self.assertTrue(math.isnan(v2.a31)) | |
| 92 v1.a28 = v2.a28 = v1.a31 = v2.a31 = 0 | |
| 93 self.assertEquals(v1, v2) | |
| 94 | |
| 95 def testFooDeserializationError(self): | |
| 96 with self.assertRaises(Exception): | |
| 97 sample_service_mojom.Foo.Deserialize("", []) | |
| OLD | NEW |