Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Side by Side Diff: tools/json_schema_compiler/model_test.py

Issue 487533005: Add support for references in different paths in apis (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renaming core_api::types->core_api::extension_types. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698