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

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

Issue 10843065: Add condition attribute for MIME media types from Content-Type header. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: dammit docs Created 8 years, 4 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 791ac0693fbea5f90f168d9b13d04d65f9b2a5ca..641d07000a3691c3001c0c323df85adfc2f6ee09 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
@@ -4,12 +4,14 @@
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condition_attribute.h"
+#include "base/file_path.h"
#include "base/message_loop.h"
#include "base/values.h"
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_constants.h"
#include "chrome/browser/extensions/api/declarative_webrequest/webrequest_rule.h"
#include "content/public/browser/resource_request_info.h"
#include "net/url_request/url_request_test_util.h"
+#include "net/test/test_server.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
@@ -44,6 +46,12 @@ TEST(WebRequestConditionAttributeTest, CreateConditionAttribute) {
EXPECT_FALSE(error.empty());
EXPECT_FALSE(result.get());
+ error.clear();
+ result = WebRequestConditionAttribute::Create(
+ keys::kContentTypeKey, &string_value, &error);
+ EXPECT_FALSE(error.empty());
+ EXPECT_FALSE(result.get());
+
// Test success
error.clear();
result = WebRequestConditionAttribute::Create(
@@ -83,4 +91,53 @@ TEST(WebRequestConditionAttributeTest, TestResourceType) {
WebRequestRule::RequestData(&url_request_fail, ON_BEFORE_REQUEST)));
}
+TEST(WebRequestConditionAttributeTest, TestContentType) {
+ // Necessary for TestURLRequest.
+ MessageLoop message_loop(MessageLoop::TYPE_IO);
+
+ std::string error;
+ scoped_ptr<WebRequestConditionAttribute> result;
+
+ net::TestServer test_server(
+ net::TestServer::TYPE_HTTP,
+ net::TestServer::kLocalhost,
+ FilePath(FILE_PATH_LITERAL(
+ "chrome/test/data/extensions/api_test/webrequest/declarative")));
+ ASSERT_TRUE(test_server.Start());
+
+ TestURLRequestContext context;
+ TestDelegate delegate;
+ TestURLRequest url_request(test_server.GetURL("headers.html"),
+ &delegate, &context);
+ url_request.Start();
+ MessageLoop::current()->Run();
+
+ ListValue content_types;
+ content_types.Append(Value::CreateStringValue("text/html"));
+ scoped_ptr<WebRequestConditionAttribute> attribute_ok =
+ WebRequestConditionAttribute::Create(
+ keys::kContentTypeKey, &content_types, &error);
+ EXPECT_EQ("", error);
+ ASSERT_TRUE(attribute_ok.get());
+
+ EXPECT_FALSE(attribute_ok->IsFulfilled(
+ WebRequestRule::RequestData(&url_request, ON_BEFORE_REQUEST,
+ url_request.response_headers())));
+ EXPECT_TRUE(attribute_ok->IsFulfilled(
+ WebRequestRule::RequestData(&url_request, ON_HEADERS_RECEIVED,
+ url_request.response_headers())));
+
+ content_types.Clear();
+ content_types.Append(Value::CreateStringValue("something/invalid"));
+ scoped_ptr<WebRequestConditionAttribute> attribute_fail =
+ WebRequestConditionAttribute::Create(
+ keys::kContentTypeKey, &content_types, &error);
+ EXPECT_EQ("", error);
+ ASSERT_TRUE(attribute_fail.get());
+
+ EXPECT_FALSE(attribute_fail->IsFulfilled(
+ WebRequestRule::RequestData(&url_request, ON_HEADERS_RECEIVED,
+ url_request.response_headers())));
+}
+
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698