Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Unified Diff: grit/format/html_inline_unittest.py

Issue 1442863002: Remove contents of grit's SVN repository. (Closed) Base URL: http://grit-i18n.googlecode.com/svn/trunk/
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « grit/format/html_inline.py ('k') | grit/format/js_map_format.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: grit/format/html_inline_unittest.py
===================================================================
--- grit/format/html_inline_unittest.py (revision 202)
+++ grit/format/html_inline_unittest.py (working copy)
@@ -1,352 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2012 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-'''Unit tests for grit.format.html_inline'''
-
-
-import os
-import re
-import sys
-if __name__ == '__main__':
- sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
-
-import unittest
-
-from grit import util
-from grit.format import html_inline
-
-
-class HtmlInlineUnittest(unittest.TestCase):
- '''Unit tests for HtmlInline.'''
-
- def testGetResourceFilenames(self):
- '''Tests that all included files are returned by GetResourceFilenames.'''
-
- files = {
- 'index.html': '''
- <!DOCTYPE HTML>
- <html>
- <head>
- <link rel="stylesheet" href="test.css">
- <link rel="stylesheet"
- href="really-long-long-long-long-long-test.css">
- </head>
- <body>
- <include src="test.html">
- <include
- src="really-long-long-long-long-long-test-file-omg-so-long.html">
- <iron-icon src="[[icon]]"></iron-icon><!-- Should be ignored. -->
- <iron-icon src="{{src}}"></iron-icon><!-- Also ignored. -->
- </body>
- </html>
- ''',
-
- 'test.html': '''
- <include src="test2.html">
- ''',
-
- 'really-long-long-long-long-long-test-file-omg-so-long.html': '''
- <!-- This really long named resource should be included. -->
- ''',
-
- 'test2.html': '''
- <!-- This second level resource should also be included. -->
- ''',
-
- 'test.css': '''
- .image {
- background: url('test.png');
- }
- ''',
-
- 'really-long-long-long-long-long-test.css': '''
- a:hover {
- font-weight: bold; /* Awesome effect is awesome! */
- }
- ''',
-
- 'test.png': 'PNG DATA',
- }
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(filename))
-
- resources = html_inline.GetResourceFilenames(tmp_dir.GetPath('index.html'))
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
- tmp_dir.CleanUp()
-
- def testUnmatchedEndIfBlock(self):
- '''Tests that an unmatched </if> raises an exception.'''
-
- files = {
- 'index.html': '''
- <!DOCTYPE HTML>
- <html>
- <if expr="lang == 'fr'">
- bonjour
- </if>
- </if>
- </html>
- ''',
- }
-
- tmp_dir = util.TempDir(files)
-
- with self.assertRaises(Exception) as cm:
- html_inline.GetResourceFilenames(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(cm.exception.message, 'Unmatched </if>')
- tmp_dir.CleanUp()
-
- def testCompressedJavaScript(self):
- '''Tests that ".src=" doesn't treat as a tag.'''
-
- files = {
- 'index.js': '''
- if(i<j)a.src="hoge.png";
- ''',
- }
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(filename))
-
- resources = html_inline.GetResourceFilenames(tmp_dir.GetPath('index.js'))
- resources.add(tmp_dir.GetPath('index.js'))
- self.failUnlessEqual(resources, source_resources)
- tmp_dir.CleanUp()
-
- def testInlineCSSImports(self):
- '''Tests that @import directives in inlined CSS files are inlined too.
- '''
-
- files = {
- 'index.html': '''
- <html>
- <head>
- <link rel="stylesheet" href="css/test.css">
- </head>
- </html>
- ''',
-
- 'css/test.css': '''
- @import url('test2.css');
- blink {
- display: none;
- }
- ''',
-
- 'css/test2.css': '''
- .image {
- background: url('../images/test.png');
- }
- '''.strip(),
-
- 'images/test.png': 'PNG DATA'
- }
-
- expected_inlined = '''
- <html>
- <head>
- <style>
- .image {
- background: url('data:image/png;base64,UE5HIERBVEE=');
- }
- blink {
- display: none;
- }
- </style>
- </head>
- </html>
- '''
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(util.normpath(filename)))
-
- result = html_inline.DoInline(tmp_dir.GetPath('index.html'), None)
- resources = result.inlined_files
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
- self.failUnlessEqual(expected_inlined,
- util.FixLineEnd(result.inlined_data, '\n'))
-
- tmp_dir.CleanUp()
-
- def testInlineCSSLinks(self):
- '''Tests that only CSS files referenced via relative URLs are inlined.'''
-
- files = {
- 'index.html': '''
- <html>
- <head>
- <link rel="stylesheet" href="foo.css">
- <link rel="stylesheet" href="chrome://resources/bar.css">
- </head>
- </html>
- ''',
-
- 'foo.css': '''
- @import url(chrome://resources/blurp.css);
- blink {
- display: none;
- }
- ''',
- }
-
- expected_inlined = '''
- <html>
- <head>
- <style>
- @import url(chrome://resources/blurp.css);
- blink {
- display: none;
- }
- </style>
- <link rel="stylesheet" href="chrome://resources/bar.css">
- </head>
- </html>
- '''
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(filename))
-
- result = html_inline.DoInline(tmp_dir.GetPath('index.html'), None)
- resources = result.inlined_files
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
- self.failUnlessEqual(expected_inlined,
- util.FixLineEnd(result.inlined_data, '\n'))
-
- def testFilenameVariableExpansion(self):
- '''Tests that variables are expanded in filenames before inlining.'''
-
- files = {
- 'index.html': '''
- <html>
- <head>
- <link rel="stylesheet" href="style[WHICH].css">
- <script src="script[WHICH].js"></script>
- </head>
- <include src="tmpl[WHICH].html">
- <img src="img[WHICH].png">
- </html>
- ''',
- 'style1.css': '''h1 {}''',
- 'tmpl1.html': '''<h1></h1>''',
- 'script1.js': '''console.log('hello');''',
- 'img1.png': '''abc''',
- }
-
- expected_inlined = '''
- <html>
- <head>
- <style>h1 {}</style>
- <script>console.log('hello');</script>
- </head>
- <h1></h1>
- <img src="data:image/png;base64,YWJj">
- </html>
- '''
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(filename))
-
- def replacer(var, repl):
- return lambda filename: filename.replace('[%s]' % var, repl)
-
- # Test normal inlining.
- result = html_inline.DoInline(
- tmp_dir.GetPath('index.html'),
- None,
- filename_expansion_function=replacer('WHICH', '1'))
- resources = result.inlined_files
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
- self.failUnlessEqual(expected_inlined,
- util.FixLineEnd(result.inlined_data, '\n'))
-
- # Test names-only inlining.
- result = html_inline.DoInline(
- tmp_dir.GetPath('index.html'),
- None,
- names_only=True,
- filename_expansion_function=replacer('WHICH', '1'))
- resources = result.inlined_files
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
-
- def testWithCloseTags(self):
- '''Tests that close tags are removed.'''
-
- files = {
- 'index.html': '''
- <html>
- <head>
- <link rel="stylesheet" href="style1.css"></link>
- <link rel="stylesheet" href="style2.css">
- </link>
- <link rel="stylesheet" href="style2.css"
- >
- </link>
- <script src="script1.js"></script>
- </head>
- <include src="tmpl1.html"></include>
- <include src="tmpl2.html">
- </include>
- <include src="tmpl2.html"
- >
- </include>
- <img src="img1.png">
- </html>
- ''',
- 'style1.css': '''h1 {}''',
- 'style2.css': '''h2 {}''',
- 'tmpl1.html': '''<h1></h1>''',
- 'tmpl2.html': '''<h2></h2>''',
- 'script1.js': '''console.log('hello');''',
- 'img1.png': '''abc''',
- }
-
- expected_inlined = '''
- <html>
- <head>
- <style>h1 {}</style>
- <style>h2 {}</style>
- <style>h2 {}</style>
- <script>console.log('hello');</script>
- </head>
- <h1></h1>
- <h2></h2>
- <h2></h2>
- <img src="data:image/png;base64,YWJj">
- </html>
- '''
-
- source_resources = set()
- tmp_dir = util.TempDir(files)
- for filename in files:
- source_resources.add(tmp_dir.GetPath(filename))
-
- # Test normal inlining.
- result = html_inline.DoInline(
- tmp_dir.GetPath('index.html'),
- None)
- resources = result.inlined_files
- resources.add(tmp_dir.GetPath('index.html'))
- self.failUnlessEqual(resources, source_resources)
- self.failUnlessEqual(expected_inlined,
- util.FixLineEnd(result.inlined_data, '\n'))
-
-if __name__ == '__main__':
- unittest.main()
« no previous file with comments | « grit/format/html_inline.py ('k') | grit/format/js_map_format.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698