コード例 #1
0
 def testHTMLGeneration(self):
     with self.fs:
         load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
             ['foo/my_module.html'])
         res = generate.GenerateStandaloneHTMLAsString(
             load_sequence, 'Title')
         assert 'HelloWorld();' in res
コード例 #2
0
 def testHTMLGeneration(self):
     with self.fs:
         load_sequence = self.project.CalcLoadSequenceForModuleNames(
             [os.path.normpath('foo.my_module')])
         res = generate.GenerateStandaloneHTMLAsString(
             load_sequence, 'Title')
         assert 'HelloWorld();' in res
コード例 #3
0
    def testExtraScriptWithWriteContentsFunc(self):
        with self.fs:
            load_sequence = self.project.CalcLoadSequenceForModuleFilenames(
                ['foo/my_module.html'])

            class ExtraScript(generate.ExtraScript):
                def WriteToFile(self, f):
                    f.write('<script>ExtraScript!</script>')

            res = generate.GenerateStandaloneHTMLAsString(
                load_sequence, 'Title', extra_scripts=[ExtraScript()])
            assert 'ExtraScript' in res
コード例 #4
0
    def testBasic(self):
        file_contents = {}
        file_contents['/tmp/a/b/start.html'] = """
<!DOCTYPE html>
<link rel="import" href="/widget.html">
<link rel="stylesheet" href="../common.css">
<script src="/raw_script.js"></script>
<polymer-element name="start">
  <template>
  </template>
  <script>
    'use strict';
    console.log('inline script for start.html got written');
  </script>
</polymer-element>
"""
        file_contents['/tvcm/tvcm.html'] = """<!DOCTYPE html>
"""
        file_contents['/components/widget.html'] = """
<!DOCTYPE html>
<link rel="import" href="/tvcm.html">
<widget name="widget.html"></widget>
<script>
'use strict';
console.log('inline script for widget.html');
</script>
"""
        file_contents['/tmp/a/common.css'] = """
/* /tmp/a/common.css was written */
"""
        file_contents['/raw/raw_script.js'] = """
console.log('/raw/raw_script.js was written');
"""
        file_contents['/raw/platform.min.js'] = """
"""
        file_contents['/raw/polymer.min.js'] = """
"""

        with fake_fs.FakeFS(file_contents):
            project = project_module.Project(
                ['/tvcm/', '/tmp/', '/components/', '/raw/'],
                include_tvcm_paths=False)
            loader = resource_loader.ResourceLoader(project)
            a_b_start_module = loader.LoadModule(module_name='a.b.start')
            load_sequence = project.CalcLoadSequenceForModules(
                [a_b_start_module])

            # Check load sequence names.
            load_sequence_names = [x.name for x in load_sequence]
            self.assertEquals(['tvcm', 'widget', 'a.b.start'],
                              load_sequence_names)

            # Check module_deps on a_b_start_module
            def HasDependentModule(module, name):
                return [x for x in module.dependent_modules if x.name == name]

            assert HasDependentModule(a_b_start_module, 'widget')

            # Check JS generation.
            js = generate.GenerateJS(load_sequence)
            assert 'inline script for start.html' in js
            assert 'inline script for widget.html' in js
            assert '/raw/raw_script.js' in js

            # Check HTML generation.
            html = generate.GenerateStandaloneHTMLAsString(
                load_sequence, title='', flattened_js_url="/blah.js")
            assert '<polymer-element name="start">' in html
            assert 'inline script for widget.html' not in html
            assert 'common.css' in html