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.
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
12 class GenerateTests(unittest.TestCase):
14 self.fs = fake_fs.FakeFS()
15 self.fs.AddFile('/x/foo/my_module.html', """
17 <link rel="import" href="/foo/other_module.html">
19 self.fs.AddFile('/x/foo/other_module.html', """
21 <script src="/foo/raw/raw_script.js"></script>
27 self.fs.AddFile('/x/foo/raw/raw_script.js', """
30 self.fs.AddFile('/x/platform.min.js', """
32 self.fs.AddFile('/x/polymer.min.js', """
35 self.project = project_module.Project(
37 include_tvcm_paths=False)
39 def testJSGeneration(self):
41 load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
42 ['foo/my_module.html'])
43 res = generate.GenerateJS(load_sequence)
45 def testHTMLGeneration(self):
47 load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
48 ['foo/my_module.html'])
49 res = generate.GenerateStandaloneHTMLAsString(load_sequence, 'Title')
50 assert 'HelloWorld();' in res
53 def testExtraScriptWithWriteContentsFunc(self):
55 load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
56 ['foo/my_module.html'])
58 class ExtraScript(generate.ExtraScript):
59 def WriteToFile(self, f):
60 f.write('<script>ExtraScript!</script>')
62 res = generate.GenerateStandaloneHTMLAsString(
63 load_sequence, 'Title', extra_scripts=[ExtraScript()])
64 assert 'ExtraScript' in res