Remove TestingProfile::ForceIncognito() API
Use incognito WebContents created for profile()->GetOffTheRecordProfile()
which is exactly as in production code.
Bug: 277296
Change-Id: Ia7fc636fe1d84306adcae3f8e7d6b02e6fccdc4a
Reviewed-on: https://chromium-review.googlesource.com/c/1419559
Reviewed-by: Scott Violet <[email protected]>
Commit-Queue: Alexey Baskakov <[email protected]>
Cr-Commit-Position: refs/heads/master@{#624425}
diff --git a/chrome/browser/extensions/extension_protocols_unittest.cc b/chrome/browser/extensions/extension_protocols_unittest.cc
index 66fbc4b..4816246 100644
--- a/chrome/browser/extensions/extension_protocols_unittest.cc
+++ b/chrome/browser/extensions/extension_protocols_unittest.cc
@@ -184,14 +184,15 @@
// This test lives in src/chrome instead of src/extensions because it tests
// functionality delegated back to Chrome via ChromeExtensionsBrowserClient.
// See chrome/browser/extensions/chrome_url_request_util.cc.
-class ExtensionProtocolsTest
+class ExtensionProtocolsTestBase
: public testing::Test,
public testing::WithParamInterface<RequestHandlerType> {
public:
- ExtensionProtocolsTest()
+ explicit ExtensionProtocolsTestBase(bool force_incognito)
: thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
rvh_test_enabler_(new content::RenderViewHostTestEnabler()),
- old_factory_(NULL) {}
+ old_factory_(NULL),
+ force_incognito_(force_incognito) {}
void SetUp() override {
testing::Test::SetUp();
@@ -229,7 +230,6 @@
test_url_request_context_.set_job_factory(&job_factory_);
break;
}
- testing_profile_->ForceIncognito(is_incognito);
}
GetResult RequestOrLoad(const GURL& url, ResourceType resource_type) {
@@ -287,7 +287,10 @@
return ExtensionSystem::Get(browser_context())->info_map();
}
- content::BrowserContext* browser_context() { return testing_profile_.get(); }
+ content::BrowserContext* browser_context() {
+ return force_incognito_ ? testing_profile_->GetOffTheRecordProfile()
+ : testing_profile_.get();
+ }
void SimulateSystemSuspendForRequests() {
power_monitor_source_ = new base::PowerMonitorTestSource();
@@ -376,6 +379,7 @@
std::unique_ptr<TestingProfile> testing_profile_;
net::TestDelegate test_delegate_;
std::unique_ptr<content::WebContents> contents_;
+ const bool force_incognito_;
std::unique_ptr<base::PowerMonitor> power_monitor_;
@@ -383,11 +387,23 @@
base::PowerMonitorTestSource* power_monitor_source_ = nullptr;
};
+class ExtensionProtocolsTest : public ExtensionProtocolsTestBase {
+ public:
+ ExtensionProtocolsTest()
+ : ExtensionProtocolsTestBase(false /*force_incognito*/) {}
+};
+
+class ExtensionProtocolsIncognitoTest : public ExtensionProtocolsTestBase {
+ public:
+ ExtensionProtocolsIncognitoTest()
+ : ExtensionProtocolsTestBase(true /*force_incognito*/) {}
+};
+
// Tests that making a chrome-extension request in an incognito context is
// only allowed under the right circumstances (if the extension is allowed
// in incognito, and it's either a non-main-frame request or a split-mode
// extension).
-TEST_P(ExtensionProtocolsTest, IncognitoRequest) {
+TEST_P(ExtensionProtocolsIncognitoTest, IncognitoRequest) {
// Register an incognito extension protocol handler.
SetProtocolHandler(true);
@@ -825,4 +841,8 @@
ExtensionProtocolsTest,
::testing::ValuesIn(kTestModes));
+INSTANTIATE_TEST_CASE_P(Extensions,
+ ExtensionProtocolsIncognitoTest,
+ ::testing::ValuesIn(kTestModes));
+
} // namespace extensions