summaryrefslogtreecommitdiffstats
path: root/net/proxy/single_threaded_proxy_resolver_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/proxy/single_threaded_proxy_resolver_unittest.cc')
-rw-r--r--net/proxy/single_threaded_proxy_resolver_unittest.cc43
1 files changed, 27 insertions, 16 deletions
diff --git a/net/proxy/single_threaded_proxy_resolver_unittest.cc b/net/proxy/single_threaded_proxy_resolver_unittest.cc
index da21ff1..7718602 100644
--- a/net/proxy/single_threaded_proxy_resolver_unittest.cc
+++ b/net/proxy/single_threaded_proxy_resolver_unittest.cc
@@ -4,6 +4,7 @@
#include "base/waitable_event.h"
#include "googleurl/src/gurl.h"
+#include "net/base/load_log.h"
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/proxy/proxy_info.h"
@@ -28,7 +29,8 @@ class MockProxyResolver : public ProxyResolver {
virtual int GetProxyForURL(const GURL& query_url,
ProxyInfo* results,
CompletionCallback* callback,
- RequestHandle* request) {
+ RequestHandle* request,
+ LoadLog* load_log) {
if (resolve_latency_ms_)
PlatformThread::Sleep(resolve_latency_ms_);
@@ -37,6 +39,9 @@ class MockProxyResolver : public ProxyResolver {
EXPECT_EQ(NULL, callback);
EXPECT_EQ(NULL, request);
+ // Write something into |load_log| (doesn't really have any meaning.)
+ LoadLog::BeginEvent(load_log, LoadLog::TYPE_PROXY_RESOLVER_V8_DNS_RESOLVE);
+
results->UseNamedProxy(query_url.host());
// Return a success code which represents the request's order.
@@ -105,14 +110,15 @@ class BlockableProxyResolver : public MockProxyResolver {
virtual int GetProxyForURL(const GURL& query_url,
ProxyInfo* results,
CompletionCallback* callback,
- RequestHandle* request) {
+ RequestHandle* request,
+ LoadLog* load_log) {
if (should_block_) {
blocked_.Signal();
unblocked_.Wait();
}
return MockProxyResolver::GetProxyForURL(
- query_url, results, callback, request);
+ query_url, results, callback, request, load_log);
}
private:
@@ -140,9 +146,10 @@ TEST(SingleThreadedProxyResolverTest, Basic) {
// Start request 0.
TestCompletionCallback callback0;
+ scoped_refptr<LoadLog> log0(new LoadLog);
ProxyInfo results0;
rv = resolver->GetProxyForURL(
- GURL("http://request0"), &results0, &callback0, NULL);
+ GURL("http://request0"), &results0, &callback0, NULL, log0);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Wait for request 0 to finish.
@@ -150,24 +157,28 @@ TEST(SingleThreadedProxyResolverTest, Basic) {
EXPECT_EQ(0, rv);
EXPECT_EQ("PROXY request0:80", results0.ToPacString());
+ // The mock proxy resolver should have written 1 log entry. And
+ // on completion, this should have been copied into |log0|.
+ EXPECT_EQ(1u, log0->events().size());
+
// Start 3 more requests (request1 to request3).
TestCompletionCallback callback1;
ProxyInfo results1;
rv = resolver->GetProxyForURL(
- GURL("http://request1"), &results1, &callback1, NULL);
+ GURL("http://request1"), &results1, &callback1, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback2;
ProxyInfo results2;
rv = resolver->GetProxyForURL(
- GURL("http://request2"), &results2, &callback2, NULL);
+ GURL("http://request2"), &results2, &callback2, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback3;
ProxyInfo results3;
rv = resolver->GetProxyForURL(
- GURL("http://request3"), &results3, &callback3, NULL);
+ GURL("http://request3"), &results3, &callback3, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Wait for the requests to finish (they must finish in the order they were
@@ -203,7 +214,7 @@ TEST(SingleThreadedProxyResolverTest, CancelRequest) {
TestCompletionCallback callback0;
ProxyInfo results0;
rv = resolver->GetProxyForURL(
- GURL("http://request0"), &results0, &callback0, &request0);
+ GURL("http://request0"), &results0, &callback0, &request0, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Wait until requests 0 reaches the worker thread.
@@ -214,20 +225,20 @@ TEST(SingleThreadedProxyResolverTest, CancelRequest) {
TestCompletionCallback callback1;
ProxyInfo results1;
rv = resolver->GetProxyForURL(
- GURL("http://request1"), &results1, &callback1, NULL);
+ GURL("http://request1"), &results1, &callback1, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
ProxyResolver::RequestHandle request2;
TestCompletionCallback callback2;
ProxyInfo results2;
rv = resolver->GetProxyForURL(
- GURL("http://request2"), &results2, &callback2, &request2);
+ GURL("http://request2"), &results2, &callback2, &request2, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback3;
ProxyInfo results3;
rv = resolver->GetProxyForURL(
- GURL("http://request3"), &results3, &callback3, NULL);
+ GURL("http://request3"), &results3, &callback3, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Cancel request0 (inprogress) and request2 (pending).
@@ -272,19 +283,19 @@ TEST(SingleThreadedProxyResolverTest, CancelRequestByDeleting) {
TestCompletionCallback callback0;
ProxyInfo results0;
rv = resolver->GetProxyForURL(
- GURL("http://request0"), &results0, &callback0, NULL);
+ GURL("http://request0"), &results0, &callback0, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback1;
ProxyInfo results1;
rv = resolver->GetProxyForURL(
- GURL("http://request1"), &results1, &callback1, NULL);
+ GURL("http://request1"), &results1, &callback1, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
TestCompletionCallback callback2;
ProxyInfo results2;
rv = resolver->GetProxyForURL(
- GURL("http://request2"), &results2, &callback2, NULL);
+ GURL("http://request2"), &results2, &callback2, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Wait until request 0 reaches the worker thread.
@@ -327,7 +338,7 @@ TEST(SingleThreadedProxyResolverTest, CancelSetPacScript) {
TestCompletionCallback callback0;
ProxyInfo results0;
rv = resolver->GetProxyForURL(
- GURL("http://request0"), &results0, &callback0, &request0);
+ GURL("http://request0"), &results0, &callback0, &request0, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Wait until requests 0 reaches the worker thread.
@@ -346,7 +357,7 @@ TEST(SingleThreadedProxyResolverTest, CancelSetPacScript) {
TestCompletionCallback callback1;
ProxyInfo results1;
rv = resolver->GetProxyForURL(
- GURL("http://request1"), &results1, &callback1, NULL);
+ GURL("http://request1"), &results1, &callback1, NULL, NULL);
EXPECT_EQ(ERR_IO_PENDING, rv);
// Unblock the worker thread so the requests can continue running.