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() |