| Index: chrome/common/extensions/docs/server2/sidenav_data_source_test.py
|
| diff --git a/chrome/common/extensions/docs/server2/sidenav_data_source_test.py b/chrome/common/extensions/docs/server2/sidenav_data_source_test.py
|
| index 414dd869b40b484a3de03dcc701de4795d2e1fd0..d47ffa2da3cdfe9e392fee9faec6734ea5004e0b 100755
|
| --- a/chrome/common/extensions/docs/server2/sidenav_data_source_test.py
|
| +++ b/chrome/common/extensions/docs/server2/sidenav_data_source_test.py
|
| @@ -5,12 +5,13 @@
|
|
|
| import json
|
| import unittest
|
| +import copy
|
|
|
| from extensions_paths import JSON_TEMPLATES
|
| from mock_file_system import MockFileSystem
|
| from server_instance import ServerInstance
|
| from servlet import Request
|
| -from sidenav_data_source import SidenavDataSource, _AddLevels, _AddSelected
|
| +from sidenav_data_source import SidenavDataSource, _AddLevels, _AddAnnotations
|
| from test_file_system import TestFileSystem
|
| from test_util import CaptureLogging
|
|
|
| @@ -38,35 +39,30 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| _AddLevels(sidenav_json, 1)
|
| self.assertEqual(expected, sidenav_json)
|
|
|
| - def testAddSelected(self):
|
| - sidenav_json = [
|
| - { 'href': '/AH2.html' },
|
| - {
|
| - 'href': '/H2.html',
|
| - 'items': [{
|
| - 'href': '/H3.html'
|
| - }]
|
| - }
|
| - ]
|
| -
|
| - expected = [
|
| - { 'href': '/AH2.html' },
|
| - {
|
| - 'child_selected': True,
|
| - 'href': '/H2.html',
|
| - 'items': [{
|
| - 'href': '/H3.html',
|
| - 'selected': True
|
| - }]
|
| - }
|
| - ]
|
| -
|
| - _AddSelected(sidenav_json, '/H3.html')
|
| + def testAddAnnotations(self):
|
| + item1 = { 'href': '/H1.html' }
|
| + item2_1 = { 'href': '/H2_1.html' }
|
| + item2_2 = { 'href': '/H2_2.html' }
|
| + item2 = { 'href': '/H2.html', 'items': [item2_1, item2_2] }
|
| +
|
| + expected = [ item1, item2 ]
|
| +
|
| + sidenav_json = copy.deepcopy(expected)
|
| +
|
| + item2['child_selected'] = True
|
| + item2_1['selected'] = True
|
| + item2_1['related'] = True
|
| + item2_1['parent'] = { 'title': item2.get('title', None),
|
| + 'href': item2.get('href', None) }
|
| +
|
| + item2_2['related'] = True
|
| +
|
| + self.assertTrue(_AddAnnotations(sidenav_json, item2_1['href']))
|
| self.assertEqual(expected, sidenav_json)
|
|
|
| def testWithDifferentBasePath(self):
|
| file_system = TestFileSystem({
|
| - 'apps_sidenav.json': json.dumps([
|
| + 'chrome_sidenav.json': json.dumps([
|
| { 'href': '/H1.html' },
|
| { 'href': '/H2.html' },
|
| { 'href': '/base/path/H2.html' },
|
| @@ -81,14 +77,14 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| }, relative_to=JSON_TEMPLATES)
|
|
|
| expected = [
|
| - {'href': '/base/path/H1.html', 'level': 2},
|
| - {'href': '/base/path/H2.html', 'level': 2, 'selected': True},
|
| - {'href': '/base/path/base/path/H2.html', 'level': 2},
|
| - {'href': 'https://qualified/X1.html', 'level': 2},
|
| + {'href': '/base/path/H1.html', 'level': 2, 'related': True},
|
| + {'href': '/base/path/H2.html', 'level': 2, 'selected': True, 'related': True},
|
| + {'href': '/base/path/base/path/H2.html', 'level': 2, 'related': True},
|
| + {'href': 'https://qualified/X1.html', 'level': 2, 'related': True},
|
| {'items': [
|
| {'href': '/base/path/H4.html', 'level': 3}
|
| ],
|
| - 'href': '/base/path/H3.html', 'level': 2}
|
| + 'href': '/base/path/H3.html', 'level': 2, 'related': True}
|
| ]
|
|
|
| server_instance = ServerInstance.ForTest(file_system,
|
| @@ -97,12 +93,12 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| Request.ForTest('/H2.html'))
|
|
|
| log_output = CaptureLogging(
|
| - lambda: self.assertEqual(expected, sidenav_data_source.get('apps')))
|
| + lambda: self.assertEqual(expected, sidenav_data_source.get('chrome')))
|
| self.assertEqual(2, len(log_output))
|
|
|
| def testSidenavDataSource(self):
|
| file_system = MockFileSystem(TestFileSystem({
|
| - 'apps_sidenav.json': json.dumps([{
|
| + 'chrome_sidenav.json': json.dumps([{
|
| 'title': 'H1',
|
| 'href': 'H1.html',
|
| 'items': [{
|
| @@ -120,8 +116,10 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| 'items': [{
|
| 'level': 3,
|
| 'selected': True,
|
| + 'related': True,
|
| 'title': 'H2',
|
| - 'href': '/H2.html'
|
| + 'href': '/H2.html',
|
| + 'parent': { 'href': '/H1.html', 'title': 'H1'}
|
| }]
|
| }]
|
|
|
| @@ -130,7 +128,7 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| self.assertTrue(*file_system.CheckAndReset())
|
|
|
| log_output = CaptureLogging(
|
| - lambda: self.assertEqual(expected, sidenav_data_source.get('apps')))
|
| + lambda: self.assertEqual(expected, sidenav_data_source.get('chrome')))
|
|
|
| self.assertEqual(1, len(log_output))
|
| self.assertTrue(
|
| @@ -143,8 +141,7 @@ class SamplesDataSourceTest(unittest.TestCase):
|
|
|
| def testCron(self):
|
| file_system = TestFileSystem({
|
| - 'apps_sidenav.json': '[{ "title": "H1" }]' ,
|
| - 'extensions_sidenav.json': '[{ "title": "H2" }]'
|
| + 'chrome_sidenav.json': '[{ "title": "H1" }]'
|
| }, relative_to=JSON_TEMPLATES)
|
|
|
| # Ensure Cron doesn't rely on request.
|
| @@ -152,11 +149,11 @@ class SamplesDataSourceTest(unittest.TestCase):
|
| ServerInstance.ForTest(file_system), request=None)
|
| sidenav_data_source.Cron().Get()
|
|
|
| - # If Cron fails, apps_sidenav.json will not be cached, and the _cache_data
|
| + # If Cron fails, chrome_sidenav.json will not be cached, and the _cache_data
|
| # access will fail.
|
| # TODO(jshumway): Make a non hack version of this check.
|
| sidenav_data_source._cache._file_object_store.Get(
|
| - '%s/apps_sidenav.json' % JSON_TEMPLATES).Get()._cache_data
|
| + '%s/chrome_sidenav.json' % JSON_TEMPLATES).Get()._cache_data
|
|
|
|
|
| if __name__ == '__main__':
|
|
|