OLD | NEW |
(Empty) | |
| 1 #!/usr/bin/env python |
| 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 |
| 4 # found in the LICENSE file. |
| 5 |
| 6 import idl_schema |
| 7 import unittest |
| 8 |
| 9 def getFunction(schema, name): |
| 10 for item in schema['functions']: |
| 11 if item['name'] == name: |
| 12 return item |
| 13 raise KeyError('Missing function %s' % name) |
| 14 |
| 15 def getParams(schema, name): |
| 16 function = getFunction(schema, name) |
| 17 return function['parameters'] |
| 18 |
| 19 class IdlSchemaTest(unittest.TestCase): |
| 20 def setUp(self): |
| 21 loaded = idl_schema.Load('test/idl_basics.idl') |
| 22 self.assertEquals(1, len(loaded)) |
| 23 self.assertEquals('idl_basics', loaded[0]['namespace']) |
| 24 self.idl_basics = loaded[0] |
| 25 |
| 26 def testSimpleCallbacks(self): |
| 27 schema = self.idl_basics |
| 28 expected = [{'type':'function', 'name':'Callback1', 'parameters':[]}] |
| 29 self.assertEquals(expected, getParams(schema, 'function4')) |
| 30 |
| 31 expected = [{'type':'function', 'name':'Callback2', |
| 32 'parameters':[{'name':'x', 'type':'integer'}]}] |
| 33 self.assertEquals(expected, getParams(schema, 'function5')) |
| 34 |
| 35 expected = [{'type':'function', 'name':'Callback3', |
| 36 'parameters':[{'name':'arg', '$ref':'MyType1'}]}] |
| 37 self.assertEquals(expected, getParams(schema, 'function6')) |
| 38 |
| 39 def testCallbackWithArrayArgument(self): |
| 40 schema = self.idl_basics |
| 41 expected = [{'type':'function', 'name':'Callback4', |
| 42 'parameters':[{'name':'arg', 'type':'array', |
| 43 'items':{'$ref':'MyType2'}}]}] |
| 44 self.assertEquals(expected, getParams(schema, 'function12')) |
| 45 |
| 46 if __name__ == '__main__': |
| 47 unittest.main() |
OLD | NEW |