Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(203)

Unified Diff: content/browser/browsing_data/clear_site_data_throttle_unittest.cc

Issue 2368923003: Support the Clear-Site-Data header on resource requests (Closed)
Patch Set: Addressed comments. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/browsing_data/clear_site_data_throttle_unittest.cc
diff --git a/content/browser/browsing_data/clear_site_data_throttle_unittest.cc b/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
index bdfa8fad3d519996800691f6526b3e3ad320f0f1..eff120ba6808c8f9245777f8912fabe7b0af21c8 100644
--- a/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
+++ b/content/browser/browsing_data/clear_site_data_throttle_unittest.cc
@@ -7,7 +7,12 @@
#include <memory>
#include "base/command_line.h"
+#include "base/message_loop/message_loop.h"
+#include "base/test/scoped_command_line.h"
+#include "content/common/net/url_request_service_worker_data.h"
#include "content/public/common/content_switches.h"
+#include "net/base/load_flags.h"
+#include "net/url_request/url_request_test_util.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -15,20 +20,49 @@ namespace content {
class ClearSiteDataThrottleTest : public testing::Test {
public:
- void SetUp() override {
- base::CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kEnableExperimentalWebPlatformFeatures);
- throttle_ = ClearSiteDataThrottle::CreateThrottleForNavigation(nullptr);
- }
+ void SetUp() override { throttle_.reset(new ClearSiteDataThrottle(nullptr)); }
ClearSiteDataThrottle* GetThrottle() {
return static_cast<ClearSiteDataThrottle*>(throttle_.get());
}
private:
- std::unique_ptr<NavigationThrottle> throttle_;
+ base::MessageLoop message_loop_;
+ std::unique_ptr<ResourceThrottle> throttle_;
};
+TEST_F(ClearSiteDataThrottleTest, CreateThrottleForRequest) {
+ // Enable experimental features.
+ std::unique_ptr<base::test::ScopedCommandLine> command_line(
+ new base::test::ScopedCommandLine());
+ command_line->GetProcessCommandLine()->AppendSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures);
+
+ // Create a URL request.
+ GURL url("https://www.example.com");
+ net::TestURLRequestContext context;
+ std::unique_ptr<net::URLRequest> request(
+ context.CreateRequest(url, net::DEFAULT_PRIORITY, nullptr));
+
+ // We will not create the throttle for an empty ResourceRequestInfo.
+ EXPECT_FALSE(ClearSiteDataThrottle::CreateThrottleForRequest(request.get()));
+
+ // We can create the throttle for a valid ResourceRequestInfo.
+ ResourceRequestInfo::AllocateForTesting(request.get(), RESOURCE_TYPE_IMAGE,
+ nullptr, 0, 0, 0, false, true, true,
+ true, false);
+ EXPECT_TRUE(ClearSiteDataThrottle::CreateThrottleForRequest(request.get()));
+
+ // Nor will we for LOAD_DO_NOT_SAVE_COOKIES requests.
+ request->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
+ EXPECT_FALSE(ClearSiteDataThrottle::CreateThrottleForRequest(request.get()));
+
+ // Nor if experimental web features are disabled.
+ request->SetLoadFlags(net::LOAD_NORMAL);
+ command_line.reset();
+ EXPECT_FALSE(ClearSiteDataThrottle::CreateThrottleForRequest(request.get()));
+}
+
TEST_F(ClearSiteDataThrottleTest, ParseHeader) {
struct TestCase {
const char* header;

Powered by Google App Engine
This is Rietveld 408576698