| 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 1857028f399f94eda200cf4856f1d52570092767..5ab95a9795aa64564ed1521251e6501365d3bd71 100755
|
| --- a/chrome/common/extensions/docs/server2/render_servlet_test.py
|
| +++ b/chrome/common/extensions/docs/server2/render_servlet_test.py
|
| @@ -19,8 +19,8 @@ class _RenderServletDelegate(RenderServlet.Delegate):
|
|
|
|
|
| class RenderServletTest(unittest.TestCase):
|
| - def _Render(self, path):
|
| - return RenderServlet(Request.ForTest(path),
|
| + def _Render(self, path, headers=None):
|
| + return RenderServlet(Request.ForTest(path, headers=headers),
|
| _RenderServletDelegate()).Get()
|
|
|
| def testExtensionAppRedirect(self):
|
| @@ -110,6 +110,35 @@ class RenderServletTest(unittest.TestCase):
|
| # whether or not that exists.
|
| self.assertEqual(('/dir', False), self._Render('dir/').GetRedirect())
|
|
|
| + def testEtags(self):
|
| + def test_path(path, content_type):
|
| + # Render without etag.
|
| + response = self._Render(path)
|
| + self.assertEqual(200, response.status)
|
| + etag = response.headers.get('ETag')
|
| + self.assertTrue(etag is not None)
|
| +
|
| + # Render with an If-None-Match which doesn't match.
|
| + response = self._Render(path, headers={
|
| + 'If-None-Match': '"fake etag"',
|
| + })
|
| + self.assertEqual(200, response.status)
|
| + self.assertEqual(content_type, response.headers.get('Content-Type'))
|
| + self.assertEqual(etag, response.headers.get('ETag'))
|
| +
|
| + # Render with the correct matching If-None-Match.
|
| + response = self._Render(path, headers={
|
| + 'If-None-Match': etag,
|
| + })
|
| + self.assertEqual(304, response.status)
|
| + self.assertEqual('Not Modified', response.content.ToString())
|
| + self.assertEqual(content_type, response.headers.get('Content-Type'))
|
| + self.assertEqual(etag, response.headers.get('ETag'))
|
| +
|
| + # Test with a static path and a dynamic path.
|
| + test_path('static/css/out/site.css', 'text/css; charset=utf-8')
|
| + test_path('extensions/storage', 'text/html; charset=utf-8')
|
| +
|
|
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|