| OLD | NEW | 
| (Empty) |  | 
 |    1 #!/usr/bin/env python | 
 |    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 | 
 |    4 # found in the LICENSE file. | 
 |    5  | 
 |    6 import json | 
 |    7 import os | 
 |    8 import sys | 
 |    9 import unittest | 
 |   10  | 
 |   11 from reference_resolver import ReferenceResolver | 
 |   12 from file_system import FileNotFoundError | 
 |   13  | 
 |   14 class FakeAPIDataSource(object): | 
 |   15   def __init__(self, json_data): | 
 |   16     self._json = json_data | 
 |   17  | 
 |   18   def get(self, key): | 
 |   19     if key not in self._json: | 
 |   20       raise FileNotFoundError(key) | 
 |   21     return self._json[key] | 
 |   22  | 
 |   23   def GetAllNames(self): | 
 |   24     return self._json.keys() | 
 |   25  | 
 |   26 class APIDataSourceTest(unittest.TestCase): | 
 |   27   def setUp(self): | 
 |   28     self._base_path = os.path.join(sys.path[0], 'test_data', 'test_json') | 
 |   29  | 
 |   30   def _ReadLocalFile(self, filename): | 
 |   31     with open(os.path.join(self._base_path, filename), 'r') as f: | 
 |   32       return f.read() | 
 |   33  | 
 |   34   def testGetLink(self): | 
 |   35     data_source = FakeAPIDataSource( | 
 |   36         json.loads(self._ReadLocalFile('fake_data_source.json'))) | 
 |   37     resolver = ReferenceResolver(data_source, data_source) | 
 |   38     self.assertEqual({ | 
 |   39       'href': 'foo.html#type-foo_t1', | 
 |   40       'text': 'foo.foo_t1' | 
 |   41     }, resolver.GetLink('baz', 'foo.foo_t1')) | 
 |   42     self.assertEqual({ | 
 |   43       'href': 'baz.html#event-baz_e1', | 
 |   44       'text': 'baz_e1' | 
 |   45     }, resolver.GetLink('baz', 'baz.baz_e1')) | 
 |   46     self.assertEqual({ | 
 |   47       'href': '#event-baz_e1', | 
 |   48       'text': 'baz_e1' | 
 |   49     }, resolver.GetLink('baz', 'baz_e1')) | 
 |   50     self.assertEqual({ | 
 |   51       'href': 'foo.html#method-foo_f1', | 
 |   52       'text': 'foo.foo_f1' | 
 |   53     }, resolver.GetLink('baz', 'foo.foo_f1')) | 
 |   54     self.assertEqual({ | 
 |   55       'href': 'foo.html#property-foo_p3', | 
 |   56       'text': 'foo.foo_p3' | 
 |   57     }, resolver.GetLink('baz', 'foo.foo_p3')) | 
 |   58     self.assertEqual({ | 
 |   59       'href': 'bar.bon.html#type-bar_bon_t3', | 
 |   60       'text': 'bar.bon.bar_bon_t3' | 
 |   61     }, resolver.GetLink('baz', 'bar.bon.bar_bon_t3')) | 
 |   62     self.assertEqual({ | 
 |   63       'href': '#property-bar_bon_p3', | 
 |   64       'text': 'bar_bon_p3' | 
 |   65     }, resolver.GetLink('bar.bon', 'bar_bon_p3')) | 
 |   66     self.assertEqual({ | 
 |   67       'href': 'bar.bon.html#property-bar_bon_p3', | 
 |   68       'text': 'bar_bon_p3' | 
 |   69     }, resolver.GetLink('bar.bon', 'bar.bon.bar_bon_p3')) | 
 |   70     self.assertEqual({ | 
 |   71       'href': 'bar.html#event-bar_e2', | 
 |   72       'text': 'bar_e2' | 
 |   73     }, resolver.GetLink('bar', 'bar.bar_e2')) | 
 |   74     self.assertEqual({ | 
 |   75       'href': 'bar.html#type-bon', | 
 |   76       'text': 'bon' | 
 |   77     }, resolver.GetLink('bar', 'bar.bon')) | 
 |   78     self.assertEqual({ | 
 |   79       'href': '#event-foo_t3-foo_t3_e1', | 
 |   80       'text': 'foo_t3.foo_t3_e1' | 
 |   81     }, resolver.GetLink('foo', 'foo_t3.foo_t3_e1')) | 
 |   82     self.assertEqual({ | 
 |   83       'href': 'foo.html#event-foo_t3-foo_t3_e1', | 
 |   84       'text': 'foo_t3.foo_t3_e1' | 
 |   85     }, resolver.GetLink('foo', 'foo.foo_t3.foo_t3_e1')) | 
 |   86     self.assertEqual( | 
 |   87         None, | 
 |   88         resolver.GetLink('bar', 'bar.bon.bar_e3')) | 
 |   89     self.assertEqual( | 
 |   90         None, | 
 |   91         resolver.GetLink('baz.bon', 'bar_p3')) | 
 |   92     self.assertEqual( | 
 |   93         None, | 
 |   94         resolver.GetLink('a', 'falafel.faf')) | 
 |   95     self.assertEqual( | 
 |   96         None, | 
 |   97         resolver.GetLink('foo', 'bar_p3')) | 
 |   98  | 
 |   99 if __name__ == '__main__': | 
 |  100   unittest.main() | 
| OLD | NEW |