blob: 188cbd4ecc14479de574c371bdf79a0b923befa5 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
#include <memory>
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/platform/web_url_request.h"
#include "third_party/blink/renderer/platform/network/encoded_form_data.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/weborigin/referrer.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
namespace blink {
TEST(ResourceRequestTest, SetHasUserGesture) {
ResourceRequest original;
EXPECT_FALSE(original.HasUserGesture());
original.SetHasUserGesture(true);
EXPECT_TRUE(original.HasUserGesture());
original.SetHasUserGesture(false);
EXPECT_TRUE(original.HasUserGesture());
}
TEST(ResourceRequestTest, SetIsAdResource) {
ResourceRequest original;
EXPECT_FALSE(original.IsAdResource());
original.SetIsAdResource();
EXPECT_TRUE(original.IsAdResource());
// Should persist across redirects.
std::unique_ptr<ResourceRequest> redirect_request =
original.CreateRedirectRequest(
KURL("https://example.test/redirect"), original.HttpMethod(),
original.SiteForCookies(), original.TopFrameOrigin(),
original.HttpReferrer(), original.GetReferrerPolicy(),
original.GetSkipServiceWorker());
EXPECT_TRUE(redirect_request->IsAdResource());
}
TEST(ResourceRequestTest, SetTopFrameURL) {
KURL url("http://example.com");
scoped_refptr<SecurityOrigin> origin = SecurityOrigin::Create(url);
ResourceRequest original;
original.SetTopFrameOrigin(origin);
// Should persist across redirects.
std::unique_ptr<ResourceRequest> redirect_request =
original.CreateRedirectRequest(
KURL("https://example.test/redirect"), original.HttpMethod(),
original.SiteForCookies(), original.TopFrameOrigin(),
original.HttpReferrer(), original.GetReferrerPolicy(),
original.GetSkipServiceWorker());
EXPECT_EQ(origin, redirect_request->TopFrameOrigin());
}
TEST(ResourceRequestTest, UpgradeIfInsecureAcrossRedirects) {
ResourceRequest original;
EXPECT_FALSE(original.UpgradeIfInsecure());
original.SetUpgradeIfInsecure(true);
EXPECT_TRUE(original.UpgradeIfInsecure());
// Should persist across redirects.
std::unique_ptr<ResourceRequest> redirect_request =
original.CreateRedirectRequest(
KURL("https://example.test/redirect"), original.HttpMethod(),
original.SiteForCookies(), original.TopFrameOrigin(),
original.HttpReferrer(), original.GetReferrerPolicy(),
original.GetSkipServiceWorker());
EXPECT_TRUE(redirect_request->UpgradeIfInsecure());
}
} // namespace blink