| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/message_loop.h" | 5 #include "base/message_loop.h" |
| 6 #include "chrome/browser/chromeos/extensions/file_browser_handler.h" | 6 #include "chrome/browser/extensions/api/streams_private/streams_resource_throttl
e.h" |
| 7 #include "chrome/browser/chromeos/extensions/file_browser_resource_throttle.h" | |
| 8 #include "chrome/browser/extensions/extension_info_map.h" | 7 #include "chrome/browser/extensions/extension_info_map.h" |
| 9 #include "chrome/common/extensions/extension.h" | 8 #include "chrome/common/extensions/extension.h" |
| 10 #include "chrome/common/extensions/extension_builder.h" | 9 #include "chrome/common/extensions/extension_builder.h" |
| 11 #include "chrome/common/extensions/extension_constants.h" | 10 #include "chrome/common/extensions/extension_constants.h" |
| 12 #include "chrome/common/extensions/manifest_handler.h" | 11 #include "chrome/common/extensions/manifest_handler.h" |
| 12 #include "chrome/common/extensions/mime_types_handler.h" |
| 13 #include "chrome/common/extensions/value_builder.h" | 13 #include "chrome/common/extensions/value_builder.h" |
| 14 #include "content/public/browser/resource_controller.h" | 14 #include "content/public/browser/resource_controller.h" |
| 15 #include "content/public/test/test_browser_thread.h" | 15 #include "content/public/test/test_browser_thread.h" |
| 16 #include "testing/gmock/include/gmock/gmock.h" | 16 #include "testing/gmock/include/gmock/gmock.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 18 | 18 |
| 19 using content::BrowserThread; | 19 using content::BrowserThread; |
| 20 using extensions::DictionaryBuilder; | 20 using extensions::DictionaryBuilder; |
| 21 using extensions::Extension; | 21 using extensions::Extension; |
| 22 using extensions::ExtensionBuilder; | 22 using extensions::ExtensionBuilder; |
| 23 using extensions::ListBuilder; | 23 using extensions::ListBuilder; |
| 24 using testing::_; | 24 using testing::_; |
| 25 | 25 |
| 26 namespace { | 26 namespace { |
| 27 | 27 |
| 28 // Mock file browser handler event router to be used in the test. | 28 // Mock file browser handler event router to be used in the test. |
| 29 class MockFileBrowserHandlerEventRouter | 29 class MockStreamsPrivateEventRouter |
| 30 : public FileBrowserResourceThrottle::FileBrowserHandlerEventRouter { | 30 : public StreamsResourceThrottle::StreamsPrivateEventRouter { |
| 31 public: | 31 public: |
| 32 virtual ~MockFileBrowserHandlerEventRouter() {} | 32 virtual ~MockStreamsPrivateEventRouter() {} |
| 33 | 33 |
| 34 MOCK_METHOD5(DispatchMimeTypeHandlerEvent, | 34 MOCK_METHOD5(DispatchMimeTypeHandlerEvent, |
| 35 void(int render_process_id, | 35 void(int render_process_id, |
| 36 int render_process_view, | 36 int render_process_view, |
| 37 const std::string& mime_type, | 37 const std::string& mime_type, |
| 38 const GURL& request_url, | 38 const GURL& request_url, |
| 39 const std::string& extension_id)); | 39 const std::string& extension_id)); |
| 40 }; | 40 }; |
| 41 | 41 |
| 42 // Resource controller to be used in the tests. | 42 // Resource controller to be used in the tests. |
| 43 class MockResourceController : public content::ResourceController { | 43 class MockResourceController : public content::ResourceController { |
| 44 public: | 44 public: |
| 45 virtual ~MockResourceController() {} | 45 virtual ~MockResourceController() {} |
| 46 MOCK_METHOD0(Cancel, void()); | 46 MOCK_METHOD0(Cancel, void()); |
| 47 MOCK_METHOD0(CancelAndIgnore, void()); | 47 MOCK_METHOD0(CancelAndIgnore, void()); |
| 48 MOCK_METHOD1(CancelWithError, void(int error_code)); | 48 MOCK_METHOD1(CancelWithError, void(int error_code)); |
| 49 MOCK_METHOD0(Resume, void()); | 49 MOCK_METHOD0(Resume, void()); |
| 50 }; | 50 }; |
| 51 | 51 |
| 52 class FileBrowserResourceThrottleTest : public testing::Test { | 52 class StreamsResourceThrottleTest : public testing::Test { |
| 53 public: | 53 public: |
| 54 typedef FileBrowserResourceThrottle::FileBrowserHandlerEventRouter | 54 typedef StreamsResourceThrottle::StreamsPrivateEventRouter |
| 55 HandlerEventRouter; | 55 HandlerEventRouter; |
| 56 | 56 |
| 57 FileBrowserResourceThrottleTest() | 57 StreamsResourceThrottleTest() |
| 58 : test_extension_id_("test_extension_id"), | 58 : test_extension_id_(extension_misc::kStreamsPrivateTestExtensionId), |
| 59 test_render_process_id_(2), | 59 test_render_process_id_(2), |
| 60 test_render_view_id_(12), | 60 test_render_view_id_(12), |
| 61 test_request_url_("http://some_url/file.txt"), | 61 test_request_url_("http://some_url/file.txt"), |
| 62 ui_thread_(content::BrowserThread::UI, &message_loop_), | 62 ui_thread_(content::BrowserThread::UI, &message_loop_), |
| 63 io_thread_(content::BrowserThread::IO, &message_loop_) { | 63 io_thread_(content::BrowserThread::IO, &message_loop_) { |
| 64 } | 64 } |
| 65 | 65 |
| 66 virtual ~FileBrowserResourceThrottleTest() {} | 66 virtual ~StreamsResourceThrottleTest() {} |
| 67 | 67 |
| 68 virtual void SetUp() OVERRIDE { | 68 virtual void SetUp() OVERRIDE { |
| 69 (new FileBrowserHandlerParser)->Register(); | 69 (new MimeTypesHandlerParser)->Register(); |
| 70 // Extension info map must be created before |CreateAndInstallTestExtension| | 70 // Extension info map must be created before |CreateAndInstallTestExtension| |
| 71 // is called (the method will add created extension to the info map). | 71 // is called (the method will add created extension to the info map). |
| 72 extension_info_map_ = new ExtensionInfoMap(); | 72 extension_info_map_ = new ExtensionInfoMap(); |
| 73 CreateAndInstallTestExtension(); | 73 CreateAndInstallTestExtension(); |
| 74 InitResourceController(); | 74 InitResourceController(); |
| 75 } | 75 } |
| 76 | 76 |
| 77 virtual void TearDown() OVERRIDE { | 77 virtual void TearDown() OVERRIDE { |
| 78 FileBrowserHandler::set_extension_whitelisted_for_test(NULL); | 78 MimeTypesHandler::set_extension_whitelisted_for_test(NULL); |
| 79 extensions::ManifestHandler::ClearRegistryForTesting(); | 79 extensions::ManifestHandler::ClearRegistryForTesting(); |
| 80 } | 80 } |
| 81 | 81 |
| 82 protected: | 82 protected: |
| 83 // Creates the test extension, and adds it to the |extension_info_map_|. | 83 // Creates the test extension, and adds it to the |extension_info_map_|. |
| 84 // The extension has separate file browser handlers that can handle | 84 // The extension has separate file browser handlers that can handle |
| 85 // 'plain/html' and 'plain/text' MIME types. | 85 // 'plain/html' and 'plain/text' MIME types. |
| 86 void CreateAndInstallTestExtension() { | 86 void CreateAndInstallTestExtension() { |
| 87 // The extension must be white-listed in order to be successfully created. | 87 // The extension must be white-listed in order to be successfully created. |
| 88 FileBrowserHandler::set_extension_whitelisted_for_test( | 88 MimeTypesHandler::set_extension_whitelisted_for_test( |
| 89 &test_extension_id_); | 89 &test_extension_id_); |
| 90 | 90 |
| 91 extension_ = | 91 extension_ = |
| 92 ExtensionBuilder() | 92 ExtensionBuilder() |
| 93 .SetManifest(DictionaryBuilder() | 93 .SetManifest(DictionaryBuilder() |
| 94 .Set("name", "file browser handler test") | 94 .Set("name", "file browser handler test") |
| 95 .Set("version", "1.0.0") | 95 .Set("version", "1.0.0") |
| 96 .Set("manifest_version", 2) | 96 .Set("manifest_version", 2) |
| 97 .Set("file_browser_handlers", ListBuilder() | 97 .Set("mime_types", ListBuilder() |
| 98 .Append(DictionaryBuilder() | 98 .Append("random/mime1") |
| 99 // Handler that handles 'plain/html', among others. | 99 .Append("random/mime2") |
| 100 .Set("id", "ID_handle_html") | 100 .Append("plain/html") |
| 101 .Set("default_title", "Default title") | 101 .Append("plain/text"))) |
| 102 .Set("default_icon", "icon.png") | |
| 103 // file_filters_field is mandatory, even though | |
| 104 // it's not used in the tests. | |
| 105 .Set("file_filters", ListBuilder() | |
| 106 .Append("filesystem:*.html")) | |
| 107 .Set("mime_types", ListBuilder() | |
| 108 .Append("random/mime1") | |
| 109 .Append("random/mime2") | |
| 110 .Append("plain/html"))) | |
| 111 .Append(DictionaryBuilder() | |
| 112 // Handler that handles only 'plain/text'. | |
| 113 .Set("id", "ID_handle_text") | |
| 114 .Set("default_title", "Default title") | |
| 115 .Set("default_icon", "icon.png") | |
| 116 // file_filters_field is mandatory, even though | |
| 117 // it's not used in the tests. | |
| 118 .Set("file_filters", ListBuilder() | |
| 119 .Append("filesystem:*.txt")) | |
| 120 .Set("mime_types", ListBuilder() | |
| 121 .Append("plain/text"))))) | |
| 122 .SetID(test_extension_id_) | 102 .SetID(test_extension_id_) |
| 123 .Build(); | 103 .Build(); |
| 124 | 104 |
| 125 // 'Install' the extension. | 105 // 'Install' the extension. |
| 126 extension_info_map_->AddExtension(extension_, | 106 extension_info_map_->AddExtension(extension_, |
| 127 base::Time(), // install time | 107 base::Time(), // install time |
| 128 true); // enable_incognito | 108 true); // enable_incognito |
| 129 } | 109 } |
| 130 | 110 |
| 131 // Initiates the default mock_resource_controller_ expectations. | 111 // Initiates the default mock_resource_controller_ expectations. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 148 test_extension_id_, extension_misc::UNLOAD_REASON_UNINSTALL); | 128 test_extension_id_, extension_misc::UNLOAD_REASON_UNINSTALL); |
| 149 extension_info_map_->AddExtension(extension_, | 129 extension_info_map_->AddExtension(extension_, |
| 150 base::Time(), // install_time | 130 base::Time(), // install_time |
| 151 false); // enable incognito | 131 false); // enable incognito |
| 152 } | 132 } |
| 153 | 133 |
| 154 // Creates the resource throttle that should be tested. | 134 // Creates the resource throttle that should be tested. |
| 155 // It's setup with |mock_event_router| passed to the method and | 135 // It's setup with |mock_event_router| passed to the method and |
| 156 // |mock_resource_throttle_|. | 136 // |mock_resource_throttle_|. |
| 157 // |mock_event_router|'s expectations must be set before calling this method. | 137 // |mock_event_router|'s expectations must be set before calling this method. |
| 158 scoped_ptr<FileBrowserResourceThrottle> CreateThrottleToTest( | 138 scoped_ptr<StreamsResourceThrottle> CreateThrottleToTest( |
| 159 bool is_incognito, | 139 bool is_incognito, |
| 160 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router, | 140 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router, |
| 161 const std::string& mime_type) { | 141 const std::string& mime_type) { |
| 162 scoped_ptr<HandlerEventRouter> event_router(mock_event_router.release()); | 142 scoped_ptr<HandlerEventRouter> event_router(mock_event_router.release()); |
| 163 scoped_ptr<FileBrowserResourceThrottle> test_throttle( | 143 scoped_ptr<StreamsResourceThrottle> test_throttle( |
| 164 FileBrowserResourceThrottle::CreateForTest(test_render_process_id_, | 144 StreamsResourceThrottle::CreateForTest(test_render_process_id_, |
| 165 test_render_view_id_, | 145 test_render_view_id_, |
| 166 mime_type, | 146 mime_type, |
| 167 test_request_url_, | 147 test_request_url_, |
| 168 is_incognito, | 148 is_incognito, |
| 169 extension_info_map_.get(), | 149 extension_info_map_.get(), |
| 170 event_router.Pass())); | 150 event_router.Pass())); |
| 171 | 151 |
| 172 test_throttle->set_controller_for_testing(&mock_resource_controller_); | 152 test_throttle->set_controller_for_testing(&mock_resource_controller_); |
| 173 | 153 |
| 174 return test_throttle.Pass(); | 154 return test_throttle.Pass(); |
| 175 } | 155 } |
| 176 | 156 |
| 177 // The test extension's id. | 157 // The test extension's id. |
| 178 std::string test_extension_id_; | 158 std::string test_extension_id_; |
| 179 // The test extension. | 159 // The test extension. |
| 180 scoped_refptr<const Extension> extension_; | 160 scoped_refptr<const Extension> extension_; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 194 private: | 174 private: |
| 195 // ExtensionInfoMap needs IO thread. | 175 // ExtensionInfoMap needs IO thread. |
| 196 MessageLoop message_loop_; | 176 MessageLoop message_loop_; |
| 197 content::TestBrowserThread ui_thread_; | 177 content::TestBrowserThread ui_thread_; |
| 198 content::TestBrowserThread io_thread_; | 178 content::TestBrowserThread io_thread_; |
| 199 }; | 179 }; |
| 200 | 180 |
| 201 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is | 181 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is |
| 202 // called) and the event_router is invoked when a white-listed extension has a | 182 // called) and the event_router is invoked when a white-listed extension has a |
| 203 // file browser handler that can handle the request's MIME type. | 183 // file browser handler that can handle the request's MIME type. |
| 204 TEST_F(FileBrowserResourceThrottleTest, HandlerWhiteListed) { | 184 TEST_F(StreamsResourceThrottleTest, HandlerWhiteListed) { |
| 205 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); | 185 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); |
| 206 | 186 |
| 207 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 187 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 208 new MockFileBrowserHandlerEventRouter()); | 188 new MockStreamsPrivateEventRouter()); |
| 209 EXPECT_CALL(*mock_event_router, | 189 EXPECT_CALL(*mock_event_router, |
| 210 DispatchMimeTypeHandlerEvent(test_render_process_id_, | 190 DispatchMimeTypeHandlerEvent(test_render_process_id_, |
| 211 test_render_view_id_, | 191 test_render_view_id_, |
| 212 "plain/html", | 192 "plain/html", |
| 213 test_request_url_, | 193 test_request_url_, |
| 214 test_extension_id_)) | 194 test_extension_id_)) |
| 215 .Times(1); | 195 .Times(1); |
| 216 | 196 |
| 217 scoped_ptr<FileBrowserResourceThrottle> throttle( | 197 scoped_ptr<StreamsResourceThrottle> throttle( |
| 218 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/html")); | 198 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/html")); |
| 219 | 199 |
| 220 bool defer = false; | 200 bool defer = false; |
| 221 throttle->WillProcessResponse(&defer); | 201 throttle->WillProcessResponse(&defer); |
| 222 EXPECT_FALSE(defer); | 202 EXPECT_FALSE(defer); |
| 223 } | 203 } |
| 224 | 204 |
| 225 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is | 205 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is |
| 226 // called) and the event_router is invoked when a white-listed extension has a | 206 // called) and the event_router is invoked when a white-listed extension has a |
| 227 // file browser handler that can handle the request's MIME type, even when the | 207 // file browser handler that can handle the request's MIME type, even when the |
| 228 // file browser handler is not first in the extension's file browser handler | 208 // file browser handler is not first in the extension's file browser handler |
| 229 // list. | 209 // list. |
| 230 TEST_F(FileBrowserResourceThrottleTest, SecondHandlerWhiteListed) { | 210 TEST_F(StreamsResourceThrottleTest, SecondHandlerWhiteListed) { |
| 231 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); | 211 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); |
| 232 | 212 |
| 233 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 213 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 234 new MockFileBrowserHandlerEventRouter()); | 214 new MockStreamsPrivateEventRouter()); |
| 235 EXPECT_CALL(*mock_event_router, | 215 EXPECT_CALL(*mock_event_router, |
| 236 DispatchMimeTypeHandlerEvent(test_render_process_id_, | 216 DispatchMimeTypeHandlerEvent(test_render_process_id_, |
| 237 test_render_view_id_, | 217 test_render_view_id_, |
| 238 "plain/text", | 218 "plain/text", |
| 239 test_request_url_, | 219 test_request_url_, |
| 240 test_extension_id_)) | 220 test_extension_id_)) |
| 241 .Times(1); | 221 .Times(1); |
| 242 | 222 |
| 243 scoped_ptr<FileBrowserResourceThrottle> throttle( | 223 scoped_ptr<StreamsResourceThrottle> throttle( |
| 244 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/text")); | 224 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/text")); |
| 245 | 225 |
| 246 bool defer = false; | 226 bool defer = false; |
| 247 throttle->WillProcessResponse(&defer); | 227 throttle->WillProcessResponse(&defer); |
| 248 EXPECT_FALSE(defer); | 228 EXPECT_FALSE(defer); |
| 249 } | 229 } |
| 250 | 230 |
| 251 // Tests that the request is not canceled and the event router is not invoked | 231 // Tests that the request is not canceled and the event router is not invoked |
| 252 // if there is no file browser handlers registered for the request's MIME type. | 232 // if there is no file browser handlers registered for the request's MIME type. |
| 253 TEST_F(FileBrowserResourceThrottleTest, NoWhiteListedHandler) { | 233 TEST_F(StreamsResourceThrottleTest, NoWhiteListedHandler) { |
| 254 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 234 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 255 new MockFileBrowserHandlerEventRouter()); | 235 new MockStreamsPrivateEventRouter()); |
| 256 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) | 236 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) |
| 257 .Times(0); | 237 .Times(0); |
| 258 | 238 |
| 259 scoped_ptr<FileBrowserResourceThrottle> throttle( | 239 scoped_ptr<StreamsResourceThrottle> throttle( |
| 260 CreateThrottleToTest(false, mock_event_router.Pass(), | 240 CreateThrottleToTest(false, mock_event_router.Pass(), |
| 261 "random_mime_type")); | 241 "random_mime_type")); |
| 262 | 242 |
| 263 bool defer = false; | 243 bool defer = false; |
| 264 throttle->WillProcessResponse(&defer); | 244 throttle->WillProcessResponse(&defer); |
| 265 EXPECT_FALSE(defer); | 245 EXPECT_FALSE(defer); |
| 266 } | 246 } |
| 267 | 247 |
| 268 // Tests that the request is not canceled and the event router is not invoked | 248 // Tests that the request is not canceled and the event router is not invoked |
| 269 // if there is an extension with the file browser handler that can handle the | 249 // if there is an extension with the file browser handler that can handle the |
| 270 // request's MIME type, but the extension is disabled. | 250 // request's MIME type, but the extension is disabled. |
| 271 TEST_F(FileBrowserResourceThrottleTest, HandlerWhiteListedAndDisabled) { | 251 TEST_F(StreamsResourceThrottleTest, HandlerWhiteListedAndDisabled) { |
| 272 DisableTestExtension(); | 252 DisableTestExtension(); |
| 273 | 253 |
| 274 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 254 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 275 new MockFileBrowserHandlerEventRouter()); | 255 new MockStreamsPrivateEventRouter()); |
| 276 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) | 256 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) |
| 277 .Times(0); | 257 .Times(0); |
| 278 | 258 |
| 279 scoped_ptr<FileBrowserResourceThrottle> throttle( | 259 scoped_ptr<StreamsResourceThrottle> throttle( |
| 280 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/text")); | 260 CreateThrottleToTest(false, mock_event_router.Pass(), "plain/text")); |
| 281 | 261 |
| 282 bool defer = false; | 262 bool defer = false; |
| 283 throttle->WillProcessResponse(&defer); | 263 throttle->WillProcessResponse(&defer); |
| 284 EXPECT_FALSE(defer); | 264 EXPECT_FALSE(defer); |
| 285 } | 265 } |
| 286 | 266 |
| 287 // Tests that the request is not canceled and the event router is not invoked | 267 // Tests that the request is not canceled and the event router is not invoked |
| 288 // in incognito mode if the extension that handles the request's MIME type is | 268 // in incognito mode if the extension that handles the request's MIME type is |
| 289 // not incognito enabled. | 269 // not incognito enabled. |
| 290 TEST_F(FileBrowserResourceThrottleTest, IncognitoExtensionNotEnabled) { | 270 TEST_F(StreamsResourceThrottleTest, IncognitoExtensionNotEnabled) { |
| 291 ReloadTestExtensionIncognitoDisabled(); | 271 ReloadTestExtensionIncognitoDisabled(); |
| 292 | 272 |
| 293 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 273 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 294 new MockFileBrowserHandlerEventRouter()); | 274 new MockStreamsPrivateEventRouter()); |
| 295 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) | 275 EXPECT_CALL(*mock_event_router, DispatchMimeTypeHandlerEvent(_, _, _, _, _)) |
| 296 .Times(0); | 276 .Times(0); |
| 297 | 277 |
| 298 scoped_ptr<FileBrowserResourceThrottle> throttle( | 278 scoped_ptr<StreamsResourceThrottle> throttle( |
| 299 CreateThrottleToTest(true, mock_event_router.Pass(), "plain/text")); | 279 CreateThrottleToTest(true, mock_event_router.Pass(), "plain/text")); |
| 300 | 280 |
| 301 bool defer = false; | 281 bool defer = false; |
| 302 throttle->WillProcessResponse(&defer); | 282 throttle->WillProcessResponse(&defer); |
| 303 EXPECT_FALSE(defer); | 283 EXPECT_FALSE(defer); |
| 304 } | 284 } |
| 305 | 285 |
| 306 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is | 286 // Tests that the request gets canceled (mock_resource_controller_.Cancel() is |
| 307 // called) and the event_router is invoked in incognito when a white-listed | 287 // called) and the event_router is invoked in incognito when a white-listed |
| 308 // extension that handles request's MIME type is incognito enabled. | 288 // extension that handles request's MIME type is incognito enabled. |
| 309 TEST_F(FileBrowserResourceThrottleTest, IncognitoExtensionEnabled) { | 289 TEST_F(StreamsResourceThrottleTest, IncognitoExtensionEnabled) { |
| 310 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); | 290 EXPECT_CALL(mock_resource_controller_, CancelAndIgnore()).Times(1); |
| 311 | 291 |
| 312 scoped_ptr<MockFileBrowserHandlerEventRouter> mock_event_router( | 292 scoped_ptr<MockStreamsPrivateEventRouter> mock_event_router( |
| 313 new MockFileBrowserHandlerEventRouter()); | 293 new MockStreamsPrivateEventRouter()); |
| 314 EXPECT_CALL(*mock_event_router, | 294 EXPECT_CALL(*mock_event_router, |
| 315 DispatchMimeTypeHandlerEvent(test_render_process_id_, | 295 DispatchMimeTypeHandlerEvent(test_render_process_id_, |
| 316 test_render_view_id_, | 296 test_render_view_id_, |
| 317 "plain/html", | 297 "plain/html", |
| 318 test_request_url_, | 298 test_request_url_, |
| 319 test_extension_id_)) | 299 test_extension_id_)) |
| 320 .Times(1); | 300 .Times(1); |
| 321 | 301 |
| 322 scoped_ptr<FileBrowserResourceThrottle> throttle( | 302 scoped_ptr<StreamsResourceThrottle> throttle( |
| 323 CreateThrottleToTest(true, mock_event_router.Pass(), "plain/html")); | 303 CreateThrottleToTest(true, mock_event_router.Pass(), "plain/html")); |
| 324 | 304 |
| 325 bool defer = false; | 305 bool defer = false; |
| 326 throttle->WillProcessResponse(&defer); | 306 throttle->WillProcessResponse(&defer); |
| 327 EXPECT_FALSE(defer); | 307 EXPECT_FALSE(defer); |
| 328 } | 308 } |
| 329 | 309 |
| 330 } // namespace | 310 } // namespace |
| OLD | NEW |