OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 from json_schema import CachedLoad | 6 from json_schema import CachedLoad |
| 7 from idl_schema import Load |
| 8 from model import Platforms |
7 import model | 9 import model |
8 import unittest | 10 import unittest |
9 | 11 |
10 class ModelTest(unittest.TestCase): | 12 class ModelTest(unittest.TestCase): |
11 def setUp(self): | 13 def setUp(self): |
12 self.model = model.Model() | 14 self.model = model.Model() |
13 self.permissions_json = CachedLoad('test/permissions.json') | 15 self.permissions_json = CachedLoad('test/permissions.json') |
14 self.model.AddNamespace(self.permissions_json[0], | 16 self.model.AddNamespace(self.permissions_json[0], |
15 'path/to/permissions.json') | 17 'path/to/permissions.json') |
16 self.permissions = self.model.namespaces.get('permissions') | 18 self.permissions = self.model.namespaces.get('permissions') |
17 self.windows_json = CachedLoad('test/windows.json') | 19 self.windows_json = CachedLoad('test/windows.json') |
18 self.model.AddNamespace(self.windows_json[0], | 20 self.model.AddNamespace(self.windows_json[0], |
19 'path/to/window.json') | 21 'path/to/window.json') |
20 self.windows = self.model.namespaces.get('windows') | 22 self.windows = self.model.namespaces.get('windows') |
21 self.tabs_json = CachedLoad('test/tabs.json') | 23 self.tabs_json = CachedLoad('test/tabs.json') |
22 self.model.AddNamespace(self.tabs_json[0], | 24 self.model.AddNamespace(self.tabs_json[0], |
23 'path/to/tabs.json') | 25 'path/to/tabs.json') |
24 self.tabs = self.model.namespaces.get('tabs') | 26 self.tabs = self.model.namespaces.get('tabs') |
| 27 self.idl_chromeos = Load('test/idl_namespace_chromeos.idl') |
| 28 self.model.AddNamespace(self.idl_chromeos[0], |
| 29 'path/to/idl_namespace_chromeos.idl') |
| 30 self.idl_namespace_chromeos = self.model.namespaces.get( |
| 31 'idl_namespace_chromeos') |
| 32 self.idl_all_platforms = Load('test/idl_namespace_all_platforms.idl') |
| 33 self.model.AddNamespace(self.idl_all_platforms[0], |
| 34 'path/to/idl_namespace_all_platforms.idl') |
| 35 self.idl_namespace_all_platforms = self.model.namespaces.get( |
| 36 'idl_namespace_all_platforms') |
| 37 self.idl_non_specific_platforms = Load( |
| 38 'test/idl_namespace_non_specific_platforms.idl') |
| 39 self.model.AddNamespace(self.idl_non_specific_platforms[0], |
| 40 'path/to/idl_namespace_non_specific_platforms.idl') |
| 41 self.idl_namespace_non_specific_platforms = self.model.namespaces.get( |
| 42 'idl_namespace_non_specific_platforms') |
25 | 43 |
26 def testNamespaces(self): | 44 def testNamespaces(self): |
27 self.assertEquals(3, len(self.model.namespaces)) | 45 self.assertEquals(6, len(self.model.namespaces)) |
28 self.assertTrue(self.permissions) | 46 self.assertTrue(self.permissions) |
29 | 47 |
30 def testHasFunctions(self): | 48 def testHasFunctions(self): |
31 self.assertEquals(["contains", "getAll", "remove", "request"], | 49 self.assertEquals(["contains", "getAll", "remove", "request"], |
32 sorted(self.permissions.functions.keys())) | 50 sorted(self.permissions.functions.keys())) |
33 | 51 |
34 def testHasTypes(self): | 52 def testHasTypes(self): |
35 self.assertEquals(['Tab'], self.tabs.types.keys()) | 53 self.assertEquals(['Tab'], self.tabs.types.keys()) |
36 self.assertEquals(['Permissions'], self.permissions.types.keys()) | 54 self.assertEquals(['Permissions'], self.permissions.types.keys()) |
37 self.assertEquals(['Window'], self.windows.types.keys()) | 55 self.assertEquals(['Window'], self.windows.types.keys()) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 'FOO': 'foo', | 111 'FOO': 'foo', |
94 'FOOBar': 'foo_bar', | 112 'FOOBar': 'foo_bar', |
95 'foo.bar': 'foo_bar', | 113 'foo.bar': 'foo_bar', |
96 'foo.BAR': 'foo_bar', | 114 'foo.BAR': 'foo_bar', |
97 'foo.barBAZ': 'foo_bar_baz', | 115 'foo.barBAZ': 'foo_bar_baz', |
98 'foo_Bar_Baz_box': 'foo_bar_baz_box', | 116 'foo_Bar_Baz_box': 'foo_bar_baz_box', |
99 } | 117 } |
100 for name in expectations: | 118 for name in expectations: |
101 self.assertEquals(expectations[name], model.UnixName(name)) | 119 self.assertEquals(expectations[name], model.UnixName(name)) |
102 | 120 |
| 121 def testPlatforms(self): |
| 122 self.assertEqual([Platforms.CHROMEOS], |
| 123 self.idl_namespace_chromeos.platforms) |
| 124 self.assertEqual( |
| 125 [Platforms.CHROMEOS, Platforms.CHROMEOS_TOUCH, Platforms.LINUX, |
| 126 Platforms.MAC, Platforms.WIN], |
| 127 self.idl_namespace_all_platforms.platforms) |
| 128 self.assertEqual(None, |
| 129 self.idl_namespace_non_specific_platforms.platforms) |
103 | 130 |
104 if __name__ == '__main__': | 131 if __name__ == '__main__': |
105 unittest.main() | 132 unittest.main() |
OLD | NEW |