diff options
Diffstat (limited to 'chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc')
-rw-r--r-- | chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc b/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc index f33655acf2d..4819cef550e 100644 --- a/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc +++ b/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc @@ -7,7 +7,6 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/macros.h" -#include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" @@ -432,4 +431,50 @@ IN_PROC_BROWSER_TEST_F(ExtensionWebstoreGetWebGLStatusTest, Blocked) { RunTest(webgl_allowed); } +class ExtensionWebstorePrivateGetReferrerChainApiTest + : public ExtensionWebstorePrivateApiTest { + public: + void SetUpOnMainThread() override { + host_resolver()->AddRule("redirect1.com", "127.0.0.1"); + host_resolver()->AddRule("redirect2.com", "127.0.0.1"); + + ExtensionWebstorePrivateApiTest::SetUpOnMainThread(); + } + + GURL GetTestServerURLWithReferrers(const std::string& path) { + // Hand craft a url that will cause the test server to issue redirects. + const std::vector<std::string> redirects = {"redirect1.com", + "redirect2.com"}; + net::HostPortPair host_port = embedded_test_server()->host_port_pair(); + std::string redirect_chain; + for (const auto& redirect : redirects) { + std::string redirect_url = base::StringPrintf( + "http://%s:%d/server-redirect?", redirect.c_str(), host_port.port()); + redirect_chain += redirect_url; + } + + return GURL(redirect_chain + GetTestServerURL(path).spec()); + } +}; + +// Tests that the GetReferrerChain API returns the redirect information. +IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateGetReferrerChainApiTest, + GetReferrerChain) { + GURL page_url = GetTestServerURLWithReferrers("referrer_chain.html"); + ASSERT_TRUE(RunPageTest(page_url.spec())); +} + +// Tests that the GetReferrerChain API returns an empty string for profiles +// opted out of SafeBrowsing. +IN_PROC_BROWSER_TEST_F(ExtensionWebstorePrivateGetReferrerChainApiTest, + GetReferrerChainForNonSafeBrowsingUser) { + PrefService* pref_service = browser()->profile()->GetPrefs(); + EXPECT_TRUE(pref_service->GetBoolean(prefs::kSafeBrowsingEnabled)); + // Disable SafeBrowsing. + pref_service->SetBoolean(prefs::kSafeBrowsingEnabled, false); + + GURL page_url = GetTestServerURLWithReferrers("empty_referrer_chain.html"); + ASSERT_TRUE(RunPageTest(page_url.spec())); +} + } // namespace extensions |