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

Unified Diff: components/domain_reliability/monitor_unittest.cc

Issue 267633002: Domain Reliability: Don't send proxy address, other fixes (Closed) Base URL: http://git.chromium.org/chromium/src.git@domrel_security
Patch Set: Created 6 years, 8 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: components/domain_reliability/monitor_unittest.cc
diff --git a/components/domain_reliability/monitor_unittest.cc b/components/domain_reliability/monitor_unittest.cc
index 1366f8df6da77a8094ae8b7acd7866f4bc38dbdf..8f4309af60e887d685b4dc0325b8c77f419dfac0 100644
--- a/components/domain_reliability/monitor_unittest.cc
+++ b/components/domain_reliability/monitor_unittest.cc
@@ -17,6 +17,8 @@
#include "components/domain_reliability/test_util.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "net/base/load_flags.h"
+#include "net/http/http_response_headers.h"
+#include "net/http/http_util.h"
#include "net/url_request/url_request_context_getter.h"
#include "net/url_request/url_request_status.h"
#include "net/url_request/url_request_test_util.h"
@@ -24,8 +26,56 @@
namespace domain_reliability {
+namespace {
+
typedef std::vector<DomainReliabilityBeacon> BeaconVector;
+scoped_refptr<net::HttpResponseHeaders> MakeHttpResponseHeaders(
+ const std::string& headers) {
+ return scoped_refptr<net::HttpResponseHeaders>(
+ new net::HttpResponseHeaders(net::HttpUtil::AssembleRawHeaders(
+ headers.c_str(), headers.length())));
+}
+
+static scoped_ptr<const DomainReliabilityConfig> MakeConfig() {
+ DomainReliabilityConfig* config = new DomainReliabilityConfig();
+
+ DomainReliabilityConfig::Resource* resource;
+
+ resource = new DomainReliabilityConfig::Resource();
+ resource->name = "always_report";
+ resource->url_patterns.push_back(
+ new std::string("http://example/always_report"));
+ resource->success_sample_rate = 1.0;
+ resource->failure_sample_rate = 1.0;
+ EXPECT_TRUE(resource->IsValid());
+ config->resources.push_back(resource);
+
+ resource = new DomainReliabilityConfig::Resource();
+ resource->name = "never_report";
+ resource->url_patterns.push_back(
+ new std::string("http://example/never_report"));
+ resource->success_sample_rate = 0.0;
+ resource->failure_sample_rate = 0.0;
+ EXPECT_TRUE(resource->IsValid());
+ config->resources.push_back(resource);
+
+ DomainReliabilityConfig::Collector* collector;
+ collector = new DomainReliabilityConfig::Collector();
+ collector->upload_url = GURL("https://example/upload");
+ EXPECT_TRUE(collector->IsValid());
+ config->collectors.push_back(collector);
+
+ config->version = "1";
+ config->valid_until = 1234567890.0;
+ config->domain = "example";
+ EXPECT_TRUE(config->IsValid());
+
+ return scoped_ptr<const DomainReliabilityConfig>(config);
+}
+
+} // namespace
+
class DomainReliabilityMonitorTest : public testing::Test {
protected:
typedef DomainReliabilityMonitor::RequestInfo RequestInfo;
@@ -38,50 +88,17 @@ class DomainReliabilityMonitorTest : public testing::Test {
monitor_(url_request_context_getter_->GetURLRequestContext(),
"test-reporter",
scoped_ptr<MockableTime>(time_)),
- context_(monitor_.AddContextForTesting(CreateConfig())) {}
-
- static scoped_ptr<const DomainReliabilityConfig> CreateConfig() {
- DomainReliabilityConfig* config = new DomainReliabilityConfig();
-
- DomainReliabilityConfig::Resource* resource;
-
- resource = new DomainReliabilityConfig::Resource();
- resource->name = "always_report";
- resource->url_patterns.push_back(
- new std::string("http://example/always_report"));
- resource->success_sample_rate = 1.0;
- resource->failure_sample_rate = 1.0;
- EXPECT_TRUE(resource->IsValid());
- config->resources.push_back(resource);
-
- resource = new DomainReliabilityConfig::Resource();
- resource->name = "never_report";
- resource->url_patterns.push_back(
- new std::string("http://example/never_report"));
- resource->success_sample_rate = 0.0;
- resource->failure_sample_rate = 0.0;
- EXPECT_TRUE(resource->IsValid());
- config->resources.push_back(resource);
-
- DomainReliabilityConfig::Collector* collector;
- collector = new DomainReliabilityConfig::Collector();
- collector->upload_url = GURL("https://example/upload");
- EXPECT_TRUE(collector->IsValid());
- config->collectors.push_back(collector);
-
- config->version = "1";
- config->valid_until = 1234567890.0;
- config->domain = "example";
- EXPECT_TRUE(config->IsValid());
-
- return scoped_ptr<const DomainReliabilityConfig>(config);
- }
+ context_(monitor_.AddContextForTesting(MakeConfig())) {}
- RequestInfo MakeRequestInfo() {
+ static RequestInfo MakeRequestInfo() {
RequestInfo request;
request.status = net::URLRequestStatus();
- request.response_code = 200;
- request.was_cached = false;
+ request.status.set_status(net::URLRequestStatus::SUCCESS);
+ request.status.set_error(net::OK);
+ request.response_info.headers = MakeHttpResponseHeaders(
+ "HTTP/1.1 200 OK\n\n");
+ request.response_info.network_accessed = true;
+ request.response_info.was_fetched_via_proxy = false;
request.load_flags = 0;
request.is_upload = false;
return request;
@@ -120,6 +137,8 @@ TEST_F(DomainReliabilityMonitorTest, NoContextRequest) {
EXPECT_TRUE(CheckNoBeacons(1));
}
+namespace {
+
TEST_F(DomainReliabilityMonitorTest, ContextRequest) {
RequestInfo request = MakeRequestInfo();
request.url = GURL("http://example/always_report");
@@ -141,6 +160,20 @@ TEST_F(DomainReliabilityMonitorTest, ContextRequestWithDoNotSendCookies) {
EXPECT_TRUE(CheckNoBeacons(1));
}
+// Make sure the monitor does not log the proxy's IP if one was used.
+TEST_F(DomainReliabilityMonitorTest, ContextRequestFetchedViaProxy) {
+ RequestInfo request = MakeRequestInfo();
+ request.url = GURL("http://example/always_report");
+ request.response_info.was_fetched_via_proxy = true;
+ OnRequestLegComplete(request);
+
+ BeaconVector beacons;
+ context_->GetQueuedDataForTesting(0, &beacons, NULL, NULL);
+ EXPECT_EQ(1u, beacons.size());
+ EXPECT_EQ("", beacons[0].server_ip);
+ EXPECT_TRUE(CheckNoBeacons(1));
+}
+
Ryan Sleevi 2014/04/30 23:20:14 More things to test: - Cache behaviour (no networ
TEST_F(DomainReliabilityMonitorTest, ContextRequestThatIsUpload) {
RequestInfo request = MakeRequestInfo();
request.url = GURL("http://example/always_report");
@@ -167,4 +200,6 @@ TEST_F(DomainReliabilityMonitorTest, AddBakedInConfigs) {
EXPECT_EQ(num_baked_in_configs + 1, monitor_.contexts_size_for_testing());
}
+} // namespace
+
} // namespace domain_reliability

Powered by Google App Engine
This is Rietveld 408576698