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

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

Issue 54603010: Docserver: Implement the content providers infrastructure, where a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import json
7 import unittest
8
9 from compiled_file_system import CompiledFileSystem
10 from content_providers import ContentProviders
11 from object_store_creator import ObjectStoreCreator
12 from test_file_system import TestFileSystem
13 from test_util import DisableLogging
14
15
16 _HOST = 'https://developer.chrome.com'
17
18
19 _CONTENT_PROVIDERS = {
20 'apples': {
21 'chromium': {
22 'dir': 'apples'
23 },
24 'serveFrom': 'apples-dir',
25 },
26 'bananas': {
27 'serveFrom': '',
28 'chromium': {
29 'dir': ''
30 },
31 },
32 'tomatoes': {
33 'serveFrom': 'tomatoes-dir/are/a',
34 'chromium': {
35 'dir': 'tomatoes/are/a'
36 },
37 },
38 }
39
40
41 _FILE_SYSTEM_DATA = {
42 'docs': {
43 'templates': {
44 'json': {
45 'content_providers.json': json.dumps(_CONTENT_PROVIDERS),
46 },
47 },
48 },
49 'apples': {
50 'gala.txt': 'gala apples',
51 'green': {
52 'granny smith.txt': 'granny smith apples',
53 },
54 },
55 'tomatoes': {
56 'are': {
57 'a': {
58 'vegetable.txt': 'no they aren\'t',
59 'fruit': {
60 'cherry.txt': 'cherry tomatoes',
61 },
62 },
63 },
64 },
65 }
66
67
68 class ContentProvidersTest(unittest.TestCase):
69 def setUp(self):
70 self._content_providers = ContentProviders(
71 CompiledFileSystem.Factory(ObjectStoreCreator.ForTest()),
72 TestFileSystem(_FILE_SYSTEM_DATA))
73
74 def testSimpleRootPath(self):
75 provider = self._content_providers.GetByName('apples')
76 self.assertEqual(
77 'gala apples',
78 provider.GetContentAndType(_HOST, 'gala.txt').Get().content)
79 self.assertEqual(
80 'granny smith apples',
81 provider.GetContentAndType(_HOST, 'green/granny smith.txt').Get()
82 .content)
83
84 def testComplexRootPath(self):
85 provider = self._content_providers.GetByName('tomatoes')
86 self.assertEqual(
87 'no they aren\'t',
88 provider.GetContentAndType(_HOST, 'vegetable.txt').Get().content)
89 self.assertEqual(
90 'cherry tomatoes',
91 provider.GetContentAndType(_HOST, 'fruit/cherry.txt').Get().content)
92
93 def testEmptyRootPath(self):
94 provider = self._content_providers.GetByName('bananas')
95 self.assertEqual(
96 'gala apples',
97 provider.GetContentAndType(_HOST, 'apples/gala.txt').Get().content)
98
99 def testSimpleServlet(self):
100 provider, path = self._content_providers.GetByServeFrom('apples-dir')
101 self.assertEqual('apples', provider.name)
102 self.assertEqual('', path)
103 provider, path = self._content_providers.GetByServeFrom(
104 'apples-dir/are/forever')
105 self.assertEqual('apples', provider.name)
106 self.assertEqual('are/forever', path)
107
108 def testComplexServlet(self):
109 provider, path = self._content_providers.GetByServeFrom(
110 'tomatoes-dir/are/a')
111 self.assertEqual('tomatoes', provider.name)
112 self.assertEqual('', path)
113 provider, path = self._content_providers.GetByServeFrom(
114 'tomatoes-dir/are/a/fruit/they/are')
115 self.assertEqual('tomatoes', provider.name)
116 self.assertEqual('fruit/they/are', path)
117
118 def testEmptyStringServlet(self):
119 provider, path = self._content_providers.GetByServeFrom('tomatoes-dir/are')
120 self.assertEqual('bananas', provider.name)
121 self.assertEqual('tomatoes-dir/are', path)
122 provider, path = self._content_providers.GetByServeFrom('')
123 self.assertEqual('bananas', provider.name)
124 self.assertEqual('', path)
125
126 @DisableLogging('error')
127 def testProviderNotFound(self):
128 self.assertEqual(None, self._content_providers.GetByName('cabbages'))
129
130
131 if __name__ == '__main__':
132 unittest.main()
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/server2/content_providers.py ('k') | chrome/common/extensions/docs/server2/cron.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698