path_canonicalizer_test.py revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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 6from compiled_file_system import CompiledFileSystem 7from path_canonicalizer import PathCanonicalizer 8import svn_constants 9from object_store_creator import ObjectStoreCreator 10from test_file_system import TestFileSystem 11import unittest 12 13_TEST_DATA = TestFileSystem.MoveTo(svn_constants.PUBLIC_TEMPLATE_PATH, { 14 'extensions': { 15 'browserAction.html': 'yo', 16 'storage.html': 'dawg', 17 }, 18 'apps': { 19 'bluetooth': 'hey', 20 'storage.html': 'wassup', 21 } 22}) 23 24class PathCanonicalizerTest(unittest.TestCase): 25 def setUp(self): 26 test_fs = TestFileSystem(_TEST_DATA) 27 compiled_fs_factory = CompiledFileSystem.Factory( 28 test_fs, 29 ObjectStoreCreator.TestFactory()) 30 self._path_canonicalizer = PathCanonicalizer('stable', compiled_fs_factory) 31 32 def _assertIdentity(self, path): 33 self.assertEqual(path, self._path_canonicalizer.Canonicalize(path)) 34 35 def testExtensions(self): 36 self._assertIdentity('extensions/browserAction.html') 37 self._assertIdentity('extensions/storage.html') 38 self._assertIdentity('extensions/bluetooth.html') 39 self._assertIdentity('extensions/blah.html') 40 self._assertIdentity('stable/extensions/browserAction.html') 41 self._assertIdentity('stable/extensions/storage.html') 42 self._assertIdentity('stable/extensions/bluetooth.html') 43 self._assertIdentity('stable/extensions/blah.html') 44 45 def testApps(self): 46 self._assertIdentity('apps/browserAction.html') 47 self._assertIdentity('apps/storage.html') 48 self._assertIdentity('apps/bluetooth.html') 49 self._assertIdentity('apps/blah.html') 50 self._assertIdentity('stable/apps/browserAction.html') 51 self._assertIdentity('stable/apps/storage.html') 52 self._assertIdentity('stable/apps/bluetooth.html') 53 self._assertIdentity('stable/apps/blah.html') 54 55 def testStatic(self): 56 self._assertIdentity('static/browserAction.html') 57 self._assertIdentity('static/storage.html') 58 self._assertIdentity('static/bluetooth.html') 59 self._assertIdentity('static/blah.html') 60 self._assertIdentity('stable/static/browserAction.html') 61 self._assertIdentity('stable/static/storage.html') 62 self._assertIdentity('stable/static/bluetooth.html') 63 self._assertIdentity('stable/static/blah.html') 64 65 def testNeither(self): 66 self.assertEqual( 67 'extensions/browserAction.html', 68 self._path_canonicalizer.Canonicalize('browserAction.html')) 69 self.assertEqual( 70 'stable/extensions/browserAction.html', 71 self._path_canonicalizer.Canonicalize('stable/browserAction.html')) 72 self.assertEqual( 73 'extensions/storage.html', 74 self._path_canonicalizer.Canonicalize('storage.html')) 75 self.assertEqual( 76 'stable/extensions/storage.html', 77 self._path_canonicalizer.Canonicalize('stable/storage.html')) 78 self.assertEqual( 79 'apps/bluetooth.html', 80 self._path_canonicalizer.Canonicalize('bluetooth.html')) 81 self.assertEqual( 82 'stable/apps/bluetooth.html', 83 self._path_canonicalizer.Canonicalize('stable/bluetooth.html')) 84 # Assign non-existent paths to extensions because they came first, so such 85 # paths are more likely to be for extensions. 86 self.assertEqual( 87 'extensions/blah.html', 88 self._path_canonicalizer.Canonicalize('blah.html')) 89 self.assertEqual( 90 'stable/extensions/blah.html', 91 self._path_canonicalizer.Canonicalize('stable/blah.html')) 92 93if __name__ == '__main__': 94 unittest.main() 95