Index: chrome/common/extensions/docs/server2/content_providers_test.py |
diff --git a/chrome/common/extensions/docs/server2/content_providers_test.py b/chrome/common/extensions/docs/server2/content_providers_test.py |
index a35c348ab6995ef9dba303e389e1e4ad7b31e433..72322cdc6cb31edf1c2571af7e47e1bb4f013bd2 100755 |
--- a/chrome/common/extensions/docs/server2/content_providers_test.py |
+++ b/chrome/common/extensions/docs/server2/content_providers_test.py |
@@ -29,6 +29,21 @@ _CONTENT_PROVIDERS = { |
'dir': '' |
}, |
}, |
+ 'github-provider': { |
+ 'serveFrom': 'gh', |
+ 'github': { |
+ 'owner': 'GoogleChrome', |
+ 'repo': 'hello-world', |
+ }, |
+ }, |
+ 'github-provider-with-dir': { |
+ 'serveFrom': 'gh2', |
+ 'github': { |
+ 'dir': 'tomatoes/are/a', |
+ 'owner': 'SomeOwner', |
+ 'repo': 'some-repo', |
+ }, |
+ }, |
'tomatoes': { |
'serveFrom': 'tomatoes-dir/are/a', |
'chromium': { |
@@ -65,11 +80,33 @@ _FILE_SYSTEM_DATA = { |
} |
+class _MockGithubFileSystemProvider(object): |
+ '''A GithubFileSystemProvider imitation which records every call to Create |
+ and returns them from GetAndReset. |
+ ''' |
+ |
+ def __init__(self, file_system): |
+ self._file_system = file_system |
+ self._calls = [] |
+ |
+ def Create(self, owner, repo): |
+ self._calls.append((owner, repo)) |
+ return self._file_system |
+ |
+ def GetAndReset(self): |
+ calls = self._calls |
+ self._calls = [] |
+ return calls |
+ |
+ |
class ContentProvidersTest(unittest.TestCase): |
def setUp(self): |
+ test_file_system = TestFileSystem(_FILE_SYSTEM_DATA) |
+ self._github_fs_provider = _MockGithubFileSystemProvider(test_file_system) |
self._content_providers = ContentProviders( |
CompiledFileSystem.Factory(ObjectStoreCreator.ForTest()), |
- TestFileSystem(_FILE_SYSTEM_DATA)) |
+ test_file_system, |
+ self._github_fs_provider) |
def testSimpleRootPath(self): |
provider = self._content_providers.GetByName('apples') |
@@ -127,6 +164,27 @@ class ContentProvidersTest(unittest.TestCase): |
def testProviderNotFound(self): |
self.assertEqual(None, self._content_providers.GetByName('cabbages')) |
+ def testGithubContentProvider(self): |
+ provider, path = self._content_providers.GetByServeFrom( |
+ 'gh/apples/green/granny smith.txt') |
+ self.assertEqual('github-provider', provider.name) |
+ self.assertEqual('apples/green/granny smith.txt', path) |
+ self.assertEqual([('GoogleChrome', 'hello-world')], |
+ self._github_fs_provider.GetAndReset()) |
+ self.assertEqual( |
+ 'granny smith apples', |
+ provider.GetContentAndType(_HOST, path).Get().content) |
+ |
+ def testGithubContentProviderWithDir(self): |
+ provider, path = self._content_providers.GetByServeFrom( |
+ 'gh2/fruit/cherry.txt') |
+ self.assertEqual('github-provider-with-dir', provider.name) |
+ self.assertEqual('fruit/cherry.txt', path) |
+ self.assertEqual([('SomeOwner', 'some-repo')], |
+ self._github_fs_provider.GetAndReset()) |
+ self.assertEqual( |
+ 'cherry tomatoes', |
+ provider.GetContentAndType(_HOST, path).Get().content) |
if __name__ == '__main__': |
unittest.main() |