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

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

Issue 10835012: Extension Docs Server: Include a list of samples used in the api reference page. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: . Created 8 years, 4 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 json
7 import os 7 import os
8 import unittest 8 import unittest
9 9
10 from file_system_cache import FileSystemCache 10 from file_system_cache import FileSystemCache
11 from local_file_system import LocalFileSystem 11 from local_file_system import LocalFileSystem
12 from template_data_source import TemplateDataSource 12 from template_data_source import TemplateDataSource
13 from third_party.handlebar import Handlebar 13 from third_party.handlebar import Handlebar
14 14
15 class _FakeRequest(object): 15 class _FakeRequest(object):
16 pass 16 pass
17 17
18 class _FakeApiDataSourceFactory(object):
19 def __init__(self, input_dict):
20 self._input_dict = input_dict
21
22 def Create(self, samples):
23 return self._input_dict
24
18 class _FakeSamplesDataSource(object): 25 class _FakeSamplesDataSource(object):
19 def Create(self, request): 26 def Create(self, request):
20 return {} 27 return {}
21 28
22 class TemplateDataSourceTest(unittest.TestCase): 29 class TemplateDataSourceTest(unittest.TestCase):
23 def setUp(self): 30 def setUp(self):
24 self._base_path = os.path.join('test_data', 'template_data_source') 31 self._base_path = os.path.join('test_data', 'template_data_source')
25 self._fake_api_data_source = {} 32 self._fake_api_data_source_factory = _FakeApiDataSourceFactory({})
26 self._fake_api_list_data_source = {} 33 self._fake_api_list_data_source = {}
27 self._fake_intro_data_source = {} 34 self._fake_intro_data_source = {}
28 self._fake_samples_data_source = _FakeSamplesDataSource() 35 self._fake_samples_data_source = _FakeSamplesDataSource()
29 36
30 def _ReadLocalFile(self, filename): 37 def _ReadLocalFile(self, filename):
31 with open(os.path.join(self._base_path, filename), 'r') as f: 38 with open(os.path.join(self._base_path, filename), 'r') as f:
32 return f.read() 39 return f.read()
33 40
34 def _RenderTest(self, name, data_source): 41 def _RenderTest(self, name, data_source):
35 template_name = name + '_tmpl.html' 42 template_name = name + '_tmpl.html'
36 template = Handlebar(self._ReadLocalFile(template_name)) 43 template = Handlebar(self._ReadLocalFile(template_name))
37 self.assertEquals( 44 self.assertEquals(
38 self._ReadLocalFile(name + '_expected.html'), 45 self._ReadLocalFile(name + '_expected.html'),
39 data_source.Render(template_name)) 46 data_source.Render(template_name))
40 47
41 def _CreateTemplateDataSource(self, input_dict, cache_builder): 48 def _CreateTemplateDataSource(self, input_dict, cache_builder):
42 return (TemplateDataSource.Factory('fake_branch', 49 return (TemplateDataSource.Factory('fake_branch',
43 input_dict, 50 _FakeApiDataSourceFactory(input_dict),
44 self._fake_api_list_data_source, 51 self._fake_api_list_data_source,
45 self._fake_intro_data_source, 52 self._fake_intro_data_source,
46 self._fake_samples_data_source, 53 self._fake_samples_data_source,
47 cache_builder, 54 cache_builder,
48 './', 55 './',
49 './') 56 './')
50 .Create(_FakeRequest())) 57 .Create(_FakeRequest()))
51 58
52 def testSimple(self): 59 def testSimple(self):
53 self._base_path = os.path.join(self._base_path, 'simple') 60 self._base_path = os.path.join(self._base_path, 'simple')
54 fetcher = LocalFileSystem(self._base_path) 61 fetcher = LocalFileSystem(self._base_path)
55 cache_builder = FileSystemCache.Builder(fetcher) 62 cache_builder = FileSystemCache.Builder(fetcher)
56 t_data_source = self._CreateTemplateDataSource(self._fake_api_data_source, 63 t_data_source = self._CreateTemplateDataSource(
57 cache_builder) 64 self._fake_api_data_source_factory, cache_builder)
58 template_a1 = Handlebar(self._ReadLocalFile('test1.html')) 65 template_a1 = Handlebar(self._ReadLocalFile('test1.html'))
59 self.assertEqual(template_a1.render({}, {'templates': {}}).text, 66 self.assertEqual(template_a1.render({}, {'templates': {}}).text,
60 t_data_source['test1'].render({}, {'templates': {}}).text) 67 t_data_source['test1'].render({}, {'templates': {}}).text)
61 68
62 template_a2 = Handlebar(self._ReadLocalFile('test2.html')) 69 template_a2 = Handlebar(self._ReadLocalFile('test2.html'))
63 self.assertEqual(template_a2.render({}, {'templates': {}}).text, 70 self.assertEqual(template_a2.render({}, {'templates': {}}).text,
64 t_data_source['test2'].render({}, {'templates': {}}).text) 71 t_data_source['test2'].render({}, {'templates': {}}).text)
65 72
66 self.assertEqual(None, t_data_source['junk.html']) 73 self.assertEqual(None, t_data_source['junk.html'])
67 74
68 def testPartials(self): 75 def testPartials(self):
69 self._base_path = os.path.join(self._base_path, 'partials') 76 self._base_path = os.path.join(self._base_path, 'partials')
70 fetcher = LocalFileSystem(self._base_path) 77 fetcher = LocalFileSystem(self._base_path)
71 cache_builder = FileSystemCache.Builder(fetcher) 78 cache_builder = FileSystemCache.Builder(fetcher)
72 t_data_source = self._CreateTemplateDataSource(self._fake_api_data_source, 79 t_data_source = self._CreateTemplateDataSource(
73 cache_builder) 80 self._fake_api_data_source_factory, cache_builder)
74 self.assertEqual( 81 self.assertEqual(
75 self._ReadLocalFile('test_expected.html'), 82 self._ReadLocalFile('test_expected.html'),
76 t_data_source['test_tmpl'].render( 83 t_data_source['test_tmpl'].render(
77 json.loads(self._ReadLocalFile('input.json')), t_data_source).text) 84 json.loads(self._ReadLocalFile('input.json')), t_data_source).text)
78 85
79 def testRender(self): 86 def testRender(self):
80 self._base_path = os.path.join(self._base_path, 'render') 87 self._base_path = os.path.join(self._base_path, 'render')
81 fetcher = LocalFileSystem(self._base_path) 88 fetcher = LocalFileSystem(self._base_path)
82 context = json.loads(self._ReadLocalFile('test1.json')) 89 context = json.loads(self._ReadLocalFile('test1.json'))
83 cache_builder = FileSystemCache.Builder(fetcher) 90 cache_builder = FileSystemCache.Builder(fetcher)
84 self._RenderTest( 91 self._RenderTest(
85 'test1', 92 'test1',
86 self._CreateTemplateDataSource( 93 self._CreateTemplateDataSource(
87 json.loads(self._ReadLocalFile('test1.json')), 94 json.loads(self._ReadLocalFile('test1.json')),
88 cache_builder)) 95 cache_builder))
89 self._RenderTest( 96 self._RenderTest(
90 'test2', 97 'test2',
91 self._CreateTemplateDataSource( 98 self._CreateTemplateDataSource(
92 json.loads(self._ReadLocalFile('test2.json')), 99 json.loads(self._ReadLocalFile('test2.json')),
93 cache_builder)) 100 cache_builder))
94 101
95 if __name__ == '__main__': 102 if __name__ == '__main__':
96 unittest.main() 103 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698