Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / third_party / tvcm / tvcm / parse_html_deps_unittest.py
1 #!/usr/bin/env python
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.
5 import unittest
6
7 import parse_html_deps
8 import re
9
10
11 class ParseTests(unittest.TestCase):
12   def test_parse_empty(self):
13     module = parse_html_deps.Module()
14     module.parse("")
15     self.assertEquals([], module.scripts_external)
16     self.assertEquals([], module.scripts_inline)
17     self.assertEquals([], module.stylesheets)
18     self.assertEquals([], module.imports)
19
20   def test_parse_none(self):
21     module = parse_html_deps.Module()
22     module.parse(None)
23     self.assertEquals([], module.scripts_external)
24     self.assertEquals([], module.scripts_inline)
25     self.assertEquals([], module.stylesheets)
26     self.assertEquals([], module.imports)
27
28   def test_parse_script_src(self):
29     html = """<!DOCTYPE html>
30               <html>
31                 <head>
32                   <script src="polymer.min.js"></script>
33                   <script src="foo.js"></script>
34                 </head>
35                 <body>
36                 </body>
37               </html>"""
38     module = parse_html_deps.Module()
39     module.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)
44
45   def test_parse_link_rel_import(self):
46     html = """<!DOCTYPE html>
47               <html>
48                 <head>
49                   <link rel="import" href="x-foo.html">
50                 </head>
51                 <body>
52                 </body>
53               </html>"""
54     module = parse_html_deps.Module()
55     module.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)
60
61   def test_parse_script_inline(self):
62     html = """<polymer-element name="tk-element-proto">
63                 <template>
64                 </template>
65                 <script>
66                   base.require("foo");
67                   base.require('bar');
68                 </script>
69               </polymer-element>"""
70
71     module = parse_html_deps.Module()
72     module.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)
77
78     val = module.scripts_inline[0]
79     val = re.sub(r"\s+", '', val)
80     inner_script = """base.require("foo");base.require('bar');"""
81     self.assertEquals(inner_script, val)
82
83   def test_parse_link_rel_stylesheet(self):
84     html = """<polymer-element ...>
85                 <template>
86                   <link rel="stylesheet" href="frameworkstyles.css">
87                 </template>
88               </polymer-element>"""
89     module = parse_html_deps.Module()
90     module.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)
95
96   def test_parse_style_import(self):
97     html = """<polymer-element name="x-blink" ...>
98                 <template>
99                   <style>
100                     @import url(awesome.css);
101                   </style>
102                 </template>
103               </polymer-element>"""
104     module = parse_html_deps.Module()
105     module.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)
110
111
112 if __name__ == '__main__':
113   unittest.main()