Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: tools/json_schema_compiler/cpp_type_generator_test.py

Issue 12522004: Lazily load extension API schemas (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/json_schema_compiler/cpp_type_generator.py ('k') | tools/json_schema_compiler/preview.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/json_schema_compiler/cpp_type_generator_test.py
diff --git a/tools/json_schema_compiler/cpp_type_generator_test.py b/tools/json_schema_compiler/cpp_type_generator_test.py
index 5e3dcff943536752e0f631f794eaa6ee531f8e80..7782b234a4ccbc74d6ba71d9540d5dc575ab33b4 100755
--- a/tools/json_schema_compiler/cpp_type_generator_test.py
+++ b/tools/json_schema_compiler/cpp_type_generator_test.py
@@ -10,6 +10,16 @@ import unittest
from collections import defaultdict
+class _FakeSchemaLoader(object):
+ def __init__(self, model):
+ self._model = model
+
+ def ResolveType(self, type_name, default):
+ parts = type_name.rsplit('.', 1)
+ if len(parts) == 1:
+ return default if type_name in default.types else None
+ return self._model.namespaces[parts[0]]
+
class CppTypeGeneratorTest(unittest.TestCase):
def setUp(self):
self.models = defaultdict(model.Model)
@@ -43,7 +53,7 @@ class CppTypeGeneratorTest(unittest.TestCase):
m = model.Model()
m.AddNamespace(self.windows_json[0], 'path/to/windows.json')
m.AddNamespace(self.tabs_json[0], 'path/to/tabs.json')
- manager = CppTypeGenerator(m)
+ manager = CppTypeGenerator(m, _FakeSchemaLoader(m))
self.assertEquals('', manager.GenerateIncludes().Render())
self.assertEquals('#include "path/to/tabs.h"',
@@ -52,11 +62,13 @@ class CppTypeGeneratorTest(unittest.TestCase):
'struct Tab;\n'
'}',
manager.GenerateForwardDeclarations().Render())
- manager = CppTypeGenerator(self.models.get('permissions'))
+ manager = CppTypeGenerator(self.models.get('permissions'),
+ _FakeSchemaLoader(m))
self.assertEquals('', manager.GenerateIncludes().Render())
self.assertEquals('', manager.GenerateIncludes().Render())
self.assertEquals('', manager.GenerateForwardDeclarations().Render())
- manager = CppTypeGenerator(self.models.get('content_settings'))
+ manager = CppTypeGenerator(self.models.get('content_settings'),
+ _FakeSchemaLoader(m))
self.assertEquals('', manager.GenerateIncludes().Render())
def testGenerateIncludesAndForwardDeclarationsDependencies(self):
@@ -67,7 +79,9 @@ class CppTypeGeneratorTest(unittest.TestCase):
m.AddNamespace(self.browser_action_json[0], 'path/to/browser_action.json')
dependency_tester = m.AddNamespace(self.dependency_tester_json[0],
'path/to/dependency_tester.json')
- manager = CppTypeGenerator(m, default_namespace=dependency_tester)
+ manager = CppTypeGenerator(m,
+ _FakeSchemaLoader(m),
+ default_namespace=dependency_tester)
self.assertEquals('#include "path/to/browser_action.h"\n'
'#include "path/to/font_settings.h"',
manager.GenerateIncludes().Render())
@@ -78,7 +92,7 @@ class CppTypeGeneratorTest(unittest.TestCase):
manager.GenerateForwardDeclarations().Render())
def testGetCppTypeSimple(self):
- manager = CppTypeGenerator(self.models.get('tabs'))
+ manager = CppTypeGenerator(self.models.get('tabs'), _FakeSchemaLoader(None))
self.assertEquals(
'int',
manager.GetCppType(self.tabs.types['Tab'].properties['id'].type_))
@@ -90,31 +104,35 @@ class CppTypeGeneratorTest(unittest.TestCase):
manager.GetCppType(self.tabs.types['Tab'].properties['selected'].type_))
def testStringAsType(self):
- manager = CppTypeGenerator(self.models.get('font_settings'))
+ manager = CppTypeGenerator(self.models.get('font_settings'),
+ _FakeSchemaLoader(None))
self.assertEquals(
'std::string',
manager.GetCppType(self.font_settings.types['FakeStringType']))
def testArrayAsType(self):
- manager = CppTypeGenerator(self.models.get('browser_action'))
+ manager = CppTypeGenerator(self.models.get('browser_action'),
+ _FakeSchemaLoader(None))
self.assertEquals(
'std::vector<int>',
manager.GetCppType(self.browser_action.types['ColorArray']))
def testGetCppTypeArray(self):
- manager = CppTypeGenerator(self.models.get('windows'))
+ manager = CppTypeGenerator(self.models.get('windows'),
+ _FakeSchemaLoader(None))
self.assertEquals(
'std::vector<linked_ptr<Window> >',
manager.GetCppType(
self.windows.functions['getAll'].callback.params[0].type_))
- manager = CppTypeGenerator(self.models.get('permissions'))
+ manager = CppTypeGenerator(self.models.get('permissions'),
+ _FakeSchemaLoader(None))
self.assertEquals(
'std::vector<std::string>',
manager.GetCppType(
self.permissions.types['Permissions'].properties['origins'].type_))
def testGetCppTypeLocalRef(self):
- manager = CppTypeGenerator(self.models.get('tabs'))
+ manager = CppTypeGenerator(self.models.get('tabs'), _FakeSchemaLoader(None))
self.assertEquals(
'Tab',
manager.GetCppType(self.tabs.functions['get'].callback.params[0].type_))
@@ -123,14 +141,15 @@ class CppTypeGeneratorTest(unittest.TestCase):
m = model.Model()
m.AddNamespace(self.windows_json[0], 'path/to/windows.json')
m.AddNamespace(self.tabs_json[0], 'path/to/tabs.json')
- manager = CppTypeGenerator(m)
+ manager = CppTypeGenerator(m, _FakeSchemaLoader(m))
self.assertEquals(
'std::vector<linked_ptr<tabs::Tab> >',
manager.GetCppType(
self.windows.types['Window'].properties['tabs'].type_))
def testGetCppTypeWithPadForGeneric(self):
- manager = CppTypeGenerator(self.models.get('permissions'))
+ manager = CppTypeGenerator(self.models.get('permissions'),
+ _FakeSchemaLoader(None))
self.assertEquals('std::vector<std::string>',
manager.GetCppType(
self.permissions.types['Permissions'].properties['origins'].type_,
« no previous file with comments | « tools/json_schema_compiler/cpp_type_generator.py ('k') | tools/json_schema_compiler/preview.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698