Index: chrome/common/extensions/docs/server2/intro_data_source_test.py |
diff --git a/chrome/common/extensions/docs/server2/intro_data_source_test.py b/chrome/common/extensions/docs/server2/intro_data_source_test.py |
index 90f2c76de4c146147104d2176c17b6d2c475e42b..d222cdf4972f40a1339116df69b48ea3c31c1dc2 100755 |
--- a/chrome/common/extensions/docs/server2/intro_data_source_test.py |
+++ b/chrome/common/extensions/docs/server2/intro_data_source_test.py |
@@ -3,32 +3,60 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-from server_instance import ServerInstance |
-import svn_constants |
-from test_file_system import TestFileSystem |
import unittest |
-_TEST_DATA = TestFileSystem.MoveTo(svn_constants.INTRO_PATH, { |
- 'test.html': '<h1>hello</h1>world<h2>first</h2><h3>inner</h3><h2>second</h2>' |
-}) |
+from file_system import FileNotFoundError |
+from intro_data_source import _MakeIntroDict, IntroDataSource |
-class IntroDataSourceTest(unittest.TestCase): |
- def setUp(self): |
- self._server = ServerInstance.CreateForTest(TestFileSystem(_TEST_DATA)) |
+class MockRefResolver(object): |
+ class Factory(object): |
+ def Create(self): |
+ return False |
+ |
+ def ResolveAllLinks(self, text, namespace): |
+ return text |
+ |
+class MockCompiledFileSystem(object): |
+ """Mocks a Compiled File System. Demonstrates that IntroDataSource uses the |
+ same Compiled File System for all children. |
+ """ |
+ class Factory(object): |
+ def Create(self, _, __): |
+ return MockCompiledFileSystem() |
+ def CreateIdentity(self, _): |
+ return MockCompiledFileSystem() |
+ |
+ def GetFromFile(self, path): |
+ if path == 'top/topfile.html': |
+ return 'topfile' |
+ elif path == 'top/dir-one/file.html': |
+ return 'dir-one-file' |
+ |
+ raise FileNotFoundError("not important") |
+ def GetFromFileListing(self, path): |
+ if path == 'top/dir-one': |
+ return True |
+ |
+class IntroDataSourceTest(unittest.TestCase): |
def testIntro(self): |
- intro_data_source = self._server.intro_data_source_factory.Create() |
- data = intro_data_source.get('test') |
+ data = _MakeIntroDict(MockRefResolver(), 'path', |
+ '<h1>hello</h1>world<h2>first</h2><h3>inner</h3><h2>second</h2>') |
self.assertEqual('hello', data['title']) |
- # TODO(kalman): test links. |
expected_toc = [{'subheadings': [{'link': '', 'title': u'inner'}], |
- 'link': '', |
- 'title': u'first'}, |
+ 'link': '', 'title': u'first'}, |
{'subheadings': [], 'link': '', 'title': u'second'}] |
self.assertEqual(expected_toc, data['apps_toc']) |
self.assertEqual(expected_toc, data['extensions_toc']) |
- self.assertEqual('world<h2>first</h2><h3>inner</h3><h2>second</h2>', |
- data['intro'].render().text) |
+ |
+ def testLookup(self): |
+ ids = IntroDataSource.Factory( |
+ MockCompiledFileSystem.Factory(), MockRefResolver.Factory(), |
+ ['top']).Create() |
+ |
+ self.assertEqual('topfile', ids.get('topfile')) |
+ # Simulates how a template would access a subdirectory. |
+ self.assertEqual('dir-one-file', ids.get('dir-one').get('file')) |
if __name__ == '__main__': |
unittest.main() |