Commit e67174c1 authored by Ryan Hamilton's avatar Ryan Hamilton Committed by Commit Bot

Refactor URLRequestQuicTest to avoid using string literals for path

and to explicilty initialize the cache instead of calling
InitializeBackend with the cache directory (thus removing a layer of
indirection for test expectations).

Change-Id: Icd528007dbd7d26d2eed119272d7acbf080b774f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1958566Reviewed-by: default avatarRenjie Tang <renjietang@chromium.org>
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#723027}
parent c25a324c
...@@ -48,6 +48,19 @@ const char kHelloPath[] = "/hello.txt"; ...@@ -48,6 +48,19 @@ const char kHelloPath[] = "/hello.txt";
const char kHelloBodyValue[] = "Hello from QUIC Server"; const char kHelloBodyValue[] = "Hello from QUIC Server";
const int kHelloStatus = 200; const int kHelloStatus = 200;
// Used as a simple pushed response from the server.
const char kKittenPath[] = "/kitten-1.jpg";
const char kKittenBodyValue[] = "Kitten image";
// Used as a simple pushed response from the server.
const char kFaviconPath[] = "/favicon.ico";
const char kFaviconBodyValue[] = "Favion";
// Used as a simple pushed response from the server.
const char kIndexPath[] = "/index2.html";
const char kIndexBodyValue[] = "Hello from QUIC Server";
const int kIndexStatus = 200;
class URLRequestQuicTest : public TestWithTaskEnvironment { class URLRequestQuicTest : public TestWithTaskEnvironment {
protected: protected:
URLRequestQuicTest() : context_(new TestURLRequestContext(true)) { URLRequestQuicTest() : context_(new TestURLRequestContext(true)) {
...@@ -134,14 +147,32 @@ class URLRequestQuicTest : public TestWithTaskEnvironment { ...@@ -134,14 +147,32 @@ class URLRequestQuicTest : public TestWithTaskEnvironment {
} }
protected: protected:
// Returns a fully-qualified URL for |path| on the test server.
std::string UrlFromPath(base::StringPiece path) {
return std::string("https://") + std::string(kTestServerHost) +
std::string(path);
}
RecordingTestNetLog net_log_; RecordingTestNetLog net_log_;
private: private:
void StartQuicServer() { void StartQuicServer() {
// Set up in-memory cache. // Set up in-memory cache.
// Add the simply hello response.
memory_cache_backend_.AddSimpleResponse(kTestServerHost, kHelloPath, memory_cache_backend_.AddSimpleResponse(kTestServerHost, kHelloPath,
kHelloStatus, kHelloBodyValue); kHelloStatus, kHelloBodyValue);
memory_cache_backend_.InitializeBackend(ServerPushCacheDirectory());
// Now set up index so that it pushes kitten and favicon.
quic::QuicBackendResponse::ServerPushInfo push_info1(
quic::QuicUrl(UrlFromPath(kKittenPath)), spdy::SpdyHeaderBlock(),
spdy::kV3LowestPriority, kKittenBodyValue);
quic::QuicBackendResponse::ServerPushInfo push_info2(
quic::QuicUrl(UrlFromPath(kFaviconPath)), spdy::SpdyHeaderBlock(),
spdy::kV3LowestPriority, kFaviconBodyValue);
memory_cache_backend_.AddSimpleResponseWithServerPushResources(
kTestServerHost, kIndexPath, kIndexStatus, kIndexBodyValue,
{push_info1, push_info2});
quic::QuicConfig config; quic::QuicConfig config;
// Set up server certs. // Set up server certs.
std::unique_ptr<net::ProofSourceChromium> proof_source( std::unique_ptr<net::ProofSourceChromium> proof_source(
...@@ -258,10 +289,8 @@ class WaitForCompletionNetworkDelegate : public net::TestNetworkDelegate { ...@@ -258,10 +289,8 @@ class WaitForCompletionNetworkDelegate : public net::TestNetworkDelegate {
TEST_F(URLRequestQuicTest, TestGetRequest) { TEST_F(URLRequestQuicTest, TestGetRequest) {
Init(); Init();
CheckLoadTimingDelegate delegate(false); CheckLoadTimingDelegate delegate(false);
std::string url =
base::StringPrintf("https://%s%s", kTestServerHost, kHelloPath);
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(UrlFromPath(kHelloPath)), DEFAULT_PRIORITY, &delegate);
request->Start(); request->Start();
ASSERT_TRUE(request->is_pending()); ASSERT_TRUE(request->is_pending());
...@@ -290,10 +319,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) { ...@@ -290,10 +319,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) {
// Send a request to the pushed url: /kitten-1.jpg to pull the resource into // Send a request to the pushed url: /kitten-1.jpg to pull the resource into
// cache. // cache.
CheckLoadTimingDelegate delegate_0(false); CheckLoadTimingDelegate delegate_0(false);
std::string url_0 = std::unique_ptr<URLRequest> request_0 = CreateRequest(
base::StringPrintf("https://%s%s", kTestServerHost, "/kitten-1.jpg"); GURL(UrlFromPath(kKittenPath)), DEFAULT_PRIORITY, &delegate_0);
std::unique_ptr<URLRequest> request_0 =
CreateRequest(GURL(url_0), DEFAULT_PRIORITY, &delegate_0);
request_0->set_network_isolation_key(kTestNetworkIsolationKey); request_0->set_network_isolation_key(kTestNetworkIsolationKey);
request_0->Start(); request_0->Start();
...@@ -309,10 +336,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) { ...@@ -309,10 +336,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) {
// Send a request to /index2.html which pushes /kitten-1.jpg and /favicon.ico. // Send a request to /index2.html which pushes /kitten-1.jpg and /favicon.ico.
// Should cancel push for /kitten-1.jpg. // Should cancel push for /kitten-1.jpg.
CheckLoadTimingDelegate delegate(true); CheckLoadTimingDelegate delegate(true);
std::string url =
base::StringPrintf("https://%s%s", kTestServerHost, "/index2.html");
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(UrlFromPath(kIndexPath)), DEFAULT_PRIORITY, &delegate);
request->set_network_isolation_key(kTestNetworkIsolationKey); request->set_network_isolation_key(kTestNetworkIsolationKey);
request->Start(); request->Start();
...@@ -332,10 +357,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) { ...@@ -332,10 +357,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_SomeCached) {
ASSERT_EQ(4u, entries.size()); ASSERT_EQ(4u, entries.size());
std::string value; std::string value;
std::string push_url_1 = std::string push_url_1 = UrlFromPath(kKittenPath);
base::StringPrintf("https://%s%s", kTestServerHost, "/kitten-1.jpg"); std::string push_url_2 = UrlFromPath(kFaviconPath);
std::string push_url_2 =
base::StringPrintf("https://%s%s", kTestServerHost, "/favicon.ico");
const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1); const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1);
EXPECT_TRUE(source_1.IsValid()); EXPECT_TRUE(source_1.IsValid());
...@@ -378,10 +401,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) { ...@@ -378,10 +401,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) {
// Send a request to the pushed url: /kitten-1.jpg to pull the resource into // Send a request to the pushed url: /kitten-1.jpg to pull the resource into
// cache. // cache.
CheckLoadTimingDelegate delegate_0(false); CheckLoadTimingDelegate delegate_0(false);
std::string url_0 = std::unique_ptr<URLRequest> request_0 = CreateRequest(
base::StringPrintf("https://%s%s", kTestServerHost, "/kitten-1.jpg"); GURL(UrlFromPath(kKittenPath)), DEFAULT_PRIORITY, &delegate_0);
std::unique_ptr<URLRequest> request_0 =
CreateRequest(GURL(url_0), DEFAULT_PRIORITY, &delegate_0);
request_0->set_network_isolation_key(kTestNetworkIsolationKey); request_0->set_network_isolation_key(kTestNetworkIsolationKey);
request_0->Start(); request_0->Start();
...@@ -397,10 +418,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) { ...@@ -397,10 +418,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) {
// Send a request to the pushed url: /favicon.ico to pull the resource into // Send a request to the pushed url: /favicon.ico to pull the resource into
// cache. // cache.
CheckLoadTimingDelegate delegate_1(true); CheckLoadTimingDelegate delegate_1(true);
std::string url_1 = std::unique_ptr<URLRequest> request_1 = CreateRequest(
base::StringPrintf("https://%s%s", kTestServerHost, "/favicon.ico"); GURL(UrlFromPath(kFaviconPath)), DEFAULT_PRIORITY, &delegate_1);
std::unique_ptr<URLRequest> request_1 =
CreateRequest(GURL(url_1), DEFAULT_PRIORITY, &delegate_1);
request_1->set_network_isolation_key(kTestNetworkIsolationKey); request_1->set_network_isolation_key(kTestNetworkIsolationKey);
request_1->Start(); request_1->Start();
...@@ -416,10 +435,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) { ...@@ -416,10 +435,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) {
// Send a request to /index2.html which pushes /kitten-1.jpg and /favicon.ico. // Send a request to /index2.html which pushes /kitten-1.jpg and /favicon.ico.
// Should cancel push for both pushed resources, since they're already cached. // Should cancel push for both pushed resources, since they're already cached.
CheckLoadTimingDelegate delegate(true); CheckLoadTimingDelegate delegate(true);
std::string url =
base::StringPrintf("https://%s%s", kTestServerHost, "/index2.html");
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(UrlFromPath(kIndexPath)), DEFAULT_PRIORITY, &delegate);
request->set_network_isolation_key(kTestNetworkIsolationKey); request->set_network_isolation_key(kTestNetworkIsolationKey);
request->Start(); request->Start();
...@@ -439,10 +456,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) { ...@@ -439,10 +456,8 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) {
EXPECT_EQ(4u, entries.size()); EXPECT_EQ(4u, entries.size());
std::string value; std::string value;
std::string push_url_1 = std::string push_url_1 = UrlFromPath(kKittenPath);
base::StringPrintf("https://%s%s", kTestServerHost, "/kitten-1.jpg"); std::string push_url_2 = UrlFromPath(kFaviconPath);
std::string push_url_2 =
base::StringPrintf("https://%s%s", kTestServerHost, "/favicon.ico");
const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1); const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1);
EXPECT_TRUE(source_1.IsValid()); EXPECT_TRUE(source_1.IsValid());
...@@ -468,11 +483,10 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) { ...@@ -468,11 +483,10 @@ TEST_F(URLRequestQuicTest, CancelPushIfCached_AllCached) {
TEST_F(URLRequestQuicTest, DoNotCancelPushIfNotFoundInCache) { TEST_F(URLRequestQuicTest, DoNotCancelPushIfNotFoundInCache) {
Init(); Init();
// Send a request to /index2.hmtl which pushes /kitten-1.jpg and /favicon.ico // Send a request to /index2.html which pushes /kitten-1.jpg and /favicon.ico
// and shouldn't cancel any since neither is in cache. // and shouldn't cancel any since neither is in cache.
CheckLoadTimingDelegate delegate(false); CheckLoadTimingDelegate delegate(false);
std::string url = std::string url = UrlFromPath(kIndexPath);
base::StringPrintf("https://%s%s", kTestServerHost, "/index2.html");
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate);
...@@ -492,10 +506,8 @@ TEST_F(URLRequestQuicTest, DoNotCancelPushIfNotFoundInCache) { ...@@ -492,10 +506,8 @@ TEST_F(URLRequestQuicTest, DoNotCancelPushIfNotFoundInCache) {
EXPECT_EQ(4u, entries.size()); EXPECT_EQ(4u, entries.size());
std::string value; std::string value;
std::string push_url_1 = std::string push_url_1 = UrlFromPath(kKittenPath);
base::StringPrintf("https://%s%s", kTestServerHost, "/kitten-1.jpg"); std::string push_url_2 = UrlFromPath(kFaviconPath);
std::string push_url_2 =
base::StringPrintf("https://%s%s", kTestServerHost, "/favicon.ico");
const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1); const NetLogSource source_1 = FindPushUrlSource(entries, push_url_1);
EXPECT_TRUE(source_1.IsValid()); EXPECT_TRUE(source_1.IsValid());
...@@ -524,15 +536,13 @@ TEST_F(URLRequestQuicTest, TestTwoRequests) { ...@@ -524,15 +536,13 @@ TEST_F(URLRequestQuicTest, TestTwoRequests) {
Init(); Init();
CheckLoadTimingDelegate delegate(false); CheckLoadTimingDelegate delegate(false);
delegate.set_on_complete(base::DoNothing()); delegate.set_on_complete(base::DoNothing());
std::string url =
base::StringPrintf("https://%s%s", kTestServerHost, kHelloPath);
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(UrlFromPath(kHelloPath)), DEFAULT_PRIORITY, &delegate);
CheckLoadTimingDelegate delegate2(true); CheckLoadTimingDelegate delegate2(true);
delegate2.set_on_complete(base::DoNothing()); delegate2.set_on_complete(base::DoNothing());
std::unique_ptr<URLRequest> request2 = std::unique_ptr<URLRequest> request2 = CreateRequest(
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate2); GURL(UrlFromPath(kHelloPath)), DEFAULT_PRIORITY, &delegate2);
request->Start(); request->Start();
request2->Start(); request2->Start();
ASSERT_TRUE(request->is_pending()); ASSERT_TRUE(request->is_pending());
...@@ -553,10 +563,8 @@ TEST_F(URLRequestQuicTest, RequestHeadersCallback) { ...@@ -553,10 +563,8 @@ TEST_F(URLRequestQuicTest, RequestHeadersCallback) {
HttpRequestHeaders extra_headers; HttpRequestHeaders extra_headers;
extra_headers.SetHeader("X-Foo", "bar"); extra_headers.SetHeader("X-Foo", "bar");
std::string url =
base::StringPrintf("https://%s%s", kTestServerHost, kHelloPath);
std::unique_ptr<URLRequest> request = std::unique_ptr<URLRequest> request =
CreateRequest(GURL(url), DEFAULT_PRIORITY, &delegate); CreateRequest(GURL(UrlFromPath(kHelloPath)), DEFAULT_PRIORITY, &delegate);
request->SetExtraRequestHeaders(extra_headers); request->SetExtraRequestHeaders(extra_headers);
request->SetRequestHeadersCallback(base::Bind( request->SetRequestHeadersCallback(base::Bind(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment