OLD | NEW |
(Empty) | |
| 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 |
| 6 import unittest |
| 7 |
| 8 from empty_dir_file_system import EmptyDirFileSystem |
| 9 from file_system import FileSystem |
| 10 from instance_servlet import InstanceServlet |
| 11 from servlet import Request |
| 12 from test_branch_utility import TestBranchUtility |
| 13 from test_file_system import TestFileSystem |
| 14 from test_util import DisableLogging |
| 15 |
| 16 # NOTE(kalman): The ObjectStore created by the InstanceServlet is backed onto |
| 17 # our fake AppEngine memcache/datastore, so the tests aren't isolated. |
| 18 class _TestDelegate(InstanceServlet.Delegate): |
| 19 def __init__(self, file_system_type): |
| 20 self._file_system_type = file_system_type |
| 21 |
| 22 def CreateBranchUtility(self, object_store_creator): |
| 23 return TestBranchUtility() |
| 24 |
| 25 def CreateHostFileSystemForBranch(self, branch): |
| 26 return self._file_system_type() |
| 27 |
| 28 def CreateAppSamplesFileSystem(self, object_store_creator): |
| 29 return EmptyDirFileSystem() |
| 30 |
| 31 class _FailOnAccessFileSystem(FileSystem): |
| 32 # All this needs to do is implement GetIdentity. All other methods will |
| 33 # automatically fail with NotImplementedErrors. |
| 34 def GetIdentity(self): |
| 35 return '42' |
| 36 |
| 37 class InstanceServletTest(unittest.TestCase): |
| 38 @DisableLogging('warning') |
| 39 def testHostFileSystemNotAccessed(self): |
| 40 delegate = _TestDelegate(_FailOnAccessFileSystem) |
| 41 constructor = InstanceServlet.GetConstructor(delegate_for_test=delegate) |
| 42 def test_path(path): |
| 43 response = constructor(Request.ForTest(path)).Get() |
| 44 self.assertEqual(404, response.status) |
| 45 test_path('extensions/storage.html') |
| 46 test_path('apps/storage.html') |
| 47 test_path('extensions/examples/foo.zip') |
| 48 test_path('extensions/examples/foo.html') |
| 49 test_path('static/foo.css') |
| 50 test_path('beta/extensions/storage.html') |
| 51 test_path('beta/apps/storage.html') |
| 52 test_path('beta/extensions/examples/foo.zip') |
| 53 test_path('beta/extensions/examples/foo.html') |
| 54 test_path('beta/static/foo.css') |
| 55 |
| 56 if __name__ == '__main__': |
| 57 unittest.main() |
OLD | NEW |