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 | 7 from idl_schema import Load |
8 from model import Platforms | 8 from model import Platforms |
9 import model | 9 import model |
10 import unittest | 10 import unittest |
11 | 11 |
12 class ModelTest(unittest.TestCase): | 12 class ModelTest(unittest.TestCase): |
13 def setUp(self): | 13 def setUp(self): |
14 self.model = model.Model() | 14 self.model = model.Model() |
15 self.permissions_json = CachedLoad('test/permissions.json') | 15 self.permissions_json = CachedLoad('test/permissions.json') |
16 self.model.AddNamespace(self.permissions_json[0], | 16 self.model.AddNamespace(self.permissions_json[0], |
17 'path/to/permissions.json') | 17 'path/to/permissions.json', '') |
18 self.permissions = self.model.namespaces.get('permissions') | 18 self.permissions = self.model.namespaces.get('permissions') |
19 self.windows_json = CachedLoad('test/windows.json') | 19 self.windows_json = CachedLoad('test/windows.json') |
20 self.model.AddNamespace(self.windows_json[0], | 20 self.model.AddNamespace(self.windows_json[0], |
21 'path/to/window.json') | 21 'path/to/window.json', '') |
22 self.windows = self.model.namespaces.get('windows') | 22 self.windows = self.model.namespaces.get('windows') |
23 self.tabs_json = CachedLoad('test/tabs.json') | 23 self.tabs_json = CachedLoad('test/tabs.json') |
24 self.model.AddNamespace(self.tabs_json[0], | 24 self.model.AddNamespace(self.tabs_json[0], |
25 'path/to/tabs.json') | 25 'path/to/tabs.json', '') |
26 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') | 27 self.idl_chromeos = Load('test/idl_namespace_chromeos.idl') |
28 self.model.AddNamespace(self.idl_chromeos[0], | 28 self.model.AddNamespace(self.idl_chromeos[0], |
29 'path/to/idl_namespace_chromeos.idl') | 29 'path/to/idl_namespace_chromeos.idl', '') |
30 self.idl_namespace_chromeos = self.model.namespaces.get( | 30 self.idl_namespace_chromeos = self.model.namespaces.get( |
31 'idl_namespace_chromeos') | 31 'idl_namespace_chromeos') |
32 self.idl_all_platforms = Load('test/idl_namespace_all_platforms.idl') | 32 self.idl_all_platforms = Load('test/idl_namespace_all_platforms.idl') |
33 self.model.AddNamespace(self.idl_all_platforms[0], | 33 self.model.AddNamespace(self.idl_all_platforms[0], |
34 'path/to/idl_namespace_all_platforms.idl') | 34 'path/to/idl_namespace_all_platforms.idl', '') |
35 self.idl_namespace_all_platforms = self.model.namespaces.get( | 35 self.idl_namespace_all_platforms = self.model.namespaces.get( |
36 'idl_namespace_all_platforms') | 36 'idl_namespace_all_platforms') |
37 self.idl_non_specific_platforms = Load( | 37 self.idl_non_specific_platforms = Load( |
38 'test/idl_namespace_non_specific_platforms.idl') | 38 'test/idl_namespace_non_specific_platforms.idl') |
39 self.model.AddNamespace(self.idl_non_specific_platforms[0], | 39 self.model.AddNamespace(self.idl_non_specific_platforms[0], |
40 'path/to/idl_namespace_non_specific_platforms.idl') | 40 'path/to/idl_namespace_non_specific_platforms.idl', '') |
41 self.idl_namespace_non_specific_platforms = self.model.namespaces.get( | 41 self.idl_namespace_non_specific_platforms = self.model.namespaces.get( |
42 'idl_namespace_non_specific_platforms') | 42 'idl_namespace_non_specific_platforms', '') |
43 | 43 |
44 def testNamespaces(self): | 44 def testNamespaces(self): |
45 self.assertEquals(6, len(self.model.namespaces)) | 45 self.assertEquals(6, len(self.model.namespaces)) |
46 self.assertTrue(self.permissions) | 46 self.assertTrue(self.permissions) |
47 | 47 |
48 def testHasFunctions(self): | 48 def testHasFunctions(self): |
49 self.assertEquals(["contains", "getAll", "remove", "request"], | 49 self.assertEquals(["contains", "getAll", "remove", "request"], |
50 sorted(self.permissions.functions.keys())) | 50 sorted(self.permissions.functions.keys())) |
51 | 51 |
52 def testHasTypes(self): | 52 def testHasTypes(self): |
(...skipping 29 matching lines...) Expand all Loading... |
82 sorted(object_prop.type_.properties.keys())) | 82 sorted(object_prop.type_.properties.keys())) |
83 | 83 |
84 def testChoices(self): | 84 def testChoices(self): |
85 self.assertEquals(model.PropertyType.CHOICES, | 85 self.assertEquals(model.PropertyType.CHOICES, |
86 self.tabs.functions['move'].params[0].type_.property_type) | 86 self.tabs.functions['move'].params[0].type_.property_type) |
87 | 87 |
88 def testPropertyNotImplemented(self): | 88 def testPropertyNotImplemented(self): |
89 (self.permissions_json[0]['types'][0] | 89 (self.permissions_json[0]['types'][0] |
90 ['properties']['permissions']['type']) = 'something' | 90 ['properties']['permissions']['type']) = 'something' |
91 self.assertRaises(model.ParseException, self.model.AddNamespace, | 91 self.assertRaises(model.ParseException, self.model.AddNamespace, |
92 self.permissions_json[0], 'path/to/something.json') | 92 self.permissions_json[0], 'path/to/something.json', '') |
93 | 93 |
94 def testDescription(self): | 94 def testDescription(self): |
95 self.assertFalse( | 95 self.assertFalse( |
96 self.permissions.functions['contains'].params[0].description) | 96 self.permissions.functions['contains'].params[0].description) |
97 self.assertEquals('True if the extension has the specified permissions.', | 97 self.assertEquals('True if the extension has the specified permissions.', |
98 self.permissions.functions['contains'].callback.params[0].description) | 98 self.permissions.functions['contains'].callback.params[0].description) |
99 | 99 |
100 def testPropertyUnixName(self): | 100 def testPropertyUnixName(self): |
101 param = self.tabs.functions['move'].params[0] | 101 param = self.tabs.functions['move'].params[0] |
102 self.assertEquals('tab_ids', param.unix_name) | 102 self.assertEquals('tab_ids', param.unix_name) |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 self.idl_namespace_chromeos.platforms) | 138 self.idl_namespace_chromeos.platforms) |
139 self.assertEqual( | 139 self.assertEqual( |
140 [Platforms.CHROMEOS, Platforms.CHROMEOS_TOUCH, Platforms.LINUX, | 140 [Platforms.CHROMEOS, Platforms.CHROMEOS_TOUCH, Platforms.LINUX, |
141 Platforms.MAC, Platforms.WIN], | 141 Platforms.MAC, Platforms.WIN], |
142 self.idl_namespace_all_platforms.platforms) | 142 self.idl_namespace_all_platforms.platforms) |
143 self.assertEqual(None, | 143 self.assertEqual(None, |
144 self.idl_namespace_non_specific_platforms.platforms) | 144 self.idl_namespace_non_specific_platforms.platforms) |
145 | 145 |
146 if __name__ == '__main__': | 146 if __name__ == '__main__': |
147 unittest.main() | 147 unittest.main() |
OLD | NEW |