summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/extensions/api/webstore_private/webstore_private_apitest.cc
diff options
context:
space:
mode:
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.cc47
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