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

Side by Side Diff: components/image_fetcher/core/image_data_fetcher_unittest.cc

Issue 2793983002: [ImageFetcher] Return http response headers (Closed)
Patch Set: Compare headers as well Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/image_fetcher/core/image_data_fetcher.h" 5 #include "components/image_fetcher/core/image_data_fetcher.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 56
57 private: 57 private:
58 DISALLOW_COPY_AND_ASSIGN(ImageDataFetcherTest); 58 DISALLOW_COPY_AND_ASSIGN(ImageDataFetcherTest);
59 }; 59 };
60 60
61 TEST_F(ImageDataFetcherTest, FetchImageData) { 61 TEST_F(ImageDataFetcherTest, FetchImageData) {
62 image_data_fetcher_.FetchImageData( 62 image_data_fetcher_.FetchImageData(
63 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched, 63 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched,
64 base::Unretained(this))); 64 base::Unretained(this)));
65 65
66 std::string raw_header =
67 "HTTP/1.1 200 OK\n"
68 "Content-type: image/png\n\n";
69 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
70 scoped_refptr<net::HttpResponseHeaders> headers(
71 new net::HttpResponseHeaders(raw_header));
72
66 RequestMetadata expected_metadata; 73 RequestMetadata expected_metadata;
67 expected_metadata.mime_type = std::string("image/png"); 74 expected_metadata.mime_type = std::string("image/png");
68 expected_metadata.http_response_code = net::HTTP_OK; 75 expected_metadata.http_response_code = net::HTTP_OK;
76 expected_metadata.http_response_headers = headers.get();
69 EXPECT_CALL(*this, OnImageDataFetched(std::string(kURLResponseData), 77 EXPECT_CALL(*this, OnImageDataFetched(std::string(kURLResponseData),
70 expected_metadata)); 78 expected_metadata));
71 79
72 // Get and configure the TestURLFetcher. 80 // Get and configure the TestURLFetcher.
73 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0); 81 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0);
74 ASSERT_NE(nullptr, test_url_fetcher); 82 ASSERT_NE(nullptr, test_url_fetcher);
75 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() & net::LOAD_DO_NOT_SEND_COOKIES); 83 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() & net::LOAD_DO_NOT_SEND_COOKIES);
76 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() & net::LOAD_DO_NOT_SAVE_COOKIES); 84 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() & net::LOAD_DO_NOT_SAVE_COOKIES);
77 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() & 85 EXPECT_TRUE(test_url_fetcher->GetLoadFlags() &
78 net::LOAD_DO_NOT_SEND_AUTH_DATA); 86 net::LOAD_DO_NOT_SEND_AUTH_DATA);
79 test_url_fetcher->set_status( 87 test_url_fetcher->set_status(
80 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK)); 88 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK));
81 test_url_fetcher->SetResponseString(kURLResponseData); 89 test_url_fetcher->SetResponseString(kURLResponseData);
82 test_url_fetcher->set_response_code(net::HTTP_OK); 90 test_url_fetcher->set_response_code(net::HTTP_OK);
83
84 std::string raw_header =
85 "HTTP/1.1 200 OK\n"
86 "Content-type: image/png\n\n";
87 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
88 scoped_refptr<net::HttpResponseHeaders> headers(
89 new net::HttpResponseHeaders(raw_header));
90
91 test_url_fetcher->set_response_headers(headers); 91 test_url_fetcher->set_response_headers(headers);
92 92
93 // Call the URLFetcher delegate to continue the test. 93 // Call the URLFetcher delegate to continue the test.
94 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher); 94 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher);
95 } 95 }
96 96
97 TEST_F(ImageDataFetcherTest, FetchImageData_FromCache) { 97 TEST_F(ImageDataFetcherTest, FetchImageData_FromCache) {
98 image_data_fetcher_.FetchImageData( 98 image_data_fetcher_.FetchImageData(
99 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched, 99 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched,
100 base::Unretained(this))); 100 base::Unretained(this)));
101 101
102 std::string raw_header =
103 "HTTP/1.1 200 OK\n"
104 "Content-type: image/png\n\n";
105 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
106 scoped_refptr<net::HttpResponseHeaders> headers(
107 new net::HttpResponseHeaders(raw_header));
108
102 RequestMetadata expected_metadata; 109 RequestMetadata expected_metadata;
103 expected_metadata.mime_type = std::string("image/png"); 110 expected_metadata.mime_type = std::string("image/png");
104 expected_metadata.http_response_code = net::HTTP_OK; 111 expected_metadata.http_response_code = net::HTTP_OK;
105 expected_metadata.from_http_cache = true; 112 expected_metadata.from_http_cache = true;
113 expected_metadata.http_response_headers = headers.get();
106 EXPECT_CALL(*this, OnImageDataFetched(std::string(kURLResponseData), 114 EXPECT_CALL(*this, OnImageDataFetched(std::string(kURLResponseData),
107 expected_metadata)); 115 expected_metadata));
108 116
109 // Get and configure the TestURLFetcher. 117 // Get and configure the TestURLFetcher.
110 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0); 118 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0);
111 ASSERT_NE(nullptr, test_url_fetcher); 119 ASSERT_NE(nullptr, test_url_fetcher);
112 test_url_fetcher->set_status( 120 test_url_fetcher->set_status(
113 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK)); 121 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK));
114 test_url_fetcher->SetResponseString(kURLResponseData); 122 test_url_fetcher->SetResponseString(kURLResponseData);
115 test_url_fetcher->set_response_code(net::HTTP_OK); 123 test_url_fetcher->set_response_code(net::HTTP_OK);
116 test_url_fetcher->set_was_cached(true); 124 test_url_fetcher->set_was_cached(true);
117
118 std::string raw_header =
119 "HTTP/1.1 200 OK\n"
120 "Content-type: image/png\n\n";
121 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
122 scoped_refptr<net::HttpResponseHeaders> headers(
123 new net::HttpResponseHeaders(raw_header));
124
125 test_url_fetcher->set_response_headers(headers); 125 test_url_fetcher->set_response_headers(headers);
126 126
127 // Call the URLFetcher delegate to continue the test. 127 // Call the URLFetcher delegate to continue the test.
128 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher); 128 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher);
129 } 129 }
130 130
131 TEST_F(ImageDataFetcherTest, FetchImageData_NotFound) { 131 TEST_F(ImageDataFetcherTest, FetchImageData_NotFound) {
132 image_data_fetcher_.FetchImageData( 132 image_data_fetcher_.FetchImageData(
133 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched, 133 GURL(kImageURL), base::Bind(&ImageDataFetcherTest::OnImageDataFetched,
134 base::Unretained(this))); 134 base::Unretained(this)));
135 135
136 std::string raw_header =
137 "HTTP/1.1 404 Not Found\n"
138 "Content-type: image/png\n\n";
139 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
140 scoped_refptr<net::HttpResponseHeaders> headers(
141 new net::HttpResponseHeaders(raw_header));
142
136 RequestMetadata expected_metadata; 143 RequestMetadata expected_metadata;
137 expected_metadata.mime_type = std::string("image/png"); 144 expected_metadata.mime_type = std::string("image/png");
138 expected_metadata.http_response_code = net::HTTP_NOT_FOUND; 145 expected_metadata.http_response_code = net::HTTP_NOT_FOUND;
146 expected_metadata.http_response_headers = headers.get();
139 // For 404, expect an empty result even though correct image data is sent. 147 // For 404, expect an empty result even though correct image data is sent.
140 EXPECT_CALL(*this, OnImageDataFetched(std::string(), expected_metadata)); 148 EXPECT_CALL(*this, OnImageDataFetched(std::string(), expected_metadata));
141 149
142 // Get and configure the TestURLFetcher. 150 // Get and configure the TestURLFetcher.
143 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0); 151 net::TestURLFetcher* test_url_fetcher = fetcher_factory_.GetFetcherByID(0);
144 ASSERT_NE(nullptr, test_url_fetcher); 152 ASSERT_NE(nullptr, test_url_fetcher);
145 test_url_fetcher->set_status( 153 test_url_fetcher->set_status(
146 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK)); 154 net::URLRequestStatus(net::URLRequestStatus::SUCCESS, net::OK));
147 test_url_fetcher->SetResponseString(kURLResponseData); 155 test_url_fetcher->SetResponseString(kURLResponseData);
148
149 std::string raw_header =
150 "HTTP/1.1 404 Not Found\n"
151 "Content-type: image/png\n\n";
152 std::replace(raw_header.begin(), raw_header.end(), '\n', '\0');
153 scoped_refptr<net::HttpResponseHeaders> headers(
154 new net::HttpResponseHeaders(raw_header));
155
156 test_url_fetcher->set_response_headers(headers); 156 test_url_fetcher->set_response_headers(headers);
157 157
158 // Call the URLFetcher delegate to continue the test. 158 // Call the URLFetcher delegate to continue the test.
159 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher); 159 test_url_fetcher->delegate()->OnURLFetchComplete(test_url_fetcher);
160 } 160 }
161 161
162 TEST_F(ImageDataFetcherTest, FetchImageData_FailedRequest) { 162 TEST_F(ImageDataFetcherTest, FetchImageData_FailedRequest) {
163 image_data_fetcher_.FetchImageData( 163 image_data_fetcher_.FetchImageData(
164 GURL(kImageURL), 164 GURL(kImageURL),
165 base::Bind(&ImageDataFetcherTest::OnImageDataFetchedFailedRequest, 165 base::Bind(&ImageDataFetcherTest::OnImageDataFetchedFailedRequest,
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 ASSERT_NE(nullptr, fetcher_factory_.GetFetcherByID(0)); 259 ASSERT_NE(nullptr, fetcher_factory_.GetFetcherByID(0));
260 260
261 test_url_fetcher->delegate()->OnURLFetchDownloadProgress( 261 test_url_fetcher->delegate()->OnURLFetchDownloadProgress(
262 test_url_fetcher, kMaxDownloadBytes + 1, // Limits are exceeded. 262 test_url_fetcher, kMaxDownloadBytes + 1, // Limits are exceeded.
263 /*total=*/-1, /*current_network_bytes=*/0); 263 /*total=*/-1, /*current_network_bytes=*/0);
264 // ... and be canceled. 264 // ... and be canceled.
265 EXPECT_EQ(nullptr, fetcher_factory_.GetFetcherByID(0)); 265 EXPECT_EQ(nullptr, fetcher_factory_.GetFetcherByID(0));
266 } 266 }
267 267
268 } // namespace image_fetcher 268 } // namespace image_fetcher
OLDNEW
« no previous file with comments | « components/image_fetcher/core/image_data_fetcher.cc ('k') | components/image_fetcher/core/request_metadata.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698