Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/reference_resolver_test.py | 
| diff --git a/chrome/common/extensions/docs/server2/reference_resolver_test.py b/chrome/common/extensions/docs/server2/reference_resolver_test.py | 
| new file mode 100755 | 
| index 0000000000000000000000000000000000000000..f0965d22fa0d068226eb6387fe1a5c96d9d1fc2c | 
| --- /dev/null | 
| +++ b/chrome/common/extensions/docs/server2/reference_resolver_test.py | 
| @@ -0,0 +1,84 @@ | 
| +#!/usr/bin/env python | 
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| +# Use of this source code is governed by a BSD-style license that can be | 
| +# found in the LICENSE file. | 
| + | 
| +import json | 
| +import os | 
| +import sys | 
| +import unittest | 
| + | 
| +from reference_resolver import ReferenceResolver | 
| +from file_system import FileNotFoundError | 
| + | 
| +class FakeAPIDataSource(object): | 
| + def __init__(self, json_data): | 
| + self._json = json_data | 
| + | 
| + def __getitem__(self, key): | 
| + if key not in self._json: | 
| + raise FileNotFoundError(key) | 
| + return self._json[key] | 
| + | 
| + def GetAllNames(self): | 
| + return self._json.keys() | 
| + | 
| +class APIDataSourceTest(unittest.TestCase): | 
| + def setUp(self): | 
| + self._base_path = os.path.join(sys.path[0], 'test_data', 'test_json') | 
| + | 
| + def _ReadLocalFile(self, filename): | 
| + with open(os.path.join(self._base_path, filename), 'r') as f: | 
| + return f.read() | 
| + | 
| + def testGetLinkToRefType(self): | 
| + data_source = FakeAPIDataSource( | 
| + json.loads(self._ReadLocalFile('fake_data_source.json'))) | 
| + resolver = ReferenceResolver(data_source, data_source) | 
| + self.assertEqual({ | 
| + 'href': 'foo.html#type-foo_t1', | 
| + 'text': 'foo.foo_t1' | 
| + }, resolver.GetLinkToRefType('baz', 'foo.foo_t1')) | 
| + self.assertEqual({ | 
| + 'href': '#event-baz_e1', | 
| + 'text': 'baz_e1' | 
| + }, resolver.GetLinkToRefType('baz', 'baz.baz_e1')) | 
| + self.assertEqual({ | 
| + 'href': '#event-baz_e1', | 
| + 'text': 'baz_e1' | 
| + }, resolver.GetLinkToRefType('baz', 'baz_e1')) | 
| + self.assertEqual({ | 
| + 'href': 'foo.html#method-foo_f1', | 
| + 'text': 'foo.foo_f1' | 
| + }, resolver.GetLinkToRefType('baz', 'foo.foo_f1')) | 
| + self.assertEqual({ | 
| + 'href': 'foo.html#property-foo_p3', | 
| + 'text': 'foo.foo_p3' | 
| + }, resolver.GetLinkToRefType('baz', 'foo.foo_p3')) | 
| + self.assertEqual({ | 
| + 'href': 'bar.bon.html#type-bar_t3', | 
| + 'text': 'bar.bon.bar_t3' | 
| + }, resolver.GetLinkToRefType('baz', 'bar.bon.bar_t3')) | 
| + self.assertEqual({ | 
| + 'href': '#property-bar_p3', | 
| + 'text': 'bar_p3' | 
| + }, resolver.GetLinkToRefType('bar.bon', 'bar_p3')) | 
| + self.assertEqual({ | 
| + 'href': '#property-bar_p3', | 
| + 'text': 'bar_p3' | 
| + }, resolver.GetLinkToRefType('bar.bon', 'bar.bon.bar_p3')) | 
| + self.assertEqual( | 
| + None, | 
| + resolver.GetLinkToRefType('bar', 'bar.bon.bar_e3')) | 
| + self.assertEqual( | 
| + None, | 
| + resolver.GetLinkToRefType('baz.bon', 'bar_p3')) | 
| + self.assertEqual( | 
| + None, | 
| + resolver.GetLinkToRefType('a', 'falafel.faf')) | 
| + self.assertEqual( | 
| + None, | 
| + resolver.GetLinkToRefType('foo', 'bar_p3')) | 
| 
 
not at google - send to devlin
2012/11/02 17:26:48
Yay unit tests. Nice.
Another test you should add
 
cduvall
2012/11/03 01:30:05
Done.
 
 | 
| + | 
| +if __name__ == '__main__': | 
| + unittest.main() |