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 |