| 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 |