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