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 json | 6 import json |
7 import unittest | 7 import unittest |
8 | 8 |
9 from compiled_file_system import CompiledFileSystem | 9 from compiled_file_system import CompiledFileSystem |
10 from content_providers import ContentProviders | 10 from content_providers import ContentProviders |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 return self._file_system | 93 return self._file_system |
94 | 94 |
95 def GetAndReset(self): | 95 def GetAndReset(self): |
96 calls = self._calls | 96 calls = self._calls |
97 self._calls = [] | 97 self._calls = [] |
98 return calls | 98 return calls |
99 | 99 |
100 | 100 |
101 class ContentProvidersTest(unittest.TestCase): | 101 class ContentProvidersTest(unittest.TestCase): |
102 def setUp(self): | 102 def setUp(self): |
| 103 object_store_creator = ObjectStoreCreator.ForTest() |
103 test_file_system = TestFileSystem(_FILE_SYSTEM_DATA, relative_to=EXTENSIONS) | 104 test_file_system = TestFileSystem(_FILE_SYSTEM_DATA, relative_to=EXTENSIONS) |
104 self._github_fs_provider = _MockGithubFileSystemProvider(test_file_system) | 105 self._github_fs_provider = _MockGithubFileSystemProvider(test_file_system) |
105 self._content_providers = ContentProviders( | 106 self._content_providers = ContentProviders( |
106 CompiledFileSystem.Factory(ObjectStoreCreator.ForTest()), | 107 object_store_creator, |
| 108 CompiledFileSystem.Factory(object_store_creator), |
107 test_file_system, | 109 test_file_system, |
108 self._github_fs_provider) | 110 self._github_fs_provider) |
109 | 111 |
110 def testSimpleRootPath(self): | 112 def testSimpleRootPath(self): |
111 provider = self._content_providers.GetByName('apples') | 113 provider = self._content_providers.GetByName('apples') |
112 self.assertEqual( | 114 self.assertEqual( |
113 'gala apples', | 115 'gala apples', |
114 provider.GetContentAndType('gala.txt').Get().content) | 116 provider.GetContentAndType('gala.txt').Get().content) |
115 self.assertEqual( | 117 self.assertEqual( |
116 'granny smith apples', | 118 'granny smith apples', |
117 provider.GetContentAndType('green/granny smith.txt').Get().content) | 119 provider.GetContentAndType('green/granny smith.txt').Get().content) |
118 | 120 |
119 def testComplexRootPath(self): | 121 def testComplexRootPath(self): |
120 provider = self._content_providers.GetByName('tomatoes') | 122 provider = self._content_providers.GetByName('tomatoes') |
121 self.assertEqual( | 123 self.assertEqual( |
122 'no they aren\'t', | 124 'no they aren\'t', |
123 provider.GetContentAndType('vegetable.txt').Get().content) | 125 provider.GetContentAndType('vegetable.txt').Get().content) |
124 self.assertEqual( | 126 self.assertEqual( |
125 'cherry tomatoes', | 127 'cherry tomatoes', |
126 provider.GetContentAndType('fruit/cherry.txt').Get().content) | 128 provider.GetContentAndType('fruit/cherry.txt').Get().content) |
127 | 129 |
128 def testParentRootPath(self): | 130 def testParentRootPath(self): |
129 provider = self._content_providers.GetByName('bananas') | 131 provider = self._content_providers.GetByName('bananas') |
130 self.assertEqual( | 132 self.assertEqual( |
131 'gala apples', | 133 'gala apples', |
132 provider.GetContentAndType('apples/gala.txt').Get().content) | 134 provider.GetContentAndType('apples/gala.txt').Get().content) |
133 | 135 |
134 def testSimpleServlet(self): | 136 def testSimpleServlet(self): |
135 provider, path = self._content_providers.GetByServeFrom('apples-dir') | 137 provider, serve_from, path = self._content_providers.GetByServeFrom( |
| 138 'apples-dir') |
136 self.assertEqual('apples', provider.name) | 139 self.assertEqual('apples', provider.name) |
| 140 self.assertEqual('apples-dir', serve_from) |
137 self.assertEqual('', path) | 141 self.assertEqual('', path) |
138 provider, path = self._content_providers.GetByServeFrom( | 142 provider, serve_from, path = self._content_providers.GetByServeFrom( |
139 'apples-dir/are/forever') | 143 'apples-dir/are/forever') |
140 self.assertEqual('apples', provider.name) | 144 self.assertEqual('apples', provider.name) |
| 145 self.assertEqual('apples-dir', serve_from) |
141 self.assertEqual('are/forever', path) | 146 self.assertEqual('are/forever', path) |
142 | 147 |
143 def testComplexServlet(self): | 148 def testComplexServlet(self): |
144 provider, path = self._content_providers.GetByServeFrom( | 149 provider, serve_from, path = self._content_providers.GetByServeFrom( |
145 'tomatoes-dir/are/a') | 150 'tomatoes-dir/are/a') |
146 self.assertEqual('tomatoes', provider.name) | 151 self.assertEqual('tomatoes', provider.name) |
| 152 self.assertEqual('tomatoes-dir/are/a', serve_from) |
147 self.assertEqual('', path) | 153 self.assertEqual('', path) |
148 provider, path = self._content_providers.GetByServeFrom( | 154 provider, serve_from, path = self._content_providers.GetByServeFrom( |
149 'tomatoes-dir/are/a/fruit/they/are') | 155 'tomatoes-dir/are/a/fruit/they/are') |
150 self.assertEqual('tomatoes', provider.name) | 156 self.assertEqual('tomatoes', provider.name) |
| 157 self.assertEqual('tomatoes-dir/are/a', serve_from) |
151 self.assertEqual('fruit/they/are', path) | 158 self.assertEqual('fruit/they/are', path) |
152 | 159 |
153 def testEmptyStringServlet(self): | 160 def testEmptyStringServlet(self): |
154 provider, path = self._content_providers.GetByServeFrom('tomatoes-dir/are') | 161 provider, serve_from, path = self._content_providers.GetByServeFrom( |
| 162 'tomatoes-dir/are') |
155 self.assertEqual('bananas', provider.name) | 163 self.assertEqual('bananas', provider.name) |
| 164 self.assertEqual('', serve_from) |
156 self.assertEqual('tomatoes-dir/are', path) | 165 self.assertEqual('tomatoes-dir/are', path) |
157 provider, path = self._content_providers.GetByServeFrom('') | 166 provider, serve_from, path = self._content_providers.GetByServeFrom('') |
158 self.assertEqual('bananas', provider.name) | 167 self.assertEqual('bananas', provider.name) |
| 168 self.assertEqual('', serve_from) |
159 self.assertEqual('', path) | 169 self.assertEqual('', path) |
160 | 170 |
161 @DisableLogging('error') | 171 @DisableLogging('error') |
162 def testProviderNotFound(self): | 172 def testProviderNotFound(self): |
163 self.assertEqual(None, self._content_providers.GetByName('cabbages')) | 173 self.assertEqual(None, self._content_providers.GetByName('cabbages')) |
164 | 174 |
165 def testGithubContentProvider(self): | 175 def testGithubContentProvider(self): |
166 provider, path = self._content_providers.GetByServeFrom( | 176 provider, serve_from, path = self._content_providers.GetByServeFrom( |
167 'gh/apples/green/granny smith.txt') | 177 'gh/apples/green/granny smith.txt') |
168 self.assertEqual('github-provider', provider.name) | 178 self.assertEqual('github-provider', provider.name) |
| 179 self.assertEqual('gh', serve_from) |
169 self.assertEqual('apples/green/granny smith.txt', path) | 180 self.assertEqual('apples/green/granny smith.txt', path) |
170 self.assertEqual([('GoogleChrome', 'hello-world')], | 181 self.assertEqual([('GoogleChrome', 'hello-world')], |
171 self._github_fs_provider.GetAndReset()) | 182 self._github_fs_provider.GetAndReset()) |
172 self.assertEqual( | 183 self.assertEqual( |
173 'granny smith apples', | 184 'granny smith apples', |
174 provider.GetContentAndType(path).Get().content) | 185 provider.GetContentAndType(path).Get().content) |
175 | 186 |
176 def testGithubContentProviderWithDir(self): | 187 def testGithubContentProviderWithDir(self): |
177 provider, path = self._content_providers.GetByServeFrom( | 188 provider, serve_from, path = self._content_providers.GetByServeFrom( |
178 'gh2/fruit/cherry.txt') | 189 'gh2/fruit/cherry.txt') |
179 self.assertEqual('github-provider-with-dir', provider.name) | 190 self.assertEqual('github-provider-with-dir', provider.name) |
| 191 self.assertEqual('gh2', serve_from) |
180 self.assertEqual('fruit/cherry.txt', path) | 192 self.assertEqual('fruit/cherry.txt', path) |
181 self.assertEqual([('SomeOwner', 'some-repo')], | 193 self.assertEqual([('SomeOwner', 'some-repo')], |
182 self._github_fs_provider.GetAndReset()) | 194 self._github_fs_provider.GetAndReset()) |
183 self.assertEqual( | 195 self.assertEqual( |
184 'cherry tomatoes', | 196 'cherry tomatoes', |
185 provider.GetContentAndType(path).Get().content) | 197 provider.GetContentAndType(path).Get().content) |
186 | 198 |
187 if __name__ == '__main__': | 199 if __name__ == '__main__': |
188 unittest.main() | 200 unittest.main() |
OLD | NEW |