| Index: bindings/scripts/generate_idl_diff_test.py
|
| diff --git a/bindings/scripts/generate_idl_diff_test.py b/bindings/scripts/generate_idl_diff_test.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c301dcec9b3b239c48ca052970c485992dccee69
|
| --- /dev/null
|
| +++ b/bindings/scripts/generate_idl_diff_test.py
|
| @@ -0,0 +1,106 @@
|
| +#!/usr/bin/env python
|
| +# Copyright 2015 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 generate_idl_diff
|
| +import os
|
| +import sys
|
| +import unittest
|
| +
|
| +from generate_idl_diff import DIFF_TAG
|
| +from generate_idl_diff import DIFF_TAG_DELETED
|
| +from generate_idl_diff import DIFF_TAG_ADDED
|
| +
|
| +
|
| +testdata_path = os.path.join(
|
| + os.path.dirname(os.path.realpath(__file__)), 'testdata')
|
| +old_data_path = os.path.join(testdata_path, 'old_chrome.json')
|
| +new_data_path = os.path.join(testdata_path, 'new_chrome.json')
|
| +
|
| +
|
| +class TestGenerateIDLDiff(unittest.TestCase):
|
| +
|
| + def setUp(self):
|
| + old = generate_idl_diff.load_json_file('old_chrome.json')
|
| + new = generate_idl_diff.load_json_file('new_chrome.json')
|
| + self.diff = generate_idl_diff.interfaces_diff(old, new)
|
| +
|
| + def test_deleted_interface(self):
|
| + self.assertTrue('AnimationEffectReadOnly' in self.diff)
|
| + deleted_interface = self.diff.get('AnimationEffectReadOnly')
|
| + self.assertIsNotNone(deleted_interface)
|
| + self.assertEqual(deleted_interface.get(DIFF_TAG), DIFF_TAG_DELETED)
|
| +
|
| + def test_added_interface(self):
|
| + self.assertTrue('AnimationEvent' in self.diff)
|
| + added_interface = self.diff.get('AnimationEvent')
|
| + self.assertIsNotNone(added_interface)
|
| + self.assertEqual(added_interface.get(DIFF_TAG), DIFF_TAG_ADDED)
|
| +
|
| + def test_changed_interface(self):
|
| + self.assertTrue('ANGLEInstancedArrays' in self.diff)
|
| + changed_interface = self.diff.get('ANGLEInstancedArrays')
|
| + self.assertIsNotNone(changed_interface)
|
| + self.assertIsNone(changed_interface.get(DIFF_TAG))
|
| +
|
| + def test_unchanged_interface(self):
|
| + self.assertFalse('AbstractWorker' in self.diff)
|
| +
|
| + def test_unchanged_consts(self):
|
| + changed_interface = self.diff['ANGLEInstancedArrays']
|
| + members = changed_interface['Consts']
|
| + for member in members:
|
| + self.assertEqual(member['Name'], 'VERTEX_ATTRIB_ARRAY_DIVISOR')
|
| + self.assertEqual(member['Type'], 'unsigned long')
|
| + self.assertEqual(member['Value'], '0x88FE')
|
| +
|
| + def test_changed_attribute(self):
|
| + changed_interface = self.diff['ANGLEInstancedArrays']
|
| + members = changed_interface['Attributes']
|
| + for member in members:
|
| + if member.get(DIFF_TAG) == DIFF_TAG_DELETED:
|
| + deleted = member
|
| + elif member.get(DIFF_TAG) == DIFF_TAG_ADDED:
|
| + added = member
|
| + else:
|
| + unchanged = member
|
| + self.assertEqual(deleted['Name'], 'animVal')
|
| + self.assertEqual(deleted['Type'], 'SVGAngle')
|
| + self.assertEqual(deleted['ExtAttributes'], [])
|
| + self.assertEqual(added['Name'], 'computedTiming')
|
| + self.assertEqual(added['Type'], 'ComputedTimingProperties')
|
| + self.assertEqual(added['ExtAttributes'], [{"Name": "maxChannelCount"}])
|
| + self.assertEqual(unchanged['Name'], 'timing')
|
| + self.assertEqual(unchanged['Type'], 'AnimationEffectTiming')
|
| + self.assertEqual(unchanged['ExtAttributes'], [])
|
| +
|
| + def test_changed_operation(self):
|
| + changed_interface = self.diff['ANGLEInstancedArrays']
|
| + members = changed_interface['Operations']
|
| + deleted_arguments = [{"Type": "long", "Name": "primcount"}]
|
| + added_arguments = [{"Type": "unsigned long", "Name": "mode"}]
|
| + unchanged_arguments = [{"Type": "unsigned long", "Name": "mode"}]
|
| + for member in members:
|
| + if member.get(DIFF_TAG) == DIFF_TAG_DELETED:
|
| + deleted = member
|
| + elif member.get(DIFF_TAG) == DIFF_TAG_ADDED:
|
| + added = member
|
| + else:
|
| + unchanged = member
|
| + self.assertEqual(deleted['Name'], 'drawElementsInstancedANGLE')
|
| + self.assertEqual(deleted['Type'], 'void')
|
| + self.assertEqual(deleted['ExtAttributes'], [])
|
| + self.assertEqual(deleted['Arguments'], deleted_arguments)
|
| + self.assertEqual(added['Name'], 'drawElementsInstancedANGLE')
|
| + self.assertEqual(added['Type'], 'void')
|
| + self.assertEqual(added['ExtAttributes'], [])
|
| + self.assertEqual(added['Arguments'], added_arguments)
|
| + self.assertEqual(unchanged['Name'], 'drawArraysInstancedANGLE')
|
| + self.assertEqual(unchanged['Type'], 'void')
|
| + self.assertEqual(unchanged['ExtAttributes'], [])
|
| + self.assertEqual(unchanged['Arguments'], unchanged_arguments)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + unittest.main()
|
|
|