def testHTMLGeneration(self): with self.fs: load_sequence = self.project.CalcLoadSequenceForModuleFilenames( ['foo/my_module.html']) res = generate.GenerateStandaloneHTMLAsString( load_sequence, 'Title') assert 'HelloWorld();' in res
def testHTMLGeneration(self): with self.fs: load_sequence = self.project.CalcLoadSequenceForModuleNames( [os.path.normpath('foo.my_module')]) res = generate.GenerateStandaloneHTMLAsString( load_sequence, 'Title') assert 'HelloWorld();' in res
def testExtraScriptWithWriteContentsFunc(self): with self.fs: load_sequence = self.project.CalcLoadSequenceForModuleFilenames( ['foo/my_module.html']) class ExtraScript(generate.ExtraScript): def WriteToFile(self, f): f.write('<script>ExtraScript!</script>') res = generate.GenerateStandaloneHTMLAsString( load_sequence, 'Title', extra_scripts=[ExtraScript()]) assert 'ExtraScript' in res
def testBasic(self): file_contents = {} file_contents['/tmp/a/b/start.html'] = """ <!DOCTYPE html> <link rel="import" href="/widget.html"> <link rel="stylesheet" href="../common.css"> <script src="/raw_script.js"></script> <polymer-element name="start"> <template> </template> <script> 'use strict'; console.log('inline script for start.html got written'); </script> </polymer-element> """ file_contents['/tvcm/tvcm.html'] = """<!DOCTYPE html> """ file_contents['/components/widget.html'] = """ <!DOCTYPE html> <link rel="import" href="/tvcm.html"> <widget name="widget.html"></widget> <script> 'use strict'; console.log('inline script for widget.html'); </script> """ file_contents['/tmp/a/common.css'] = """ /* /tmp/a/common.css was written */ """ file_contents['/raw/raw_script.js'] = """ console.log('/raw/raw_script.js was written'); """ file_contents['/raw/platform.min.js'] = """ """ file_contents['/raw/polymer.min.js'] = """ """ with fake_fs.FakeFS(file_contents): project = project_module.Project( ['/tvcm/', '/tmp/', '/components/', '/raw/'], include_tvcm_paths=False) loader = resource_loader.ResourceLoader(project) a_b_start_module = loader.LoadModule(module_name='a.b.start') load_sequence = project.CalcLoadSequenceForModules( [a_b_start_module]) # Check load sequence names. load_sequence_names = [x.name for x in load_sequence] self.assertEquals(['tvcm', 'widget', 'a.b.start'], load_sequence_names) # Check module_deps on a_b_start_module def HasDependentModule(module, name): return [x for x in module.dependent_modules if x.name == name] assert HasDependentModule(a_b_start_module, 'widget') # Check JS generation. js = generate.GenerateJS(load_sequence) assert 'inline script for start.html' in js assert 'inline script for widget.html' in js assert '/raw/raw_script.js' in js # Check HTML generation. html = generate.GenerateStandaloneHTMLAsString( load_sequence, title='', flattened_js_url="/blah.js") assert '<polymer-element name="start">' in html assert 'inline script for widget.html' not in html assert 'common.css' in html