blob: 3a2b999b8fd4f7ef8e24b77100ba098b83878f68 [file] [log] [blame]
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +01001#!/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
6import unittest
7
8from empty_dir_file_system import EmptyDirFileSystem
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +01009from instance_servlet import InstanceServlet
10from servlet import Request
Ben Murdochbb1529c2013-08-08 10:24:53 +010011from fail_on_access_file_system import FailOnAccessFileSystem
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010012from test_branch_utility import TestBranchUtility
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010013from test_util import DisableLogging
14
Ben Murdochca12bfa2013-07-23 11:17:05 +010015# XXX(kalman): what is this test supposed to be?
16# Create a test host file system creator which failz?
17
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010018# NOTE(kalman): The ObjectStore created by the InstanceServlet is backed onto
19# our fake AppEngine memcache/datastore, so the tests aren't isolated.
20class _TestDelegate(InstanceServlet.Delegate):
21 def __init__(self, file_system_type):
22 self._file_system_type = file_system_type
23
24 def CreateBranchUtility(self, object_store_creator):
Ben Murdocheb525c52013-07-10 11:40:50 +010025 return TestBranchUtility.CreateWithCannedData()
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010026
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010027 def CreateAppSamplesFileSystem(self, object_store_creator):
28 return EmptyDirFileSystem()
29
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010030class InstanceServletTest(unittest.TestCase):
31 @DisableLogging('warning')
32 def testHostFileSystemNotAccessed(self):
Ben Murdochbb1529c2013-08-08 10:24:53 +010033 delegate = _TestDelegate(FailOnAccessFileSystem)
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010034 constructor = InstanceServlet.GetConstructor(delegate_for_test=delegate)
Ben Murdochca12bfa2013-07-23 11:17:05 +010035 def test_path(path, status=404):
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010036 response = constructor(Request.ForTest(path)).Get()
Ben Murdochca12bfa2013-07-23 11:17:05 +010037 self.assertEqual(status, response.status)
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010038 test_path('extensions/storage.html')
39 test_path('apps/storage.html')
40 test_path('extensions/examples/foo.zip')
41 test_path('extensions/examples/foo.html')
42 test_path('static/foo.css')
Ben Murdochca12bfa2013-07-23 11:17:05 +010043 test_path('beta/extensions/storage.html', status=301)
44 test_path('beta/apps/storage.html', status=301)
45 test_path('beta/extensions/examples/foo.zip', status=301)
46 test_path('beta/extensions/examples/foo.html', status=301)
47 test_path('beta/static/foo.css', status=301)
Torne (Richard Coles)b2df76e2013-05-13 16:52:09 +010048
49if __name__ == '__main__':
50 unittest.main()