OLD | NEW |
---|---|
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 sys | 8 import sys |
9 import unittest | 9 import unittest |
10 | 10 |
11 from file_system import FileNotFoundError | 11 from file_system import FileNotFoundError |
12 from reference_resolver import ReferenceResolver | 12 from reference_resolver import ReferenceResolver |
13 from test_object_store import TestObjectStore | 13 from test_object_store import TestObjectStore |
14 | 14 |
15 | |
16 class FakeAPIDataSource(object): | 15 class FakeAPIDataSource(object): |
17 def __init__(self, json_data): | 16 def __init__(self, json_data): |
18 self._json = json_data | 17 self._json = json_data |
19 | 18 |
20 def get(self, key, disable_refs=False): | 19 def get(self, key, disable_refs=False): |
21 assert disable_refs, 'ReferenceResolve should be disabling refs' | 20 assert disable_refs, 'ReferenceResolve should be disabling refs' |
22 if key not in self._json: | 21 if key not in self._json: |
23 raise FileNotFoundError(key) | 22 raise FileNotFoundError(key) |
24 return self._json[key] | 23 return self._json[key] |
25 | 24 |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
139 resolver.GetLink('falafel.faf', namespace='a')) | 138 resolver.GetLink('falafel.faf', namespace='a')) |
140 self.assertEqual( | 139 self.assertEqual( |
141 None, | 140 None, |
142 resolver.GetLink('bar_p3', namespace='foo')) | 141 resolver.GetLink('bar_p3', namespace='foo')) |
143 self.assertEqual( | 142 self.assertEqual( |
144 'Hello <a href="bar.bon.html#property-bar_bon_p3">bar_bon_p3</a>, ' | 143 'Hello <a href="bar.bon.html#property-bar_bon_p3">bar_bon_p3</a>, ' |
145 '<a href="bar.bon.html#property-bar_bon_p3">Bon Bon</a>, ' | 144 '<a href="bar.bon.html#property-bar_bon_p3">Bon Bon</a>, ' |
146 '<a href="bar.bon.html#property-bar_bon_p3">bar_bon_p3</a>', | 145 '<a href="bar.bon.html#property-bar_bon_p3">bar_bon_p3</a>', |
147 resolver.ResolveAllLinks( | 146 resolver.ResolveAllLinks( |
148 'Hello $ref:bar_bon_p3, $ref:[bar_bon_p3 Bon Bon], $ref:bar_bon_p3', | 147 'Hello $ref:bar_bon_p3, $ref:[bar_bon_p3 Bon Bon], $ref:bar_bon_p3', |
148 None, | |
149 namespace='bar.bon')) | 149 namespace='bar.bon')) |
150 self.assertEqual( | 150 self.assertEqual( |
151 'I like <a href="bar.html#property-bar_t1-bar_t1_p1">food</a>.', | 151 'I like <a href="bar.html#property-bar_t1-bar_t1_p1">food</a>.', |
152 resolver.ResolveAllLinks('I like $ref:[bar.bar_p3.bar_t1_p1 food].', | 152 resolver.ResolveAllLinks('I like $ref:[bar.bar_p3.bar_t1_p1 food].', |
153 None, | |
153 namespace='foo')) | 154 namespace='foo')) |
154 self.assertEqual( | 155 self.assertEqual( |
155 'Ref <a href="foo.html">It\'s foo!</a>', | 156 'Ref <a href="foo.html">It\'s foo!</a>', |
156 resolver.ResolveAllLinks('Ref $ref:[foo It\'s foo!]', namespace='bar')) | 157 resolver.ResolveAllLinks('Ref $ref:[foo It\'s foo!]', None, namespace='b ar')) |
157 self.assertEqual( | 158 self.assertEqual( |
158 'Ref <a href="bar.html#type-bon">Bon</a>', | 159 'Ref <a href="bar.html#type-bon">Bon</a>', |
159 resolver.ResolveAllLinks('Ref $ref:[bar.bon Bon]', namespace='bar')) | 160 resolver.ResolveAllLinks('Ref $ref:[bar.bon Bon]', None, namespace='bar' )) |
160 | 161 |
161 # Different kinds of whitespace can be significant inside <pre> tags. | 162 # Different kinds of whitespace can be significant inside <pre> tags. |
162 self.assertEqual( | 163 self.assertEqual( |
163 '<pre><a href="bar.html#type-bon">bar.bon</a>({\nkey: value})', | 164 '<pre><a href="bar.html#type-bon">bar.bon</a>({\nkey: value})', |
164 resolver.ResolveAllLinks('<pre>$ref:[bar.bon]({\nkey: value})', | 165 resolver.ResolveAllLinks('<pre>$ref:[bar.bon]({\nkey: value})', |
166 None, | |
165 namespace='baz')) | 167 namespace='baz')) |
166 | 168 |
167 # Allow bare "$ref:foo.bar." at the end of a string. | 169 # Allow bare "$ref:foo.bar." at the end of a string. |
168 self.assertEqual( | 170 self.assertEqual( |
169 '<a href="bar.html#type-bon">bar.bon</a>.', | 171 '<a href="bar.html#type-bon">bar.bon</a>.', |
170 resolver.ResolveAllLinks('$ref:bar.bon.', | 172 resolver.ResolveAllLinks('$ref:bar.bon.', |
173 None, | |
not at google - send to devlin
2013/11/21 05:26:50
if the request/path/prefix whatever is optional th
benwells
2013/11/22 05:44:01
Done.
| |
171 namespace='baz')) | 174 namespace='baz')) |
175 | |
176 # If a request is provided it should construct an approapriate relative link . | |
not at google - send to devlin
2013/11/21 05:26:50
appropriate
benwells
2013/11/22 05:44:01
Done.
| |
177 class FakeRequest(object): | |
178 pass | |
179 request = FakeRequest() | |
not at google - send to devlin
2013/11/21 05:26:50
use https://code.google.com/p/chromium/codesearch#
benwells
2013/11/22 05:44:01
Done.
| |
180 request.path = 'foo/big/long/path/bar.html' | |
181 self.assertEqual( | |
182 'Hello <a href="../../../bar.bon.html#property-bar_bon_p3">bar_bon_p3</a >, ' | |
183 '<a href="../../../bar.bon.html#property-bar_bon_p3">Bon Bon</a>, ' | |
184 '<a href="../../../bar.bon.html#property-bar_bon_p3">bar_bon_p3</a>' , | |
not at google - send to devlin
2013/11/21 05:26:50
keep < 80 chars
benwells
2013/11/22 05:44:01
Done.
| |
185 resolver.ResolveAllLinks( | |
186 'Hello $ref:bar_bon_p3, $ref:[bar_bon_p3 Bon Bon], $ref:bar_bon_p3', | |
187 request, | |
188 namespace='bar.bon')) | |
172 | 189 |
173 if __name__ == '__main__': | 190 if __name__ == '__main__': |
174 unittest.main() | 191 unittest.main() |
OLD | NEW |