Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(445)

Side by Side Diff: chrome/common/extensions/docs/server2/sidenav_data_source_test.py

Issue 12521030: Extension docs: Include sidenav in 404 pages (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 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 os 7 import os
7 import sys 8 import sys
8 import unittest 9 import unittest
9 10
10 from compiled_file_system import CompiledFileSystem 11 from compiled_file_system import CompiledFileSystem
11 from local_file_system import LocalFileSystem 12 from local_file_system import LocalFileSystem
12 from object_store_creator import ObjectStoreCreator 13 from object_store_creator import ObjectStoreCreator
13 from sidenav_data_source import SidenavDataSource 14 from sidenav_data_source import SidenavDataSource
14 15
15 class SamplesDataSourceTest(unittest.TestCase): 16 class SamplesDataSourceTest(unittest.TestCase):
16 def setUp(self): 17 def setUp(self):
17 self._json_path = 'docs/server2/test_data/sidenav_data_source' 18 self._json_path = 'docs/server2/test_data/sidenav_data_source'
18 self._compiled_fs_factory = CompiledFileSystem.Factory( 19 self._compiled_fs_factory = CompiledFileSystem.Factory(
19 LocalFileSystem.Create(), 20 LocalFileSystem.Create(),
20 ObjectStoreCreator.ForTest()) 21 ObjectStoreCreator.ForTest())
21 22
22 def _CheckLevels(self, items, level=2): 23 def _CheckLevels(self, items, level=2):
23 for item in items: 24 for item in items:
24 self.assertEqual(level, item['level']) 25 self.assertEqual(level, item['level'])
25 if 'items' in item: 26 if 'items' in item:
26 self._CheckLevels(item['items'], level=level + 1) 27 self._CheckLevels(item['items'], level=level + 1)
27 28
29 def _ReadLocalFile(self, filename):
30 with open(os.path.join(sys.path[0],
31 'test_data',
32 'sidenav_data_source',
33 filename), 'r') as f:
34 return f.read()
35
28 def testLevels(self): 36 def testLevels(self):
29 sidenav_data_source = SidenavDataSource.Factory(self._compiled_fs_factory, 37 sidenav_data_source = SidenavDataSource.Factory(self._compiled_fs_factory,
30 self._json_path).Create('') 38 self._json_path,
39 '').Create('')
31 sidenav_json = sidenav_data_source.get('test') 40 sidenav_json = sidenav_data_source.get('test')
32 self._CheckLevels(sidenav_json) 41 self._CheckLevels(sidenav_json)
33 42
34 def testSelected(self): 43 def testSelected(self):
35 sidenav_data_source = SidenavDataSource.Factory( 44 sidenav_data_source = SidenavDataSource.Factory(
36 self._compiled_fs_factory, 45 self._compiled_fs_factory,
37 self._json_path).Create('www.b.com') 46 self._json_path,
47 '').Create('www.b.com')
38 sidenav_json = sidenav_data_source.get('test') 48 sidenav_json = sidenav_data_source.get('test')
39 # This will be prettier once JSON is loaded with an OrderedDict. 49 # This will be prettier once JSON is loaded with an OrderedDict.
40 for item in sidenav_json: 50 for item in sidenav_json:
41 if item['title'] == 'Jim': 51 if item['title'] == 'Jim':
42 self.assertTrue(item.get('child_selected', False)) 52 self.assertTrue(item.get('child_selected', False))
43 for next_item in item['items']: 53 for next_item in item['items']:
44 if next_item['title'] == 'B': 54 if next_item['title'] == 'B':
45 self.assertTrue(next_item.get('selected', False)) 55 self.assertTrue(next_item.get('selected', False))
46 return 56 return
47 # If we didn't return already, we should fail. 57 # If we didn't return already, we should fail.
48 self.fail() 58 self.fail()
49 59
60 def testAbsolutePath(self):
61 sidenav_data_source = SidenavDataSource.Factory(
62 self._compiled_fs_factory,
63 self._json_path,
64 '/trunk').Create('absolute_path/test.html')
65 sidenav_json = sidenav_data_source.get('absolute_path')
66 self.assertEqual(
67 sidenav_json,
68 json.loads(self._ReadLocalFile('absolute_path_sidenav_expected.json')))
69
50 if __name__ == '__main__': 70 if __name__ == '__main__':
51 unittest.main() 71 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698