Index: chrome/common/extensions/docs/server2/render_servlet_test.py |
diff --git a/chrome/common/extensions/docs/server2/render_servlet_test.py b/chrome/common/extensions/docs/server2/render_servlet_test.py |
index f1886716dcfc3f609816dc75706e807e2e72523a..aaae2e761b84717ac0452355e41d9a0fe209e1c4 100755 |
--- a/chrome/common/extensions/docs/server2/render_servlet_test.py |
+++ b/chrome/common/extensions/docs/server2/render_servlet_test.py |
@@ -11,33 +11,59 @@ from server_instance import ServerInstance |
from servlet import Request, Response |
from test_util import DisableLogging, ReadFile |
+ |
class _RenderServletDelegate(RenderServlet.Delegate): |
def CreateServerInstance(self): |
return ServerInstance.ForTest(LocalFileSystem.Create()) |
+ |
class RenderServletTest(unittest.TestCase): |
+ def _Render(self, path): |
+ return RenderServlet(Request.ForTest(path), |
+ _RenderServletDelegate()).Get() |
+ |
def testExtensionAppRedirect(self): |
- request = Request.ForTest('storage.html') |
self.assertEqual( |
Response.Redirect('/extensions/storage.html', permanent=False), |
- RenderServlet(request, _RenderServletDelegate()).Get()) |
+ self._Render('storage.html')) |
def testChannelRedirect(self): |
- request = Request.ForTest('stable/extensions/storage.html') |
self.assertEqual( |
Response.Redirect('/extensions/storage.html', permanent=True), |
- RenderServlet(request, _RenderServletDelegate()).Get()) |
+ self._Render('stable/extensions/storage.html')) |
- @DisableLogging('warning') |
def testNotFound(self): |
- request = Request.ForTest('extensions/not_found.html') |
- response = RenderServlet(request, _RenderServletDelegate()).Get() |
- self.assertEqual(404, response.status) |
+ def create_404_response(real_path): |
+ real_404 = self._Render(real_path) |
+ self.assertEqual(200, real_404.status) |
+ real_404.status = 404 |
+ return real_404 |
+ |
+ root_404 = create_404_response('404.html') |
+ extensions_404 = create_404_response('extensions/404.html') |
+ apps_404 = create_404_response('apps/404.html') |
+ # Note: would test that root_404 != extensions and apps but it's not |
+ # necessarily true. |
+ self.assertNotEqual(extensions_404, apps_404) |
+ |
+ self.assertEqual(root_404, self._Render('not_found.html')) |
+ self.assertEqual(root_404, self._Render('not_found/not_found.html')) |
+ |
+ self.assertEqual(extensions_404, self._Render('extensions/not_found.html')) |
+ self.assertEqual( |
+ extensions_404, self._Render('extensions/manifest/not_found.html')) |
+ self.assertEqual( |
+ extensions_404, |
+ self._Render('extensions/manifest/not_found/not_found.html')) |
+ |
+ self.assertEqual(apps_404, self._Render('apps/not_found.html')) |
+ self.assertEqual(apps_404, self._Render('apps/manifest/not_found.html')) |
+ self.assertEqual( |
+ apps_404, self._Render('apps/manifest/not_found/not_found.html')) |
def testSampleFile(self): |
sample_file = 'extensions/talking_alarm_clock/background.js' |
- request = Request.ForTest('extensions/examples/%s' % sample_file) |
- response = RenderServlet(request, _RenderServletDelegate()).Get() |
+ response = self._Render('extensions/examples/%s' % sample_file) |
self.assertEqual(200, response.status) |
content_type = response.headers.get('content-type') |
self.assertTrue(content_type == 'application/javascript' or |
@@ -47,15 +73,13 @@ class RenderServletTest(unittest.TestCase): |
def testSampleZip(self): |
sample_dir = 'extensions/talking_alarm_clock' |
- request = Request.ForTest('extensions/examples/%s.zip' % sample_dir) |
- response = RenderServlet(request, _RenderServletDelegate()).Get() |
+ response = self._Render('extensions/examples/%s.zip' % sample_dir) |
self.assertEqual(200, response.status) |
self.assertEqual('application/zip', response.headers.get('content-type')) |
def testStaticFile(self): |
static_file = 'css/site.css' |
- request = Request.ForTest('static/%s' % static_file) |
- response = RenderServlet(request, _RenderServletDelegate()).Get() |
+ response = self._Render('static/%s' % static_file) |
self.assertEqual(200, response.status) |
self.assertEqual('text/css', response.headers.get('content-type')) |
self.assertEqual(ReadFile('docs/static/%s' % static_file), |
@@ -63,13 +87,31 @@ class RenderServletTest(unittest.TestCase): |
def testHtmlTemplate(self): |
html_file = 'extensions/storage.html' |
- request = Request.ForTest(html_file) |
- response = RenderServlet(request, _RenderServletDelegate()).Get() |
+ response = self._Render(html_file) |
self.assertEqual(200, response.status) |
self.assertEqual('text/html', response.headers.get('content-type')) |
# Can't really test rendering all that well. |
self.assertTrue(len(response.content) > |
len(ReadFile('docs/templates/public/%s' % html_file))) |
+ def testDevelopersGoogleComRedirect(self): |
+ def assert_redirect(request_path): |
+ response = self._Render(request_path) |
+ self.assertEqual(('//developers.google.com/chrome', False), |
+ response.GetRedirect()) |
+ assert_redirect('') |
+ assert_redirect('index.html') |
+ |
+ def testIndexRedirect(self): |
+ response = self._Render('extensions') |
+ self.assertEqual(('/extensions/index.html', False), |
+ response.GetRedirect()) |
+ |
+ def testOtherRedirectsJsonRedirect(self): |
+ response = self._Render('apps/webview_tag.html') |
+ self.assertEqual(('/apps/tags/webview.html', False), |
+ response.GetRedirect()) |
+ |
+ |
if __name__ == '__main__': |
unittest.main() |