Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2013 The Chromium Authors. All rights reserved. | 2 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 from cStringIO import StringIO | 6 from cStringIO import StringIO |
| 7 import json | 7 import json |
| 8 import unittest | 8 import unittest |
| 9 from zipfile import ZipFile | 9 from zipfile import ZipFile |
| 10 | 10 |
| 11 from compiled_file_system import CompiledFileSystem | 11 from compiled_file_system import CompiledFileSystem |
| 12 from content_provider import ContentProvider | 12 from content_provider import ContentProvider |
| 13 from file_system import FileNotFoundError | 13 from file_system import FileNotFoundError |
| 14 from object_store_creator import ObjectStoreCreator | 14 from object_store_creator import ObjectStoreCreator |
| 15 from test_file_system import TestFileSystem | 15 from test_file_system import TestFileSystem |
| 16 from third_party.handlebar import Handlebar | 16 from third_party.handlebar import Handlebar |
| 17 | 17 |
| 18 | |
| 19 _REDIRECTS_JSON = json.dumps({ | 18 _REDIRECTS_JSON = json.dumps({ |
| 20 'oldfile.html': 'storage.html', | 19 'oldfile.html': 'storage.html', |
| 21 'index.html': 'https://developers.google.com/chrome', | 20 'index.html': 'https://developers.google.com/chrome', |
| 22 }) | 21 }) |
| 23 | 22 |
| 23 def _ToMarkDownOriginalText(obj): | |
|
not at google - send to devlin
2014/01/03 03:18:01
let's decide whether it's mark_down/MarkDown or ma
hukun
2014/01/06 08:25:19
Done
| |
| 24 markdown_text = '' | |
| 25 for text, html in obj.iteritems(): | |
| 26 if markdown_text != '': | |
| 27 markdown_text += '\n' | |
| 28 markdown_text += text | |
| 29 return markdown_text | |
| 30 | |
| 31 def _ToCompiledMarkDownHTML(obj): | |
| 32 markdown_html = '' | |
| 33 for text, html in obj.iteritems(): | |
| 34 if markdown_html != '': | |
| 35 markdown_html += '\n' | |
| 36 markdown_html += html | |
| 37 return markdown_html | |
| 38 | |
| 39 | |
| 40 _MARK_DOWN_CONTENT = { | |
| 41 '# Header 1 #': u'<h1 id="header-1">Header 1</h1>', | |
|
not at google - send to devlin
2014/01/03 03:18:01
having this as a dict is a bit odd since it means
hukun
2014/01/06 08:25:19
Done
| |
| 42 '1. Foo\n': u'<ol>\n<li>Foo</li>\n</ol>', | |
| 43 '\n': | |
| 44 u'<p><img alt="alt text" src="/path/img.jpg" title="Title" /></p>', | |
| 45 '* Unordered item 1': '<ul>\n<li>Unordered item 1</li>\n</ul>', | |
| 46 } | |
| 24 | 47 |
| 25 # Test file system data which exercises many different mimetypes. | 48 # Test file system data which exercises many different mimetypes. |
| 26 _TEST_DATA = { | 49 _TEST_DATA = { |
| 27 'dir': { | 50 'dir': { |
| 28 'a.txt': 'a.txt content', | 51 'a.txt': 'a.txt content', |
| 29 'b.txt': 'b.txt content', | 52 'b.txt': 'b.txt content', |
| 30 'c': { | 53 'c': { |
| 31 'd.txt': 'd.txt content', | 54 'd.txt': 'd.txt content', |
| 32 }, | 55 }, |
| 33 }, | 56 }, |
| 34 'dir2': { | 57 'dir2': { |
| 35 'dir3': { | 58 'dir3': { |
| 36 'a.txt': 'a.txt content', | 59 'a.txt': 'a.txt content', |
| 37 'b.txt': 'b.txt content', | 60 'b.txt': 'b.txt content', |
| 38 'c': { | 61 'c': { |
| 39 'd.txt': 'd.txt content', | 62 'd.txt': 'd.txt content', |
| 40 }, | 63 }, |
| 41 }, | 64 }, |
| 42 }, | 65 }, |
| 43 'img.png': 'img.png content', | 66 'img.png': 'img.png content', |
| 44 'read.txt': 'read.txt content', | 67 'read.txt': 'read.txt content', |
| 45 'redirects.json': _REDIRECTS_JSON, | 68 'redirects.json': _REDIRECTS_JSON, |
| 46 'run.js': 'run.js content', | 69 'run.js': 'run.js content', |
| 47 'site.css': 'site.css content', | 70 'site.css': 'site.css content', |
| 48 'storage.html': 'storage.html content', | 71 'storage.html': 'storage.html content', |
| 72 'markdown.md': _ToMarkDownOriginalText(_MARK_DOWN_CONTENT) | |
|
not at google - send to devlin
2014/01/03 03:18:01
you could write this pretty simply as:
'markdown.
hukun
2014/01/06 08:25:19
Done
| |
| 49 } | 73 } |
| 50 | 74 |
| 51 | 75 |
| 52 class ContentProviderUnittest(unittest.TestCase): | 76 class ContentProviderUnittest(unittest.TestCase): |
| 53 def setUp(self): | 77 def setUp(self): |
| 54 self._content_provider = self._CreateContentProvider() | 78 self._content_provider = self._CreateContentProvider() |
| 55 | 79 |
| 56 def _CreateContentProvider(self, supports_zip=False): | 80 def _CreateContentProvider(self, supports_zip=False): |
| 57 test_file_system = TestFileSystem(_TEST_DATA) | 81 test_file_system = TestFileSystem(_TEST_DATA) |
| 58 return ContentProvider( | 82 return ContentProvider( |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 113 def testZip2ndLevel(self): | 137 def testZip2ndLevel(self): |
| 114 zip_content_provider = self._CreateContentProvider(supports_zip=True) | 138 zip_content_provider = self._CreateContentProvider(supports_zip=True) |
| 115 content_and_type = zip_content_provider.GetContentAndType( | 139 content_and_type = zip_content_provider.GetContentAndType( |
| 116 'dir2/dir3.zip').Get() | 140 'dir2/dir3.zip').Get() |
| 117 zipfile = ZipFile(StringIO(content_and_type.content)) | 141 zipfile = ZipFile(StringIO(content_and_type.content)) |
| 118 content_and_type.content = zipfile.namelist() | 142 content_and_type.content = zipfile.namelist() |
| 119 self._assertContent( | 143 self._assertContent( |
| 120 ['dir3/a.txt', 'dir3/b.txt', 'dir3/c/d.txt'], 'application/zip', | 144 ['dir3/a.txt', 'dir3/b.txt', 'dir3/c/d.txt'], 'application/zip', |
| 121 content_and_type) | 145 content_and_type) |
| 122 | 146 |
| 147 def testMarkdown(self): | |
| 148 content_and_type = self._content_provider.GetContentAndType( | |
| 149 'markdown.html').Get() | |
| 150 content_and_type.content = content_and_type.content.source | |
| 151 self._assertContent(_ToCompiledMarkDownHTML(_MARK_DOWN_CONTENT), | |
|
not at google - send to devlin
2014/01/03 03:18:01
_ToCompiledMarkDown on next line (like all of the
hukun
2014/01/06 08:25:19
Done
| |
| 152 'text/html', content_and_type) | |
| 153 | |
| 123 def testNotFound(self): | 154 def testNotFound(self): |
| 124 self.assertRaises( | 155 self.assertRaises( |
| 125 FileNotFoundError, | 156 FileNotFoundError, |
| 126 self._content_provider.GetContentAndType('oops').Get) | 157 self._content_provider.GetContentAndType('oops').Get) |
| 127 | 158 |
| 128 | 159 |
| 129 if __name__ == '__main__': | 160 if __name__ == '__main__': |
| 130 unittest.main() | 161 unittest.main() |
| OLD | NEW |