def testGenerateIncludesAndForwardDeclarationsDependencies(self): m = model.Model() # Insert 'font_settings' before 'browser_action' in order to test that # CppTypeGenerator sorts them properly. font_settings_namespace = m.AddNamespace(self.font_settings_json[0], 'path/to/font_settings.json') browser_action_namespace = m.AddNamespace(self.browser_action_json[0], 'path/to/browser_action.json') manager = CppTypeGenerator('', self.dependency_tester, self.dependency_tester.unix_name) manager.AddNamespace(font_settings_namespace, self.font_settings.unix_name) manager.AddNamespace(browser_action_namespace, self.browser_action.unix_name) self.assertEquals('#include "path/to/browser_action.h"\n' '#include "path/to/font_settings.h"\n' '#include "base/string_number_conversions.h"', manager.GenerateIncludes().Render()) self.assertEquals('namespace browserAction {\n' 'typedef std::vector<int> ColorArray;\n' '}\n' 'namespace fontSettings {\n' 'typedef std::string FakeStringType;\n' '}\n' 'namespace dependency_tester {\n' '} // dependency_tester', manager.GenerateForwardDeclarations().Render())
def testGenerateIncludesAndForwardDeclarationsDependencies(self): m = model.Model() browser_action_namespace = m.AddNamespace( self.browser_action_json[0], 'path/to/browserAction.json') font_settings_namespace = m.AddNamespace(self.font_settings_json[0], 'path/to/fontSettings.json') manager = CppTypeGenerator('', self.dependency_tester, self.dependency_tester.unix_name) manager.AddNamespace(browser_action_namespace, self.browser_action.unix_name) manager.AddNamespace(font_settings_namespace, self.font_settings.unix_name) self.assertEquals( '#include "path/to/browser_action.h"\n' '#include "path/to/font_settings.h"', manager.GenerateIncludes().Render()) self.assertEquals( 'namespace browserAction {\n' 'typedef std::vector<int> ColorArray;\n' '}\n' 'namespace fontSettings {\n' 'typedef std::string ScriptCode;\n' '}\n' 'namespace dependency_tester {\n' '} // dependency_tester', manager.GenerateForwardDeclarations().Render())
def testGenerateIncludesAndForwardDeclarationsMultipleTypes(self): m = model.Model() self.tabs_json[0]['types'].append(self.permissions_json[0]['types'][0]) self.windows_json[0]['functions'].append( self.permissions_json[0]['functions'][1]) # Insert 'windows' before 'tabs' in order to test that they are sorted # properly. windows = m.AddNamespace(self.windows_json[0], 'path/to/windows.json') tabs_namespace = m.AddNamespace(self.tabs_json[0], 'path/to/tabs.json') manager = CppTypeGenerator('', windows, self.windows.unix_name) manager.AddNamespace(tabs_namespace, self.tabs.unix_name) self.assertEquals('#include "path/to/tabs.h"\n' '#include "base/string_number_conversions.h"\n' '#include "base/json/json_writer.h"', manager.GenerateIncludes().Render()) self.assertEquals('namespace tabs {\n' 'struct Permissions;\n' 'struct Tab;\n' '}\n' 'namespace windows {\n' 'struct Window;\n' '} // windows', manager.GenerateForwardDeclarations().Render())
def testGenerateIncludesAndForwardDeclarations(self): manager = CppTypeGenerator('', self.windows, self.windows.unix_name) manager.AddNamespace(self.tabs, self.tabs.unix_name) self.assertEquals('#include "path/to/tabs.h"\n' '#include "base/string_number_conversions.h"\n' '#include "base/json/json_writer.h"', manager.GenerateIncludes().Render()) self.assertEquals('namespace tabs {\n' 'struct Tab;\n' '}\n' 'namespace windows {\n' 'struct Window;\n' '} // windows', manager.GenerateForwardDeclarations().Render()) manager = CppTypeGenerator('', self.permissions, self.permissions.unix_name) self.assertEquals('#include "base/string_number_conversions.h"\n' '#include "base/json/json_writer.h"', manager.GenerateIncludes().Render()) self.assertEquals('namespace permissions {\n' 'struct Permissions;\n' '} // permissions', manager.GenerateForwardDeclarations().Render()) manager = CppTypeGenerator('', self.content_settings, self.content_settings.unix_name) self.assertEquals('#include "base/string_number_conversions.h"', manager.GenerateIncludes().Render())
def testGetTypeIncludedRef(self): manager = CppTypeGenerator('', self.windows, self.windows.unix_name) manager.AddNamespace(self.tabs, self.tabs.unix_name) self.assertEquals( 'std::vector<linked_ptr<tabs::Tab> >', manager.GetType( self.windows.types['windows.Window'].properties['tabs']))
def testGenerateIncludesAndForwardDeclarations(self): manager = CppTypeGenerator('', self.windows, self.windows.unix_name) manager.AddNamespace(self.tabs, self.tabs.unix_name) self.assertEquals('#include "path/to/tabs.h"', manager.GenerateIncludes().Render()) self.assertEquals( 'namespace tabs {\n' 'struct Tab;\n' '}\n' 'namespace windows {\n' 'struct Window;\n' '} // windows', manager.GenerateForwardDeclarations().Render()) manager = CppTypeGenerator('', self.permissions, self.permissions.unix_name) self.assertEquals('', manager.GenerateIncludes().Render()) self.assertEquals('namespace permissions {\n' 'struct Permissions;\n' '} // permissions', manager.GenerateForwardDeclarations().Render())
def testGenerateIncludesAndForwardDeclarationsMultipleTypes(self): m = model.Model() self.tabs_json[0]['types'].append(self.permissions_json[0]['types'][0]) tabs_namespace = m.AddNamespace(self.tabs_json[0], 'path/to/tabs.json') self.windows_json[0]['functions'].append( self.permissions_json[0]['functions'][1]) windows = m.AddNamespace(self.windows_json[0], 'path/to/windows.json') manager = CppTypeGenerator('', windows, self.windows.unix_name) manager.AddNamespace(tabs_namespace, self.tabs.unix_name) self.assertEquals('#include "path/to/tabs.h"', manager.GenerateIncludes().Render()) self.assertEquals( 'namespace tabs {\n' 'struct Tab;\n' 'struct Permissions;\n' '}\n' 'namespace windows {\n' 'struct Window;\n' '} // windows', manager.GenerateForwardDeclarations().Render())