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

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: see last comment 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()
40 sidenav_data_source.SetPath('')
31 sidenav_json = sidenav_data_source.get('test') 41 sidenav_json = sidenav_data_source.get('test')
32 self._CheckLevels(sidenav_json) 42 self._CheckLevels(sidenav_json)
33 43
34 def testSelected(self): 44 def testSelected(self):
35 sidenav_data_source = SidenavDataSource.Factory( 45 sidenav_data_source = SidenavDataSource.Factory(
36 self._compiled_fs_factory, 46 self._compiled_fs_factory,
37 self._json_path).Create('www.b.com') 47 self._json_path,
48 '').Create()
49 sidenav_data_source.SetPath('www.b.com')
38 sidenav_json = sidenav_data_source.get('test') 50 sidenav_json = sidenav_data_source.get('test')
39 # This will be prettier once JSON is loaded with an OrderedDict. 51 # This will be prettier once JSON is loaded with an OrderedDict.
40 for item in sidenav_json: 52 for item in sidenav_json:
41 if item['title'] == 'Jim': 53 if item['title'] == 'Jim':
42 self.assertTrue(item.get('child_selected', False)) 54 self.assertTrue(item.get('child_selected', False))
43 for next_item in item['items']: 55 for next_item in item['items']:
44 if next_item['title'] == 'B': 56 if next_item['title'] == 'B':
45 self.assertTrue(next_item.get('selected', False)) 57 self.assertTrue(next_item.get('selected', False))
46 return 58 return
47 # If we didn't return already, we should fail. 59 # If we didn't return already, we should fail.
48 self.fail() 60 self.fail()
49 61
62 def testAbsolutePath(self):
63 sidenav_data_source = SidenavDataSource.Factory(
64 self._compiled_fs_factory,
65 self._json_path,
66 '/trunk').Create()
67 sidenav_data_source.SetPath('absolute_path/test.html')
68 sidenav_json = sidenav_data_source.get('absolute_path')
69 self.assertEqual(
70 sidenav_json,
71 json.loads(self._ReadLocalFile('absolute_path_sidenav_expected.json')))
72
50 if __name__ == '__main__': 73 if __name__ == '__main__':
51 unittest.main() 74 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698