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

Side by Side Diff: chrome/common/extensions/docs/server2/api_schema_map_test.py

Issue 23503039: Adding APISchemaGraph class to Extensions Docserver. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Significant changes. Created 7 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
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import unittest
7
8 from api_schema_map import APISchemaMap
9
10
11 API_SCHEMA = [{
12 'namespace': 'tabs',
13 'properties': {
14 'lowercase': {
15 'properties': {
16 'one': { 'value': 1 },
17 'two': { 'description': 'just as bad as one' }
18 }
19 },
20 'TAB_PROPERTY_ONE': { 'value': 'magic' },
21 'TAB_PROPERTY_TWO': {}
22 },
23 'types': [
24 {
25 'id': 'Tab',
26 'properties': {
27 'id': {},
28 'url': {}
29 }
30 }
31 ],
32 'functions': [
33 {
34 'name': 'get',
35 'parameters': [ { 'name': 'tab',
36 'type': 'object',
37 'description': 'gets stuff, never complains'
38 },
39 { 'name': 'tabId' }
40 ]
41 }
42 ],
43 'events': [
44 {
45 'name': 'onActivated',
46 'parameters': [ {'name': 'activeInfo'} ]
47 },
48 {
49 'name': 'onUpdated',
50 'parameters': [ {'name': 'updateInfo'} ]
51 }
52 ]
53 }]
54
55
56 class APISchemaMapTest(unittest.TestCase):
57
58 def testLookup(self):
59 api_schema_map = APISchemaMap(API_SCHEMA)
60
61 self.assertTrue(api_schema_map.Lookup('tabs', 'properties',
62 'TAB_PROPERTY_ONE'))
63 self.assertTrue(api_schema_map.Lookup('tabs', 'types', 'Tab'))
64 self.assertTrue(api_schema_map.Lookup('tabs', 'functions', 'get',
65 'parameters', 'tab'))
66 self.assertTrue(api_schema_map.Lookup('tabs', 'functions', 'get',
67 'parameters', 'tabId'))
68 self.assertTrue(api_schema_map.Lookup('tabs', 'functions', 'get',
69 'parameters', 'tab', 'type'))
70 self.assertTrue(api_schema_map.Lookup('tabs', 'events', 'onActivated',
71 'parameters', 'activeInfo'))
72 self.assertTrue(api_schema_map.Lookup('tabs', 'events', 'onUpdated',
73 'parameters', 'updateInfo'))
74 self.assertTrue(api_schema_map.Lookup('tabs', 'properties', 'lowercase',
75 'properties', 'one', 'value'))
76 self.assertTrue(api_schema_map.Lookup('tabs', 'properties', 'lowercase',
77 'properties', 'two', 'description'))
78
79 self.assertFalse(api_schema_map.Lookup('windows'))
80 self.assertFalse(api_schema_map.Lookup('tabs', 'properties',
81 'TAB_PROPERTY_DEUX'))
82 self.assertFalse(api_schema_map.Lookup('tabs', 'events', 'onActivated',
83 'parameters', 'callback'))
84 self.assertFalse(api_schema_map.Lookup('tabs', 'functions', 'getById',
85 'parameters', 'tab'))
86 self.assertFalse(api_schema_map.Lookup('tabs', 'functions', 'get',
87 'parameters', 'type'))
88 self.assertFalse(api_schema_map.Lookup('tabs', 'properties', 'lowercase',
89 'properties', 'two', 'value'))
not at google - send to devlin 2013/09/16 14:06:24 Pull all of these assertions into a different func
epeterson 2013/09/16 17:47:23 Done.
90
91 def testSubtract(self):
92 api_schema_map = APISchemaMap(API_SCHEMA)
93
94 # Test the empty set.
95 to_subtract = APISchemaMap({})
96 difference = api_schema_map.Subtract(to_subtract)
97 self.assertTrue(difference.Lookup('tabs', 'properties',
98 'TAB_PROPERTY_ONE'))
99 self.assertTrue(difference.Lookup('tabs', 'functions', 'get',
100 'parameters', 'tab'))
101 self.assertTrue(difference.Lookup('tabs', 'functions', 'get',
102 'parameters', 'tabId'))
103 self.assertTrue(difference.Lookup('tabs', 'events', 'onActivated',
104 'parameters', 'activeInfo'))
105 self.assertTrue(difference.Lookup('tabs', 'events', 'onUpdated',
106 'parameters', 'updateInfo'))
107
108 self.assertFalse(difference.Lookup('windows'))
109 self.assertFalse(difference.Lookup('tabs', 'properties',
110 'TAB_PROPERTY_DEUX'))
111 self.assertFalse(difference.Lookup('tabs', 'events', 'onActivated',
112 'parameters', 'callback'))
113 self.assertFalse(difference.Lookup('tabs', 'functions', 'getById',
114 'parameters', 'tab'))
not at google - send to devlin 2013/09/16 14:06:24 ... then call it from here. def testSubtractEmpty
epeterson 2013/09/16 17:47:23 Done.
115
116 # Test the same set.
117 to_subtract = APISchemaMap(API_SCHEMA)
not at google - send to devlin 2013/09/16 14:06:24 ... and pull the rest into a different test (testS
epeterson 2013/09/16 17:47:23 Done.
118 difference = api_schema_map.Subtract(to_subtract)
119 self.assertFalse(difference.Lookup('tabs'))
not at google - send to devlin 2013/09/16 14:06:24 Also this is one case where adding a specific meth
epeterson 2013/09/16 17:47:23 Done.
120 self.assertFalse(difference.Lookup('tabs', 'properties',
121 'TAB_PROPERTY_ONE'))
122 self.assertFalse(difference.Lookup('tabs', 'functions', 'get',
123 'parameters', 'tab'))
124 self.assertFalse(difference.Lookup('tabs', 'events', 'onUpdated',
125 'parameters', 'updateInfo'))
126 self.assertFalse(difference.Lookup('tabs', 'functions', 'get',
127 'parameters', 'tabId'))
128 self.assertFalse(difference.Lookup('tabs', 'types', 'Tab'))
129
130 # Test a disjoint set.
not at google - send to devlin 2013/09/16 14:06:24 separate test (testSubtractDisjointSet)
epeterson 2013/09/16 17:47:23 Done.
131 to_subtract = APISchemaMap({
132 'contextMenus': {
133 'properties': {
134 'CONTEXT_MENU_PROPERTY_ONE': {}
135 },
136 'types': {
137 'Menu': {
138 'properties': {
139 'id': {},
140 'width': {}
141 }
142 }
143 },
144 'functions': {
145 'get': {
146 'parameters': {
147 'callback': {}
148 }
149 }
150 },
151 'events': {
152 'onClicked': {
153 'parameters': {
154 'clickInfo': {}
155 }
156 },
157 'onUpdated': {
158 'parameters': {
159 'updateInfo': {}
160 }
161 }
162 }
163 }
164 })
165 difference = api_schema_map.Subtract(to_subtract)
166 self.assertTrue(difference.Lookup('tabs', 'properties',
167 'TAB_PROPERTY_ONE'))
168 self.assertTrue(difference.Lookup('tabs', 'functions', 'get',
169 'parameters', 'tab'))
170 self.assertTrue(difference.Lookup('tabs', 'events', 'onUpdated',
171 'parameters', 'updateInfo'))
172 self.assertTrue(difference.Lookup('tabs', 'functions', 'get',
173 'parameters', 'tabId'))
174 self.assertFalse(difference.Lookup('contextMenus', 'properties',
175 'CONTEXT_MENU_PROPERTY_ONE'))
176 self.assertFalse(difference.Lookup('contextMenus', 'types', 'Menu'))
177 self.assertFalse(difference.Lookup('contextMenus', 'types', 'Menu',
178 'properties', 'id'))
179 self.assertFalse(difference.Lookup('contextMenus', 'functions'))
180 self.assertFalse(difference.Lookup('contextMenus', 'events', 'onClicked',
181 'parameters', 'clickInfo'))
182 self.assertFalse(difference.Lookup('contextMenus', 'events', 'onUpdated',
183 'parameters', 'updateInfo'))
184
185 # Test a subset.
186 to_subtract = APISchemaMap({
not at google - send to devlin 2013/09/16 14:06:24 separate test (testSubtractSubset)
epeterson 2013/09/16 17:47:23 Done.
187 'tabs': {
188 'properties': {
189 'TAB_PROPERTY_ONE': { 'value': {} }
190 },
191 'functions': {
192 'get': {
193 'parameters': {
194 'tab': { 'name': {},
195 'type': {},
196 'description': {}
197 }
198 }
199 }
200 },
201 'events': {
202 'onUpdated': {
203 'parameters': {
204 'updateInfo': {
205 'name': {},
206 'properties': {
207 'tabId': {}
208 }
209 }
210 }
211 }
212 }
213 }
214 })
215 difference = api_schema_map.Subtract(to_subtract)
216 self.assertTrue(difference.Lookup('tabs'))
217 self.assertTrue(difference.Lookup('tabs', 'properties',
218 'TAB_PROPERTY_TWO'))
219 self.assertTrue(difference.Lookup('tabs', 'properties', 'lowercase',
220 'properties', 'two', 'description'))
221 self.assertTrue(difference.Lookup('tabs', 'types', 'Tab', 'properties',
222 'url'))
223 self.assertTrue(difference.Lookup('tabs', 'events', 'onActivated',
224 'parameters', 'activeInfo'))
225 self.assertFalse(difference.Lookup('tabs', 'events', 'onUpdated',
226 'parameters', 'updateInfo'))
227 self.assertFalse(difference.Lookup('tabs', 'properties',
228 'TAB_PROPERTY_ONE'))
229 self.assertFalse(difference.Lookup('tabs', 'properties',
230 'TAB_PROPERTY_ONE', 'value'))
231 self.assertFalse(difference.Lookup('tabs', 'functions', 'get',
232 'parameters', 'tab'))
233
234 # Test a superset.
235 to_subtract = APISchemaMap({
not at google - send to devlin 2013/09/16 14:06:24 separate test (testSubtractSuperset)
epeterson 2013/09/16 17:47:23 Done.
236 'tabs': {
237 'namespace': {},
238 'properties': {
239 'lowercase': {
240 'properties': {
241 'one': { 'value': {} },
242 'two': { 'description': {} }
243 }
244 },
245 'TAB_PROPERTY_ONE': { 'value': {} },
246 'TAB_PROPERTY_TWO': {},
247 'TAB_PROPERTY_THREE': {}
248 },
249 'types': {
250 'Tab': {
251 'id': {},
252 'properties': {
253 'id': {},
254 'url': {}
255 }
256 },
257 'UpdateInfo': {}
258 },
259 'functions': {
260 'get': {
261 'name': {},
262 'parameters': {
263 'tab': { 'name': {},
264 'type': {},
265 'description': {}
266 },
267 'tabId': { 'name': {} }
268 }
269 },
270 'getById': {
271 'parameters': {
272 'tabId': {}
273 }
274 }
275 },
276 'events': {
277 'onActivated': {
278 'name': {},
279 'parameters': {
280 'activeInfo': { 'name': {} }
281 }
282 },
283 'onUpdated': {
284 'name': {},
285 'parameters': {
286 'updateInfo': { 'name': {} }
287 }
288 },
289 'onClicked': {
290 'name': {},
291 'parameters': {
292 'clickInfo': {}
293 }
294 }
295 }
296 }
297 })
298 difference = api_schema_map.Subtract(to_subtract)
299 self.assertFalse(difference.Lookup('tabs'))
300 self.assertFalse(difference.Lookup('tabs', 'properties',
301 'TAB_PROPERTY_TWO'))
302 self.assertFalse(difference.Lookup('tabs', 'properties'))
303 self.assertFalse(difference.Lookup('tabs', 'types', 'Tab', 'properties',
304 'url'))
305 self.assertFalse(difference.Lookup('tabs', 'types', 'Tab', 'properties',
306 'id'))
307 self.assertFalse(difference.Lookup('tabs', 'events', 'onUpdated',
308 'parameters', 'updateInfo'))
309 self.assertFalse(difference.Lookup('tabs', 'properties',
310 'TAB_PROPERTY_ONE'))
311 self.assertFalse(difference.Lookup('tabs', 'functions', 'get',
312 'parameters', 'tabId'))
313 self.assertFalse(difference.Lookup('events', 'onUpdated', 'parameters',
314 'updateInfo'))
315
316
317 if __name__ == '__main__':
318 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698