Index: third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py |
diff --git a/third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py b/third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py |
index 52542447fb81bce1e6bc157638e2c2e8ec3f7d13..b3fcc42f7d72c81c0a9ac95edff0ec759a512283 100644 |
--- a/third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py |
+++ b/third_party/WebKit/Source/bindings/scripts/code_generator_web_module_test.py |
@@ -2,16 +2,20 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-# pylint: disable=import-error,print-statement,relative-import |
+# pylint: disable=import-error,print-statement,relative-import,protected-access |
"""Unit tests for code_generator_web_module.py.""" |
import unittest |
from code_generator_web_module import InterfaceContextBuilder |
+from code_generator_web_module import TypeResolver |
+from code_generator_web_module import STRING_INCLUDE_PATH |
from idl_definitions import IdlAttribute |
from idl_definitions import IdlOperation |
from idl_types import IdlType |
+from idl_types import PRIMITIVE_TYPES |
+from idl_types import STRING_TYPES |
# TODO(dglazkov): Convert to use actual objects, not stubs. |
@@ -32,16 +36,46 @@ class IdlTestingHelper(object): |
idl_operation_stub.idl_type = IdlType(return_type) |
return idl_operation_stub |
+ def make_stub_idl_type(self, base_type): |
+ return IdlType(base_type) |
+ |
+ |
+class TypeResolverTest(unittest.TestCase): |
+ |
+ def test_includes_from_type_should_filter_primitive_types(self): |
+ type_resolver = TypeResolver() |
+ helper = IdlTestingHelper() |
+ for primitive_type in PRIMITIVE_TYPES: |
+ idl_type = helper.make_stub_idl_type(primitive_type) |
+ self.assertEqual( |
+ type_resolver._includes_from_type(idl_type), set()) |
+ |
+ def test_includes_from_type_should_filter_void(self): |
+ type_resolver = TypeResolver() |
+ helper = IdlTestingHelper() |
+ idl_type = helper.make_stub_idl_type('void') |
+ self.assertEqual( |
+ type_resolver._includes_from_type(idl_type), set()) |
+ |
+ def test_includes_from_type_should_handle_string(self): |
+ type_resolver = TypeResolver() |
+ helper = IdlTestingHelper() |
+ for string_type in STRING_TYPES: |
+ idl_type = helper.make_stub_idl_type(string_type) |
+ self.assertEqual( |
+ type_resolver._includes_from_type(idl_type), |
+ set([STRING_INCLUDE_PATH])) |
+ |
class InterfaceContextBuilderTest(unittest.TestCase): |
def test_empty(self): |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
self.assertEqual({'code_generator': 'test'}, builder.build()) |
def test_set_name(self): |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
builder.set_class_name('foo') |
self.assertEqual({ |
@@ -50,7 +84,7 @@ class InterfaceContextBuilderTest(unittest.TestCase): |
}, builder.build()) |
def test_set_inheritance(self): |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
builder.set_inheritance('foo') |
self.assertEqual({ |
'code_generator': 'test', |
@@ -58,14 +92,14 @@ class InterfaceContextBuilderTest(unittest.TestCase): |
'cpp_includes': set(['foo']), |
}, builder.build()) |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
builder.set_inheritance(None) |
self.assertEqual({'code_generator': 'test'}, builder.build()) |
def test_add_attribute(self): |
helper = IdlTestingHelper() |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
attribute = helper.make_stub_idl_attribute('foo', 'bar') |
builder.add_attribute(attribute) |
@@ -77,7 +111,7 @@ class InterfaceContextBuilderTest(unittest.TestCase): |
def test_add_method(self): |
helper = IdlTestingHelper() |
- builder = InterfaceContextBuilder('test') |
+ builder = InterfaceContextBuilder('test', TypeResolver()) |
operation = helper.make_stub_idl_operation('foo', 'bar') |
builder.add_operation(operation) |