Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / third_party / tvcm / tvcm / generate_unittest.py
1 # Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4 import unittest
5 import StringIO
6
7 from tvcm import generate
8 from tvcm import fake_fs
9 from tvcm import project as project_module
10 from tvcm import resource_loader
11
12 class GenerateTests(unittest.TestCase):
13   def setUp(self):
14     self.fs = fake_fs.FakeFS()
15     self.fs.AddFile('/x/foo/my_module.html', """
16 <!DOCTYPE html>
17 <link rel="import" href="/foo/other_module.html">
18 """)
19     self.fs.AddFile('/x/foo/other_module.html', """
20 <!DOCTYPE html>
21 <script src="/foo/raw/raw_script.js"></script>
22 <script>
23     'use strict';
24     HelloWorld();
25 </script>
26 """)
27     self.fs.AddFile('/x/foo/raw/raw_script.js', """
28 /* raw script */
29 """)
30     self.fs.AddFile('/x/platform.min.js', """
31 """)
32     self.fs.AddFile('/x/polymer.min.js', """
33 """)
34
35     self.project = project_module.Project(
36         ['/x'],
37         include_tvcm_paths=False)
38
39   def testJSGeneration(self):
40     with self.fs:
41       load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
42           ['foo/my_module.html'])
43       res = generate.GenerateJS(load_sequence)
44
45   def testHTMLGeneration(self):
46     with self.fs:
47       load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
48           ['foo/my_module.html'])
49       res = generate.GenerateStandaloneHTMLAsString(load_sequence, 'Title')
50       assert 'HelloWorld();' in res
51
52
53   def testExtraScriptWithWriteContentsFunc(self):
54     with self.fs:
55       load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
56           ['foo/my_module.html'])
57
58       class ExtraScript(generate.ExtraScript):
59         def WriteToFile(self, f):
60           f.write('<script>ExtraScript!</script>')
61
62       res = generate.GenerateStandaloneHTMLAsString(
63           load_sequence, 'Title', extra_scripts=[ExtraScript()])
64       assert 'ExtraScript' in res