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

Unified Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc

Issue 10982044: Adding thirdParty property to RequestMatcher (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reordered the unit-test to spare setting up some URLs. Created 8 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: chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
index 1f3e26b9a69ebc19eba57c99cfd07ea57a7f1515..56e70055d0e30b7fd113509f0a594efccbbadd73 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute_unittest.cc
@@ -16,6 +16,7 @@
#include "testing/gtest/include/gtest/gtest.h"
using base::DictionaryValue;
+using base::FundamentalValue;
using base::ListValue;
using base::StringValue;
using base::Value;
@@ -162,6 +163,69 @@ TEST(WebRequestConditionAttributeTest, ContentType) {
url_request.response_headers())));
}
+// Testing WebRequestConditionAttributeThirdParty.
+TEST(WebRequestConditionAttributeTest, ThirdParty) {
+ // Necessary for TestURLRequest.
+ MessageLoop message_loop(MessageLoop::TYPE_IO);
+
+ std::string error;
+ const FundamentalValue value_true(true);
+ // This attribute matches only third party requests.
+ scoped_ptr<WebRequestConditionAttribute> third_party_attribute =
+ WebRequestConditionAttribute::Create(keys::kThirdPartyKey,
+ &value_true,
+ &error);
+ ASSERT_EQ("", error);
+ ASSERT_TRUE(third_party_attribute.get() != NULL);
+ const FundamentalValue value_false(false);
+ // This attribute matches only first party requests.
+ scoped_ptr<WebRequestConditionAttribute> first_party_attribute =
+ WebRequestConditionAttribute::Create(keys::kThirdPartyKey,
+ &value_false,
+ &error);
+ ASSERT_EQ("", error);
+ ASSERT_TRUE(first_party_attribute.get() != NULL);
+
+ const GURL url_empty;
+ const GURL url_a("http://a.com");
+ const GURL url_b("http://b.com");
+ TestURLRequestContext context;
+ TestDelegate delegate;
+ TestURLRequest url_request(url_a, &delegate, &context);
+
+ static const RequestStage request_stages[] = {
+ ON_BEFORE_REQUEST,
+ ON_BEFORE_SEND_HEADERS,
+ ON_SEND_HEADERS,
+ ON_HEADERS_RECEIVED,
+ ON_AUTH_REQUIRED,
+ ON_BEFORE_REDIRECT,
+ ON_RESPONSE_STARTED,
+ ON_COMPLETED,
+ ON_ERROR
+ };
+
+ for (size_t i = 0; i < arraysize(request_stages); ++i) {
+ url_request.set_first_party_for_cookies(url_empty);
+ EXPECT_FALSE(third_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+ EXPECT_TRUE(first_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+
+ url_request.set_first_party_for_cookies(url_b);
+ EXPECT_TRUE(third_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+ EXPECT_FALSE(first_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+
+ url_request.set_first_party_for_cookies(url_a);
+ EXPECT_FALSE(third_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+ EXPECT_TRUE(first_party_attribute->IsFulfilled(WebRequestRule::RequestData(
+ &url_request, request_stages[i])));
+ }
+}
+
namespace {
// Builds a vector of vectors of string pointers from an array of strings.

Powered by Google App Engine
This is Rietveld 408576698