2 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
11 class ParseTests(unittest.TestCase):
12 def test_parse_empty(self):
13 parser = parse_html_deps.HTMLModuleParser()
14 module = parser.Parse("")
15 self.assertEquals([], module.scripts_external)
16 self.assertEquals([], module.scripts_inline)
17 self.assertEquals([], module.stylesheets)
18 self.assertEquals([], module.imports)
20 def test_parse_none(self):
21 parser = parse_html_deps.HTMLModuleParser()
22 module = parser.Parse(None)
23 self.assertEquals([], module.scripts_external)
24 self.assertEquals([], module.scripts_inline)
25 self.assertEquals([], module.stylesheets)
26 self.assertEquals([], module.imports)
28 def test_parse_script_src(self):
29 html = """<!DOCTYPE html>
32 <script src="polymer.min.js"></script>
33 <script src="foo.js"></script>
38 parser = parse_html_deps.HTMLModuleParser()
39 module = parser.Parse(html)
40 self.assertEquals(['polymer.min.js', 'foo.js'], module.scripts_external);
41 self.assertEquals([], module.scripts_inline)
42 self.assertEquals([], module.stylesheets)
43 self.assertEquals([], module.imports)
45 def test_parse_link_rel_import(self):
46 html = """<!DOCTYPE html>
49 <link rel="import" href="x-foo.html">
54 parser = parse_html_deps.HTMLModuleParser()
55 module = parser.Parse(html)
56 self.assertEquals([], module.scripts_external);
57 self.assertEquals([], module.scripts_inline)
58 self.assertEquals([], module.stylesheets)
59 self.assertEquals(['x-foo.html'], module.imports)
61 def test_parse_script_inline(self):
62 html = """<polymer-element name="tk-element-proto">
71 parser = parse_html_deps.HTMLModuleParser()
72 module = parser.Parse(html)
73 self.assertEquals([], module.scripts_external);
74 self.assertEquals(1, len(module.scripts_inline))
75 self.assertEquals([], module.stylesheets)
76 self.assertEquals([], module.imports)
78 val = module.scripts_inline[0]
79 val = re.sub(r"\s+", '', val)
80 inner_script = """tvcm.require("foo");tvcm.require('bar');"""
81 self.assertEquals(inner_script, val)
83 def test_parse_link_rel_stylesheet(self):
84 html = """<polymer-element name="hi">
86 <link rel="stylesheet" href="frameworkstyles.css">
89 parser = parse_html_deps.HTMLModuleParser()
90 module = parser.Parse(html)
91 self.assertEquals([], module.scripts_external);
92 self.assertEquals([], module.scripts_inline)
93 self.assertEquals(['frameworkstyles.css'], module.stylesheets)
94 self.assertEquals([], module.imports)
96 def test_parse_style_import(self):
97 html = """<polymer-element name="x-blink">
100 @import url(awesome.css);
103 </polymer-element>"""
104 parser = parse_html_deps.HTMLModuleParser()
105 module = parser.Parse(html)
106 self.assertEquals([], module.scripts_external);
107 self.assertEquals([], module.scripts_inline)
108 self.assertEquals(['awesome.css'], module.stylesheets)
109 self.assertEquals([], module.imports)
112 if __name__ == '__main__':