| Index: chrome/browser/net/safe_search_util_unittest.cc
|
| diff --git a/chrome/browser/net/safe_search_util_unittest.cc b/chrome/browser/net/safe_search_util_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..112c96137ffc85ad41fbf3d3ced73b5feec54229
|
| --- /dev/null
|
| +++ b/chrome/browser/net/safe_search_util_unittest.cc
|
| @@ -0,0 +1,90 @@
|
| +// Copyright (c) 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 "chrome/browser/net/safe_search_util.h"
|
| +
|
| +#include "base/message_loop/message_loop.h"
|
| +#include "base/strings/string_piece.h"
|
| +#include "net/http/http_request_headers.h"
|
| +#include "net/url_request/url_request_test_util.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "url/gurl.h"
|
| +
|
| +class SafeSearchUtilTest : public ::testing::Test {
|
| + protected:
|
| + SafeSearchUtilTest() {}
|
| + virtual ~SafeSearchUtilTest() {}
|
| +
|
| + scoped_ptr<net::URLRequest> CreateYoutubeRequest() {
|
| + return context_.CreateRequest(GURL("http://www.youtube.com"),
|
| + net::DEFAULT_PRIORITY,
|
| + NULL,
|
| + NULL);
|
| + }
|
| +
|
| + scoped_ptr<net::URLRequest> CreateNonYoutubeRequest() {
|
| + return context_.CreateRequest(GURL("http://www.notyoutube.com"),
|
| + net::DEFAULT_PRIORITY,
|
| + NULL,
|
| + NULL);
|
| + }
|
| +
|
| + static void SetCookie(net::HttpRequestHeaders* headers,
|
| + const std::string& value) {
|
| + headers->SetHeader(base::StringPiece(net::HttpRequestHeaders::kCookie),
|
| + base::StringPiece(value));
|
| + }
|
| +
|
| + static void CheckHeaders(net::URLRequest* request,
|
| + const std::string& header_string_original,
|
| + const std::string& header_string_expected) {
|
| + net::HttpRequestHeaders headers;
|
| + SetCookie(&headers, header_string_original);
|
| + safe_search_util::ForceYouTubeSafetyMode(request, &headers);
|
| +
|
| + net::HttpRequestHeaders headers_expected;
|
| + SetCookie(&headers_expected, header_string_expected);
|
| + EXPECT_EQ(headers_expected.ToString(), headers.ToString());
|
| + }
|
| +
|
| + base::MessageLoop message_loop_;
|
| + net::TestURLRequestContext context_;
|
| +};
|
| +
|
| +// ForceGoogleSafeSearch is already tested quite extensively in
|
| +// ChromeNetworkDelegateSafeSearchTest (in chrome_network_delegate_unittest.cc),
|
| +// so we won't test it again here.
|
| +
|
| +TEST_F(SafeSearchUtilTest, CreateYoutubePrefCookie) {
|
| + scoped_ptr<net::URLRequest> request = CreateYoutubeRequest();
|
| + CheckHeaders(request.get(),
|
| + "OtherCookie=value",
|
| + "OtherCookie=value; PREF=f2=8000000");
|
| +}
|
| +
|
| +TEST_F(SafeSearchUtilTest, ModifyYoutubePrefCookie) {
|
| + scoped_ptr<net::URLRequest> request = CreateYoutubeRequest();
|
| + CheckHeaders(request.get(),
|
| + "PREF=f1=123; OtherCookie=value",
|
| + "PREF=f1=123&f2=8000000; OtherCookie=value");
|
| + CheckHeaders(request.get(),
|
| + "PREF=",
|
| + "PREF=f2=8000000");
|
| + CheckHeaders(request.get(),
|
| + "PREF=\"\"",
|
| + "PREF=\"f2=8000000\"");
|
| + CheckHeaders(request.get(),
|
| + "PREF=f1=123&f2=4321&foo=bar",
|
| + "PREF=f1=123&f2=8004321&foo=bar");
|
| + CheckHeaders(request.get(),
|
| + "PREF=\"f1=1&f2=4321\"; OtherCookie=value",
|
| + "PREF=\"f1=1&f2=8004321\"; OtherCookie=value");
|
| +}
|
| +
|
| +TEST_F(SafeSearchUtilTest, DoesntTouchNonYoutubeURL) {
|
| + scoped_ptr<net::URLRequest> request = CreateNonYoutubeRequest();
|
| + CheckHeaders(request.get(),
|
| + "PREF=f2=0",
|
| + "PREF=f2=0");
|
| +}
|
|
|