| Index: sdk/lib/html/scripts/idlnode_test.py
|
| diff --git a/sdk/lib/html/scripts/idlnode_test.py b/sdk/lib/html/scripts/idlnode_test.py
|
| deleted file mode 100755
|
| index 1230de35739bad22df6ef08a3446b7f6c520009a..0000000000000000000000000000000000000000
|
| --- a/sdk/lib/html/scripts/idlnode_test.py
|
| +++ /dev/null
|
| @@ -1,147 +0,0 @@
|
| -#!/usr/bin/python
|
| -# Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -# for details. All rights reserved. Use of this source code is governed by a
|
| -# BSD-style license that can be found in the LICENSE file.
|
| -
|
| -import idlnode
|
| -import idlparser
|
| -import logging.config
|
| -import sys
|
| -import unittest
|
| -
|
| -
|
| -class IDLNodeTestCase(unittest.TestCase):
|
| -
|
| - def _run_test(self, syntax, content, expected):
|
| - """Utility run tests and prints extra contextual information.
|
| -
|
| - Args:
|
| - syntax -- IDL grammar to use (either idlparser.WEBKIT_SYNTAX,
|
| - WEBIDL_SYNTAX or FREMONTCUT_SYNTAX). If None, will run
|
| - multiple tests, each with a different syntax.
|
| - content -- input text for the parser.
|
| - expected -- expected parse result.
|
| - """
|
| - if syntax is None:
|
| - self._run_test(idlparser.WEBIDL_SYNTAX, content, expected)
|
| - self._run_test(idlparser.WEBKIT_SYNTAX, content, expected)
|
| - self._run_test(idlparser.FREMONTCUT_SYNTAX, content, expected)
|
| - return
|
| -
|
| - actual = None
|
| - error = None
|
| - ast = None
|
| - parseResult = None
|
| - try:
|
| - parser = idlparser.IDLParser(syntax)
|
| - ast = parser.parse(content)
|
| - node = idlnode.IDLFile(ast)
|
| - actual = node.to_dict() if node else None
|
| - except SyntaxError, e:
|
| - error = e
|
| - pass
|
| - if actual == expected:
|
| - return
|
| - else:
|
| - msg = '''
|
| -SYNTAX : %s
|
| -CONTENT :
|
| -%s
|
| -EXPECTED:
|
| -%s
|
| -ACTUAL :
|
| -%s
|
| -ERROR : %s
|
| -AST :
|
| -%s
|
| - ''' % (syntax, content, expected, actual, error, ast)
|
| - self.fail(msg)
|
| -
|
| - def test_empty_module(self):
|
| - self._run_test(
|
| - None,
|
| - 'module TestModule {};',
|
| - {'modules': [{'id': 'TestModule'}]})
|
| -
|
| - def test_empty_interface(self):
|
| - self._run_test(
|
| - None,
|
| - 'module TestModule { interface Interface1 {}; };',
|
| - {'modules': [{'interfaces': [{'javascript_binding_name': 'Interface1', 'doc_js_name': 'Interface1', 'id': 'Interface1'}], 'id': 'TestModule'}]})
|
| -
|
| - def test_gcc_preprocessor(self):
|
| - self._run_test(
|
| - idlparser.WEBKIT_SYNTAX,
|
| - '#if 1\nmodule TestModule {};\n#endif\n',
|
| - {'modules': [{'id': 'TestModule'}]})
|
| -
|
| - def test_extended_attributes(self):
|
| - self._run_test(
|
| - idlparser.WEBKIT_SYNTAX,
|
| - 'module M { interface [ExAt1, ExAt2] I {};};',
|
| - {'modules': [{'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'ext_attrs': {'ExAt1': None, 'ExAt2': None}, 'id': 'I'}], 'id': 'M'}]})
|
| -
|
| - def test_implements_statement(self):
|
| - self._run_test(
|
| - idlparser.WEBIDL_SYNTAX,
|
| - 'module M { X implements Y; };',
|
| - {'modules': [{'implementsStatements': [{'implementor': {'id': 'X'}, 'implemented': {'id': 'Y'}}], 'id': 'M'}]})
|
| -
|
| - def test_attributes(self):
|
| - self._run_test(
|
| - idlparser.WEBIDL_SYNTAX,
|
| - '''interface I {
|
| - attribute long a1;
|
| - readonly attribute DOMString a2;
|
| - attribute any a3;
|
| - };''',
|
| - {'interfaces': [{'javascript_binding_name': 'I', 'attributes': [{'type': {'id': 'long'}, 'id': 'a1', 'doc_js_interface_name': 'I'}, {'type': {'id': 'DOMString'}, 'is_read_only': True, 'id': 'a2', 'doc_js_interface_name': 'I'}, {'type': {'id': 'any'}, 'id': 'a3', 'doc_js_interface_name': 'I'}], 'id': 'I', 'doc_js_name': 'I'}]})
|
| -
|
| - def test_operations(self):
|
| - self._run_test(
|
| - idlparser.WEBIDL_SYNTAX,
|
| - '''interface I {
|
| - [ExAttr] t1 op1();
|
| - t2 op2(in int arg1, in long arg2);
|
| - getter any item(in long index);
|
| - stringifier name();
|
| - };''',
|
| - {'interfaces': [{'operations': [{'doc_js_interface_name': 'I', 'type': {'id': 't1'}, 'ext_attrs': {'ExAttr': None}, 'id': 'op1'}, {'doc_js_interface_name': 'I', 'type': {'id': 't2'}, 'id': 'op2', 'arguments': [{'type': {'id': 'int'}, 'id': 'arg1'}, {'type': {'id': 'long'}, 'id': 'arg2'}]}, {'specials': ['getter'], 'doc_js_interface_name': 'I', 'type': {'id': 'any'}, 'id': 'item', 'arguments': [{'type': {'id': 'long'}, 'id': 'index'}]}, {'is_stringifier': True, 'type': {'id': 'name'}, 'doc_js_interface_name': 'I'}], 'javascript_binding_name': 'I', 'id': 'I', 'doc_js_name': 'I'}]})
|
| -
|
| - def test_constants(self):
|
| - self._run_test(
|
| - None,
|
| - '''interface I {
|
| - const long c1 = 0;
|
| - const long c2 = 1;
|
| - const long c3 = 0x01;
|
| - const long c4 = 10;
|
| - const boolean b1 = false;
|
| - const boolean b2 = true;
|
| - };''',
|
| - {'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'id': 'I', 'constants': [{'type': {'id': 'long'}, 'id': 'c1', 'value': '0', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c2', 'value': '1', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c3', 'value': '0x01', 'doc_js_interface_name': 'I'}, {'type': {'id': 'long'}, 'id': 'c4', 'value': '10', 'doc_js_interface_name': 'I'}, {'type': {'id': 'boolean'}, 'id': 'b1', 'value': 'false', 'doc_js_interface_name': 'I'}, {'type': {'id': 'boolean'}, 'id': 'b2', 'value': 'true', 'doc_js_interface_name': 'I'}]}]})
|
| -
|
| - def test_annotations(self):
|
| - self._run_test(
|
| - idlparser.FREMONTCUT_SYNTAX,
|
| - '@Ano1 @Ano2() @Ano3(x=1) @Ano4(x,y=2) interface I {};',
|
| - {'interfaces': [{'javascript_binding_name': 'I', 'doc_js_name': 'I', 'id': 'I', 'annotations': {'Ano4': {'y': '2', 'x': None}, 'Ano1': {}, 'Ano2': {}, 'Ano3': {'x': '1'}}}]})
|
| - self._run_test(
|
| - idlparser.FREMONTCUT_SYNTAX,
|
| - '''interface I : @Ano1 J {
|
| - @Ano2 attribute int someAttr;
|
| - @Ano3 void someOp();
|
| - @Ano3 const int someConst = 0;
|
| - };''',
|
| - {'interfaces': [{'operations': [{'annotations': {'Ano3': {}}, 'type': {'id': 'void'}, 'id': 'someOp', 'doc_js_interface_name': 'I'}], 'javascript_binding_name': 'I', 'parents': [{'type': {'id': 'J'}, 'annotations': {'Ano1': {}}}], 'attributes': [{'annotations': {'Ano2': {}}, 'type': {'id': 'int'}, 'id': 'someAttr', 'doc_js_interface_name': 'I'}], 'doc_js_name': 'I', 'id': 'I', 'constants': [{'annotations': {'Ano3': {}}, 'type': {'id': 'int'}, 'id': 'someConst', 'value': '0', 'doc_js_interface_name': 'I'}]}]})
|
| -
|
| - def test_inheritance(self):
|
| - self._run_test(
|
| - None,
|
| - 'interface Shape {}; interface Rectangle : Shape {}; interface Square : Rectangle, Shape {};',
|
| - {'interfaces': [{'javascript_binding_name': 'Shape', 'doc_js_name': 'Shape', 'id': 'Shape'}, {'javascript_binding_name': 'Rectangle', 'doc_js_name': 'Rectangle', 'parents': [{'type': {'id': 'Shape'}}], 'id': 'Rectangle'}, {'javascript_binding_name': 'Square', 'doc_js_name': 'Square', 'parents': [{'type': {'id': 'Rectangle'}}, {'type': {'id': 'Shape'}}], 'id': 'Square'}]})
|
| -
|
| -if __name__ == "__main__":
|
| - logging.config.fileConfig("logging.conf")
|
| - if __name__ == '__main__':
|
| - unittest.main()
|
|
|