| 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 |