Index: chrome/common/extensions/docs/server2/path_canonicalizer_test.py |
diff --git a/chrome/common/extensions/docs/server2/path_canonicalizer_test.py b/chrome/common/extensions/docs/server2/path_canonicalizer_test.py |
index fbcfc8e4b1c5088e167f9782f7cc03c0fe81fe4c..6ad67bcea749d1463acfb7b77a988077c6df4019 100755 |
--- a/chrome/common/extensions/docs/server2/path_canonicalizer_test.py |
+++ b/chrome/common/extensions/docs/server2/path_canonicalizer_test.py |
@@ -5,7 +5,6 @@ |
import unittest |
-from compiled_file_system import CompiledFileSystem |
from extensions_paths import PUBLIC_TEMPLATES |
from local_file_system import LocalFileSystem |
from object_store_creator import ObjectStoreCreator |
@@ -15,49 +14,56 @@ from path_canonicalizer import PathCanonicalizer |
class PathCanonicalizerTest(unittest.TestCase): |
def setUp(self): |
self._path_canonicalizer = PathCanonicalizer( |
- CompiledFileSystem.Factory(ObjectStoreCreator.ForTest()), |
- LocalFileSystem.Create(PUBLIC_TEMPLATES)) |
+ LocalFileSystem.Create(PUBLIC_TEMPLATES), |
+ ObjectStoreCreator.ForTest(), |
+ ('.html', '.md')) |
def testSpecifyCorrectly(self): |
- self._AssertIdentity('extensions/browserAction.html') |
- self._AssertIdentity('extensions/storage.html') |
- self._AssertIdentity('extensions/blah.html') |
- self._AssertIdentity('extensions/index.html') |
- self._AssertIdentity('extensions/whats_new.html') |
- self._AssertIdentity('apps/storage.html') |
- self._AssertIdentity('apps/bluetooth.html') |
- self._AssertIdentity('apps/blah.html') |
- self._AssertIdentity('apps/tags/webview.html') |
+ self._AssertIdentity('extensions/browserAction') |
+ self._AssertIdentity('extensions/storage') |
+ self._AssertIdentity('extensions/blah') |
+ self._AssertIdentity('extensions/index') |
+ self._AssertIdentity('extensions/whats_new') |
+ self._AssertIdentity('apps/storage') |
+ self._AssertIdentity('apps/bluetooth') |
+ self._AssertIdentity('apps/blah') |
+ self._AssertIdentity('apps/tags/webview') |
def testSpecifyIncorrectly(self): |
- self._AssertRedirect('extensions/browserAction.html', |
- 'apps/browserAction.html') |
- self._AssertRedirect('extensions/browserAction.html', |
- 'apps/extensions/browserAction.html') |
- self._AssertRedirect('apps/bluetooth.html', 'extensions/bluetooth.html') |
- self._AssertRedirect('apps/bluetooth.html', |
- 'extensions/apps/bluetooth.html') |
- self._AssertRedirect('extensions/index.html', 'apps/index.html') |
- self._AssertRedirect('extensions/browserAction.html', |
- 'static/browserAction.html') |
- self._AssertRedirect('apps/tags/webview.html', |
- 'apps/webview.html') |
- self._AssertRedirect('apps/tags/webview.html', |
- 'extensions/webview.html') |
- self._AssertRedirect('apps/tags/webview.html', |
- 'extensions/tags/webview.html') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/browserAction', 'apps/browserAction') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/browserAction', 'apps/extensions/browserAction') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/bluetooth', 'extensions/bluetooth') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/bluetooth', 'extensions/apps/bluetooth') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/index', 'apps/index') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/browserAction', 'static/browserAction') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/tags/webview', 'apps/webview') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/tags/webview', 'extensions/webview') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/tags/webview', 'extensions/tags/webview') |
+ |
# These are a little trickier because storage.html is in both directories. |
# They must canonicalize to the closest match. |
- self._AssertRedirect('extensions/storage.html', |
- 'extensions/apps/storage.html') |
- self._AssertRedirect('apps/storage.html', |
- 'apps/extensions/storage.html') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/storage', 'extensions/apps/storage') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/storage', 'apps/extensions/storage') |
def testUnspecified(self): |
- self._AssertRedirect('extensions/browserAction.html', 'browserAction.html') |
- self._AssertRedirect('apps/bluetooth.html', 'bluetooth.html') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'extensions/browserAction', 'browserAction') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/bluetooth', 'bluetooth') |
# Default happens to be apps because it's first alphabetically. |
- self._AssertRedirect('apps/storage.html', 'storage.html') |
+ self._AssertRedirectWithDefaultExtensions( |
+ 'apps/storage', 'storage') |
# Nonexistent APIs should be left alone. |
self._AssertIdentity('blah.html') |
@@ -68,7 +74,7 @@ class PathCanonicalizerTest(unittest.TestCase): |
self._AssertIdentity('extensions/') |
# No trailing slash should be treated as files not directories, at least |
# at least according to PathCanonicalizer. |
- self._AssertRedirect('extensions/apps.html', 'apps') |
+ self._AssertRedirect('extensions/apps', 'apps') |
self._AssertRedirect('extensions', 'extensions') |
# Just as tolerant of spelling mistakes. |
self._AssertRedirect('apps/', 'Apps/') |
@@ -83,10 +89,19 @@ class PathCanonicalizerTest(unittest.TestCase): |
'BrowserAction.html', 'browseraction.html', 'Browseraction', |
'browser-action', 'Browser.action.html', 'browser_action', |
'browser-action.html', 'Browser_Action.html'): |
- self._AssertRedirect('extensions/browserAction.html', spelme) |
- self._AssertRedirect('extensions/browserAction.html', |
- 'extensions/%s' % spelme) |
- self._AssertRedirect('extensions/browserAction.html', 'apps/%s' % spelme) |
+ self._AssertRedirect('extensions/browserAction', spelme) |
+ self._AssertRedirect('extensions/browserAction', 'extensions/%s' % spelme) |
+ self._AssertRedirect('extensions/browserAction', 'apps/%s' % spelme) |
+ |
+ def testNonDefaultExtensions(self): |
+ # The only example currently of a file with a non-default extension is |
+ # the redirects.json file. That shouldn't have its extension stripped since |
+ # it's not in the default extensions. |
+ self._AssertIdentity('redirects.json') |
+ self._AssertRedirect('redirects.json', 'redirects') |
+ self._AssertRedirect('redirects.json', 'redirects.html') |
+ self._AssertRedirect('redirects.json', 'redirects.js') |
+ self._AssertRedirect('redirects.json', 'redirects.md') |
def _AssertIdentity(self, path): |
self._AssertRedirect(path, path) |
@@ -94,6 +109,11 @@ class PathCanonicalizerTest(unittest.TestCase): |
def _AssertRedirect(self, to, from_): |
self.assertEqual(to, self._path_canonicalizer.Canonicalize(from_)) |
+ def _AssertRedirectWithDefaultExtensions(self, to, from_): |
+ for ext in ('', '.html', '.md'): |
+ self._AssertRedirect( |
+ to, self._path_canonicalizer.Canonicalize(from_ + ext)) |
+ |
if __name__ == '__main__': |
unittest.main() |