| 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 import functools | 6 import functools |
| 7 import os | 7 import os |
| 8 | 8 |
| 9 from appengine_wrappers import GetAppVersion | 9 from appengine_wrappers import GetAppVersion |
| 10 from compiled_file_system import CompiledFileSystem | 10 from compiled_file_system import CompiledFileSystem |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 compiled_fs_creator(f, CompiledFileSystemTest, category='foo')) | 76 compiled_fs_creator(f, CompiledFileSystemTest, category='foo')) |
| 77 | 77 |
| 78 def testPopulateFromFile(self): | 78 def testPopulateFromFile(self): |
| 79 def Sleepy(key, val): | 79 def Sleepy(key, val): |
| 80 return '%s%s' % ('Z' * len(key), 'z' * len(val)) | 80 return '%s%s' % ('Z' * len(key), 'z' * len(val)) |
| 81 compiled_fs = _GetTestCompiledFsCreator()(Sleepy, CompiledFileSystemTest) | 81 compiled_fs = _GetTestCompiledFsCreator()(Sleepy, CompiledFileSystemTest) |
| 82 self.assertEqual('ZZZZZZZZzzzzzzzzzzzzzzzzz', | 82 self.assertEqual('ZZZZZZZZzzzzzzzzzzzzzzzzz', |
| 83 compiled_fs.GetFromFile('404.html').Get()) | 83 compiled_fs.GetFromFile('404.html').Get()) |
| 84 self.assertEqual('ZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzz', | 84 self.assertEqual('ZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzz', |
| 85 compiled_fs.GetFromFile('apps/a11y.html').Get()) | 85 compiled_fs.GetFromFile('apps/a11y.html').Get()) |
| 86 self.assertEqual('ZZZZZZZZZZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzz', | 86 self.assertEqual('ZZZZZZZZZZZZZZZZZZZZZZzzzzzzzzzzzzzzzzzz', |
| 87 compiled_fs.GetFromFile('/apps/fakedir/file.html').Get()) | 87 compiled_fs.GetFromFile('apps/fakedir/file.html').Get()) |
| 88 | 88 |
| 89 def testPopulateFromFileListing(self): | 89 def testPopulateFromFileListing(self): |
| 90 def strip_ext(path, files): | 90 def strip_ext(path, files): |
| 91 return [os.path.splitext(f)[0] for f in files] | 91 return [os.path.splitext(f)[0] for f in files] |
| 92 compiled_fs = _GetTestCompiledFsCreator()(strip_ext, CompiledFileSystemTest) | 92 compiled_fs = _GetTestCompiledFsCreator()(strip_ext, CompiledFileSystemTest) |
| 93 expected_top_listing = [ | 93 expected_top_listing = [ |
| 94 '404', | 94 '404', |
| 95 'apps/a11y', | 95 'apps/a11y', |
| 96 'apps/about_apps', | 96 'apps/about_apps', |
| 97 'apps/deepdir/deeper/deepest', | 97 'apps/deepdir/deeper/deepest', |
| 98 'apps/deepdir/deepfile', | 98 'apps/deepdir/deepfile', |
| 99 'apps/fakedir/file', | 99 'apps/fakedir/file', |
| 100 'extensions/activeTab', | 100 'extensions/activeTab', |
| 101 'extensions/alarms' | 101 'extensions/alarms' |
| 102 ] | 102 ] |
| 103 self.assertEqual(expected_top_listing, | 103 self.assertEqual(expected_top_listing, |
| 104 sorted(compiled_fs.GetFromFileListing('/').Get())) | |
| 105 self.assertEqual(expected_top_listing, | |
| 106 sorted(compiled_fs.GetFromFileListing('').Get())) | 104 sorted(compiled_fs.GetFromFileListing('').Get())) |
| 107 expected_apps_listing = [ | 105 expected_apps_listing = [ |
| 108 'a11y', | 106 'a11y', |
| 109 'about_apps', | 107 'about_apps', |
| 110 'deepdir/deeper/deepest', | 108 'deepdir/deeper/deepest', |
| 111 'deepdir/deepfile', | 109 'deepdir/deepfile', |
| 112 'fakedir/file', | 110 'fakedir/file', |
| 113 ] | 111 ] |
| 114 self.assertEqual(expected_apps_listing, | 112 self.assertEqual(expected_apps_listing, |
| 115 sorted(compiled_fs.GetFromFileListing('/apps/').Get())) | |
| 116 self.assertEqual(expected_apps_listing, | |
| 117 sorted(compiled_fs.GetFromFileListing('apps/').Get())) | 113 sorted(compiled_fs.GetFromFileListing('apps/').Get())) |
| 118 self.assertEqual(['file',], | 114 self.assertEqual(['file',], |
| 119 compiled_fs.GetFromFileListing('/apps/fakedir/').Get()) | |
| 120 self.assertEqual(['file',], | |
| 121 compiled_fs.GetFromFileListing('apps/fakedir/').Get()) | 115 compiled_fs.GetFromFileListing('apps/fakedir/').Get()) |
| 122 self.assertEqual(['deeper/deepest', 'deepfile'], | 116 self.assertEqual(['deeper/deepest', 'deepfile'], |
| 123 sorted(compiled_fs.GetFromFileListing( | 117 sorted(compiled_fs.GetFromFileListing( |
| 124 '/apps/deepdir/').Get())) | |
| 125 self.assertEqual(['deeper/deepest', 'deepfile'], | |
| 126 sorted(compiled_fs.GetFromFileListing( | |
| 127 'apps/deepdir/').Get())) | 118 'apps/deepdir/').Get())) |
| 128 self.assertEqual(['deepest'], | 119 self.assertEqual(['deepest'], |
| 129 compiled_fs.GetFromFileListing( | 120 compiled_fs.GetFromFileListing( |
| 130 '/apps/deepdir/deeper/').Get()) | |
| 131 self.assertEqual(['deepest'], | |
| 132 compiled_fs.GetFromFileListing( | |
| 133 'apps/deepdir/deeper/').Get()) | 121 'apps/deepdir/deeper/').Get()) |
| 134 | 122 |
| 135 def testCaching(self): | 123 def testCaching(self): |
| 136 compiled_fs = _GetTestCompiledFsCreator()(identity, CompiledFileSystemTest) | 124 compiled_fs = _GetTestCompiledFsCreator()(identity, CompiledFileSystemTest) |
| 137 self.assertEqual('404.html contents', | 125 self.assertEqual('404.html contents', |
| 138 compiled_fs.GetFromFile('404.html').Get()) | 126 compiled_fs.GetFromFile('404.html').Get()) |
| 139 self.assertEqual(set(('file.html',)), | 127 self.assertEqual(set(('file.html',)), |
| 140 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) | 128 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) |
| 141 | 129 |
| 142 compiled_fs._file_system._obj['404.html'] = 'boom' | 130 compiled_fs._file_system._path_values['404.html'] = 'boom' |
| 143 compiled_fs._file_system._obj['apps']['fakedir']['boom.html'] = 'blam' | 131 compiled_fs._file_system._path_values['apps/fakedir/'] = [ |
| 132 'file.html', 'boom.html'] |
| 144 self.assertEqual('404.html contents', | 133 self.assertEqual('404.html contents', |
| 145 compiled_fs.GetFromFile('404.html').Get()) | 134 compiled_fs.GetFromFile('404.html').Get()) |
| 146 self.assertEqual(set(('file.html',)), | 135 self.assertEqual(set(('file.html',)), |
| 147 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) | 136 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) |
| 148 | 137 |
| 149 compiled_fs._file_system.IncrementStat() | 138 compiled_fs._file_system.IncrementStat() |
| 150 self.assertEqual('boom', compiled_fs.GetFromFile('404.html').Get()) | 139 self.assertEqual('boom', compiled_fs.GetFromFile('404.html').Get()) |
| 151 self.assertEqual(set(('file.html', 'boom.html')), | 140 self.assertEqual(set(('file.html', 'boom.html')), |
| 152 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) | 141 set(compiled_fs.GetFromFileListing('apps/fakedir').Get())) |
| 153 | 142 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 # determining that ahead of time (though perhaps the API could give some | 186 # determining that ahead of time (though perhaps the API could give some |
| 198 # kind of clue, if we really cared). | 187 # kind of clue, if we really cared). |
| 199 future = compiled_fs.GetFromFileListing('extensions/') | 188 future = compiled_fs.GetFromFileListing('extensions/') |
| 200 self.assertTrue(*mock_fs.CheckAndReset(stat_count=1, | 189 self.assertTrue(*mock_fs.CheckAndReset(stat_count=1, |
| 201 read_count=1, | 190 read_count=1, |
| 202 read_resolve_count=1)) | 191 read_resolve_count=1)) |
| 203 future.Get() | 192 future.Get() |
| 204 self.assertTrue(*mock_fs.CheckAndReset()) | 193 self.assertTrue(*mock_fs.CheckAndReset()) |
| 205 | 194 |
| 206 # Similar configuration to the 'apps/' case but deeper. | 195 # Similar configuration to the 'apps/' case but deeper. |
| 207 future = compiled_fs.GetFromFileListing('/') | 196 future = compiled_fs.GetFromFileListing('') |
| 208 self.assertTrue(*mock_fs.CheckAndReset(stat_count=1, | 197 self.assertTrue(*mock_fs.CheckAndReset(stat_count=1, |
| 209 read_count=2, | 198 read_count=2, |
| 210 read_resolve_count=1)) | 199 read_resolve_count=1)) |
| 211 future.Get() | 200 future.Get() |
| 212 self.assertTrue(*mock_fs.CheckAndReset(read_count=2, read_resolve_count=3)) | 201 self.assertTrue(*mock_fs.CheckAndReset(read_count=2, read_resolve_count=3)) |
| 213 | 202 |
| 214 | 203 |
| 215 | 204 |
| 216 if __name__ == '__main__': | 205 if __name__ == '__main__': |
| 217 unittest.main() | 206 unittest.main() |
| OLD | NEW |