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 import unittest | 6 import unittest |
7 | 7 |
8 # pylint: disable=F0401 | 8 # pylint: disable=F0401 |
9 import mojo.system | 9 import mojo.system |
10 | 10 |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 | 77 |
78 def _TestIntegerField(self, entity, field_name, bits, signed): | 78 def _TestIntegerField(self, entity, field_name, bits, signed): |
79 if signed: | 79 if signed: |
80 min_value = -(1 << (bits - 1)) | 80 min_value = -(1 << (bits - 1)) |
81 max_value = (1 << (bits - 1)) - 1 | 81 max_value = (1 << (bits - 1)) - 1 |
82 else: | 82 else: |
83 min_value = 0 | 83 min_value = 0 |
84 max_value = (1 << bits) - 1 | 84 max_value = (1 << bits) - 1 |
85 entity.__setattr__(field_name, min_value) | 85 entity.__setattr__(field_name, min_value) |
86 entity.__setattr__(field_name, max_value) | 86 entity.__setattr__(field_name, max_value) |
87 with self.assertRaises(ValueError): | 87 with self.assertRaises(TypeError): |
88 entity.__setattr__(field_name, None) | 88 entity.__setattr__(field_name, None) |
89 with self.assertRaises(ValueError): | 89 with self.assertRaises(OverflowError): |
90 entity.__setattr__(field_name, min_value - 1) | 90 entity.__setattr__(field_name, min_value - 1) |
91 with self.assertRaises(ValueError): | 91 with self.assertRaises(OverflowError): |
92 entity.__setattr__(field_name, max_value + 1) | 92 entity.__setattr__(field_name, max_value + 1) |
93 with self.assertRaises(ValueError): | 93 with self.assertRaises(TypeError): |
94 entity.__setattr__(field_name, 'hello world') | 94 entity.__setattr__(field_name, 'hello world') |
95 | 95 |
96 def testTypes(self): | 96 def testTypes(self): |
97 defaults_test = sample_service_mojom.DefaultsTest() | 97 defaults_test = sample_service_mojom.DefaultsTest() |
98 # Integer types | 98 # Integer types |
99 self._TestIntegerField(defaults_test, 'a0', 8, True) | 99 self._TestIntegerField(defaults_test, 'a0', 8, True) |
100 self._TestIntegerField(defaults_test, 'a1', 8, False) | 100 self._TestIntegerField(defaults_test, 'a1', 8, False) |
101 self._TestIntegerField(defaults_test, 'a2', 16, True) | 101 self._TestIntegerField(defaults_test, 'a2', 16, True) |
102 self._TestIntegerField(defaults_test, 'a3', 16, False) | 102 self._TestIntegerField(defaults_test, 'a3', 16, False) |
103 self._TestIntegerField(defaults_test, 'a4', 32, True) | 103 self._TestIntegerField(defaults_test, 'a4', 32, True) |
104 self._TestIntegerField(defaults_test, 'a5', 32, False) | 104 self._TestIntegerField(defaults_test, 'a5', 32, False) |
105 self._TestIntegerField(defaults_test, 'a6', 64, True) | 105 self._TestIntegerField(defaults_test, 'a6', 64, True) |
106 self._TestIntegerField(defaults_test, 'a7', 64, False) | 106 self._TestIntegerField(defaults_test, 'a7', 64, False) |
107 | 107 |
108 # Boolean types | 108 # Boolean types |
109 defaults_test.a11 = False | 109 defaults_test.a11 = False |
110 self.assertEquals(defaults_test.a11, False) | 110 self.assertEquals(defaults_test.a11, False) |
111 defaults_test.a11 = None | 111 defaults_test.a11 = None |
112 self.assertEquals(defaults_test.a11, False) | 112 self.assertEquals(defaults_test.a11, False) |
113 defaults_test.a11 = [] | 113 defaults_test.a11 = [] |
114 self.assertEquals(defaults_test.a11, False) | 114 self.assertEquals(defaults_test.a11, False) |
115 defaults_test.a12 = True | 115 defaults_test.a12 = True |
116 self.assertEquals(defaults_test.a12, True) | 116 self.assertEquals(defaults_test.a12, True) |
117 defaults_test.a12 = 1 | 117 defaults_test.a12 = 1 |
118 self.assertEquals(defaults_test.a12, True) | 118 self.assertEquals(defaults_test.a12, True) |
119 defaults_test.a12 = [[]] | 119 defaults_test.a12 = [[]] |
120 self.assertEquals(defaults_test.a12, True) | 120 self.assertEquals(defaults_test.a12, True) |
121 | 121 |
122 # Floating point types | 122 # Floating point types |
123 with self.assertRaises(ValueError): | 123 with self.assertRaises(TypeError): |
124 defaults_test.a13 = 'hello' | 124 defaults_test.a13 = 'hello' |
125 with self.assertRaises(ValueError): | 125 with self.assertRaises(TypeError): |
126 defaults_test.a14 = 'hello' | 126 defaults_test.a14 = 'hello' |
127 | 127 |
128 # Array type | 128 # Array type |
129 defaults_test.a18 = None | 129 defaults_test.a18 = None |
130 defaults_test.a18 = [] | 130 defaults_test.a18 = [] |
131 defaults_test.a18 = [ 0 ] | 131 defaults_test.a18 = [ 0 ] |
132 defaults_test.a18 = [ 255 ] | 132 defaults_test.a18 = [ 255 ] |
133 defaults_test.a18 = [ 0, 255 ] | 133 defaults_test.a18 = [ 0, 255 ] |
134 with self.assertRaises(ValueError): | 134 with self.assertRaises(TypeError): |
135 defaults_test.a18 = [[]] | 135 defaults_test.a18 = [[]] |
136 with self.assertRaises(ValueError): | 136 with self.assertRaises(OverflowError): |
137 defaults_test.a18 = [ -1 ] | 137 defaults_test.a18 = [ -1 ] |
138 with self.assertRaises(ValueError): | 138 with self.assertRaises(OverflowError): |
139 defaults_test.a18 = [ 256 ] | 139 defaults_test.a18 = [ 256 ] |
140 | 140 |
141 # String type | 141 # String type |
142 defaults_test.a19 = None | 142 defaults_test.a19 = None |
143 defaults_test.a19 = '' | 143 defaults_test.a19 = '' |
144 defaults_test.a19 = 'hello world' | 144 defaults_test.a19 = 'hello world' |
145 with self.assertRaises(ValueError): | 145 with self.assertRaises(TypeError): |
146 defaults_test.a19 = [[]] | 146 defaults_test.a19 = [[]] |
147 with self.assertRaises(ValueError): | 147 with self.assertRaises(TypeError): |
148 defaults_test.a19 = [ -1 ] | 148 defaults_test.a19 = [ -1 ] |
149 with self.assertRaises(ValueError): | 149 with self.assertRaises(TypeError): |
150 defaults_test.a19 = [ 256 ] | 150 defaults_test.a19 = [ 256 ] |
151 | 151 |
152 # Structs | 152 # Structs |
153 defaults_test.a21 = None | 153 defaults_test.a21 = None |
154 defaults_test.a21 = sample_import_mojom.Point() | 154 defaults_test.a21 = sample_import_mojom.Point() |
155 with self.assertRaises(ValueError): | 155 with self.assertRaises(TypeError): |
156 defaults_test.a21 = 1 | 156 defaults_test.a21 = 1 |
157 with self.assertRaises(ValueError): | 157 with self.assertRaises(TypeError): |
158 defaults_test.a21 = sample_import2_mojom.Thing() | 158 defaults_test.a21 = sample_import2_mojom.Thing() |
159 | 159 |
160 # Handles | 160 # Handles |
161 foo_instance = sample_service_mojom.Foo() | 161 foo_instance = sample_service_mojom.Foo() |
162 foo_instance.source = None | 162 foo_instance.source = None |
163 foo_instance.source = mojo.system.Handle() | 163 foo_instance.source = mojo.system.Handle() |
164 with self.assertRaises(ValueError): | 164 with self.assertRaises(TypeError): |
165 foo_instance.source = 1 | 165 foo_instance.source = 1 |
166 with self.assertRaises(ValueError): | 166 with self.assertRaises(TypeError): |
167 foo_instance.source = object() | 167 foo_instance.source = object() |
168 | 168 |
169 def testConstructor(self): | 169 def testConstructor(self): |
170 bar_instance = sample_service_mojom.Bar() | 170 bar_instance = sample_service_mojom.Bar() |
171 foo_instance = sample_service_mojom.Foo(name="Foo", | 171 foo_instance = sample_service_mojom.Foo(name="Foo", |
172 x=-1, | 172 x=-1, |
173 y=5, | 173 y=5, |
174 a=False, | 174 a=False, |
175 bar=bar_instance) | 175 bar=bar_instance) |
176 self.assertEquals(foo_instance.name, "Foo") | 176 self.assertEquals(foo_instance.name, "Foo") |
177 self.assertEquals(foo_instance.x, -1) | 177 self.assertEquals(foo_instance.x, -1) |
178 self.assertEquals(foo_instance.y, 5) | 178 self.assertEquals(foo_instance.y, 5) |
179 self.assertEquals(foo_instance.a, False) | 179 self.assertEquals(foo_instance.a, False) |
180 self.assertEquals(foo_instance.bar, bar_instance) | 180 self.assertEquals(foo_instance.bar, bar_instance) |
181 | 181 |
OLD | NEW |