Index: tools/json_schema_compiler/idl_schema_test.py |
diff --git a/tools/json_schema_compiler/idl_schema_test.py b/tools/json_schema_compiler/idl_schema_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..59fcd6da00710da317b60d1bf3296bae4166b169 |
--- /dev/null |
+++ b/tools/json_schema_compiler/idl_schema_test.py |
@@ -0,0 +1,47 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import idl_schema |
+import unittest |
+ |
+def getFunction(schema, name): |
+ for item in schema['functions']: |
+ if item['name'] == name: |
+ return item |
+ raise KeyError('Missing function %s' % name) |
+ |
+def getParams(schema, name): |
+ function = getFunction(schema, name) |
+ return function['parameters'] |
+ |
+class IdlSchemaTest(unittest.TestCase): |
+ def setUp(self): |
+ loaded = idl_schema.Load('test/idl_basics.idl') |
+ self.assertEquals(1, len(loaded)) |
+ self.assertEquals('idl_basics', loaded[0]['namespace']) |
+ self.idl_basics = loaded[0] |
+ |
+ def testSimpleCallbacks(self): |
+ schema = self.idl_basics |
+ expected = [{'type':'function', 'name':'Callback1', 'parameters':[]}] |
+ self.assertEquals(expected, getParams(schema, 'function4')) |
+ |
+ expected = [{'type':'function', 'name':'Callback2', |
+ 'parameters':[{'name':'x', 'type':'integer'}]}] |
+ self.assertEquals(expected, getParams(schema, 'function5')) |
+ |
+ expected = [{'type':'function', 'name':'Callback3', |
+ 'parameters':[{'name':'arg', '$ref':'MyType1'}]}] |
+ self.assertEquals(expected, getParams(schema, 'function6')) |
+ |
+ def testCallbackWithArrayArgument(self): |
+ schema = self.idl_basics |
+ expected = [{'type':'function', 'name':'Callback4', |
+ 'parameters':[{'name':'arg', 'type':'array', |
+ 'items':{'$ref':'MyType2'}}]}] |
+ self.assertEquals(expected, getParams(schema, 'function12')) |
+ |
+if __name__ == '__main__': |
+ unittest.main() |