def test_generate_js_for_headless_import(self): html = """ <link rel="import" href="/base/math.html"> <script></script> <script src="/base/base/computer.js"></script> <link rel="import" href="/base/physics.html"> <script> var html_lines = [ '<script>', '< /script>', ]; </script> <script> var i = '<link rel="import" href="/base/math.html">' </script> """ parser = parse_html_deps.HTMLModuleParserResults(html) exepected_js = """loadHTML("base/math.html"); loadHTML("base/physics.html"); load("base/base/computer.js"); var html_lines = [ '<script>', '< /script>', ]; var i = '<link rel="import" href="/base/math.html">'""" generated_js = parser.GenerateJSForHeadlessImport() self.assertEquals(generated_js, exepected_js)
def testMissingDocType(self): parse_results = parse_html_deps.HTMLModuleParserResults("") file_contents = {} def DoIt(): html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", parse_results) self.assertRaises(Exception, DoIt)
def testStyleSheetImport(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <link rel="stylesheet" href="../foo.css"> """) file_contents = {} file_contents['/tmp/a/foo.css'] = """ """ metadata = html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", parse_results) self.assertEquals([], metadata.dependent_module_names) self.assertEquals(['a.foo'], metadata.style_sheet_names)
def testExternalScriptReferenceToFileThatDoesntExist(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <script src="/foo.js"> """) file_contents = {} def DoIt(): html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", parse_results) self.assertRaises(Exception, DoIt)
def testUsingAbsoluteHref(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <script src="/foo.js"> """) file_contents = {} file_contents['/src/foo.js'] = '' metadata = html_module.Parse( FakeLoader(["/tmp", "/src"], file_contents), "a.b.start", "/tmp/a/b/", parse_results) self.assertEquals(['foo.js'], metadata.dependent_raw_script_relative_paths)
def testMissingDocType(self): parse_results = parse_html_deps.HTMLModuleParserResults('') file_contents = {} def DoIt(): html_module.Parse(FakeLoader([os.path.normpath('/tmp')], file_contents), 'a.b.start', '/tmp/a/b/', is_component=False, parser_results=parse_results) self.assertRaises(Exception, DoIt)
def testValidImportOfModule(self): parse_results = parse_html_deps.HTMLModuleParserResults("""<!DOCTYPE html> <link rel="import" href="../foo.html"> """) file_contents = {} file_contents['/tmp/a/foo.html'] = """ """ metadata = html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", is_component=False, parser_results=parse_results) self.assertEquals(['a.foo'], metadata.dependent_module_names)
def testInlineScriptWithoutStrictNote(self): parse_results = parse_html_deps.HTMLModuleParserResults("""<!DOCTYPE html> <script> console.log('Logging without strict mode is no fun.'); </script> """) file_contents = {} def DoIt(): metadata = html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", is_component=False, parser_results=parse_results) self.assertRaises(Exception, DoIt)
def testExternalScriptReferenceToModuleOutsideScriptPath(self): parse_results = parse_html_deps.HTMLModuleParserResults("""<!DOCTYPE html> <script src="/foo.js"> """) file_contents = {} file_contents['/foo.js'] = '' def DoIt(): html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", is_component=False, parser_results=parse_results) self.assertRaises(Exception, DoIt)
def testValidExternalScriptReferenceToRawScript(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <script src="../foo.js"> """) file_contents = {} file_contents['/tmp/a/foo.js'] = """ 'i am just some raw script'; """ metadata = html_module.Parse(FakeLoader(["/tmp"], file_contents), "a.b.start", "/tmp/a/b/", parse_results) self.assertEquals([], metadata.dependent_module_names) self.assertEquals(['a/foo.js'], metadata.dependent_raw_script_relative_paths)
def testStyleSheetImport(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <link rel="stylesheet" href="../foo.css"> """) file_contents = {} file_contents[os.path.normpath('/tmp/a/foo.css')] = """ """ metadata = html_module.Parse(FakeLoader([os.path.normpath('/tmp')], file_contents), 'a.b.start', '/tmp/a/b/', is_component=False, parser_results=parse_results) self.assertEquals([], metadata.dependent_module_names) self.assertEquals(['a.foo'], metadata.style_sheet_names)
def testExternalScriptReferenceToFileThatDoesntExist(self): parse_results = parse_html_deps.HTMLModuleParserResults( """<!DOCTYPE html> <script src="/foo.js"> """) file_contents = {} def DoIt(): html_module.Parse(FakeLoader([os.path.normpath('/tmp')], file_contents), 'a.b.start', '/tmp/a/b/', is_component=False, parser_results=parse_results) self.assertRaises(Exception, DoIt)