OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 <algorithm> | 5 #include <algorithm> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 } | 99 } |
100 | 100 |
101 void Start() { | 101 void Start() { |
102 InSequence s; | 102 InSequence s; |
103 EXPECT_CALL(*url_loader_, | 103 EXPECT_CALL(*url_loader_, |
104 loadAsynchronously(Truly(CorrectAcceptEncoding), loader_)); | 104 loadAsynchronously(Truly(CorrectAcceptEncoding), loader_)); |
105 | 105 |
106 loader_->Start(); | 106 loader_->Start(); |
107 } | 107 } |
108 | 108 |
109 void FullResponse(int64 instance_size, bool ok = true) { | 109 void FullResponse(int64_t instance_size, bool ok = true) { |
110 WebURLResponse response(gurl_); | 110 WebURLResponse response(gurl_); |
111 response.setHTTPHeaderField( | 111 response.setHTTPHeaderField( |
112 WebString::fromUTF8("Content-Length"), | 112 WebString::fromUTF8("Content-Length"), |
113 WebString::fromUTF8(base::StringPrintf("%" PRId64, instance_size))); | 113 WebString::fromUTF8(base::StringPrintf("%" PRId64, instance_size))); |
114 response.setExpectedContentLength(instance_size); | 114 response.setExpectedContentLength(instance_size); |
115 response.setHTTPStatusCode(kHttpOK); | 115 response.setHTTPStatusCode(kHttpOK); |
116 loader_->didReceiveResponse(url_loader_, response); | 116 loader_->didReceiveResponse(url_loader_, response); |
117 | 117 |
118 if (ok) { | 118 if (ok) { |
119 EXPECT_EQ(instance_size, url_data_->length()); | 119 EXPECT_EQ(instance_size, url_data_->length()); |
120 } | 120 } |
121 | 121 |
122 EXPECT_FALSE(url_data_->range_supported()); | 122 EXPECT_FALSE(url_data_->range_supported()); |
123 } | 123 } |
124 | 124 |
125 void PartialResponse(int64 first_position, | 125 void PartialResponse(int64_t first_position, |
126 int64 last_position, | 126 int64_t last_position, |
127 int64 instance_size) { | 127 int64_t instance_size) { |
128 PartialResponse(first_position, last_position, instance_size, false, true); | 128 PartialResponse(first_position, last_position, instance_size, false, true); |
129 } | 129 } |
130 | 130 |
131 void PartialResponse(int64 first_position, | 131 void PartialResponse(int64_t first_position, |
132 int64 last_position, | 132 int64_t last_position, |
133 int64 instance_size, | 133 int64_t instance_size, |
134 bool chunked, | 134 bool chunked, |
135 bool accept_ranges) { | 135 bool accept_ranges) { |
136 WebURLResponse response(gurl_); | 136 WebURLResponse response(gurl_); |
137 response.setHTTPHeaderField( | 137 response.setHTTPHeaderField( |
138 WebString::fromUTF8("Content-Range"), | 138 WebString::fromUTF8("Content-Range"), |
139 WebString::fromUTF8( | 139 WebString::fromUTF8( |
140 base::StringPrintf("bytes " | 140 base::StringPrintf("bytes " |
141 "%" PRId64 "-%" PRId64 "/%" PRId64, | 141 "%" PRId64 "-%" PRId64 "/%" PRId64, |
142 first_position, last_position, instance_size))); | 142 first_position, last_position, instance_size))); |
143 | 143 |
144 // HTTP 1.1 doesn't permit Content-Length with Transfer-Encoding: chunked. | 144 // HTTP 1.1 doesn't permit Content-Length with Transfer-Encoding: chunked. |
145 int64 content_length = -1; | 145 int64_t content_length = -1; |
146 if (chunked) { | 146 if (chunked) { |
147 response.setHTTPHeaderField(WebString::fromUTF8("Transfer-Encoding"), | 147 response.setHTTPHeaderField(WebString::fromUTF8("Transfer-Encoding"), |
148 WebString::fromUTF8("chunked")); | 148 WebString::fromUTF8("chunked")); |
149 } else { | 149 } else { |
150 content_length = last_position - first_position + 1; | 150 content_length = last_position - first_position + 1; |
151 } | 151 } |
152 response.setExpectedContentLength(content_length); | 152 response.setExpectedContentLength(content_length); |
153 | 153 |
154 // A server isn't required to return Accept-Ranges even though it might. | 154 // A server isn't required to return Accept-Ranges even though it might. |
155 if (accept_ranges) { | 155 if (accept_ranges) { |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 loader_->didReceiveData( | 192 loader_->didReceiveData( |
193 url_loader_, reinterpret_cast<char*>(data_ + position), size, size); | 193 url_loader_, reinterpret_cast<char*>(data_ + position), size, size); |
194 } | 194 } |
195 | 195 |
196 void WriteData(int size) { | 196 void WriteData(int size) { |
197 scoped_ptr<char[]> data(new char[size]); | 197 scoped_ptr<char[]> data(new char[size]); |
198 loader_->didReceiveData(url_loader_, data.get(), size, size); | 198 loader_->didReceiveData(url_loader_, data.get(), size, size); |
199 } | 199 } |
200 | 200 |
201 // Verifies that data in buffer[0...size] is equal to data_[pos...pos+size]. | 201 // Verifies that data in buffer[0...size] is equal to data_[pos...pos+size]. |
202 void VerifyBuffer(uint8* buffer, int pos, int size) { | 202 void VerifyBuffer(uint8_t* buffer, int pos, int size) { |
203 EXPECT_EQ(0, memcmp(buffer, data_ + pos, size)); | 203 EXPECT_EQ(0, memcmp(buffer, data_ + pos, size)); |
204 } | 204 } |
205 | 205 |
206 bool HasActiveLoader() { return loader_->active_loader_; } | 206 bool HasActiveLoader() { return loader_->active_loader_; } |
207 MOCK_METHOD1(RedirectCallback, void(const scoped_refptr<UrlData>&)); | 207 MOCK_METHOD1(RedirectCallback, void(const scoped_refptr<UrlData>&)); |
208 | 208 |
209 void SetUrlData(const scoped_refptr<UrlData>& new_url_data) { | 209 void SetUrlData(const scoped_refptr<UrlData>& new_url_data) { |
210 url_data_ = new_url_data; | 210 url_data_ = new_url_data; |
211 } | 211 } |
212 | 212 |
213 protected: | 213 protected: |
214 GURL gurl_; | 214 GURL gurl_; |
215 int64 first_position_; | 215 int64_t first_position_; |
216 | 216 |
217 scoped_ptr<UrlIndex> url_index_; | 217 scoped_ptr<UrlIndex> url_index_; |
218 scoped_refptr<UrlData> url_data_; | 218 scoped_refptr<UrlData> url_data_; |
219 scoped_refptr<UrlData> redirected_to_; | 219 scoped_refptr<UrlData> redirected_to_; |
220 // The loader is owned by the UrlData above. | 220 // The loader is owned by the UrlData above. |
221 ResourceMultiBufferDataProvider* loader_; | 221 ResourceMultiBufferDataProvider* loader_; |
222 NiceMock<MockWebURLLoader>* url_loader_; | 222 NiceMock<MockWebURLLoader>* url_loader_; |
223 | 223 |
224 MockWebFrameClient client_; | 224 MockWebFrameClient client_; |
225 WebView* view_; | 225 WebView* view_; |
226 WebLocalFrame* frame_; | 226 WebLocalFrame* frame_; |
227 | 227 |
228 base::MessageLoop message_loop_; | 228 base::MessageLoop message_loop_; |
229 | 229 |
230 uint8 data_[kDataSize]; | 230 uint8_t data_[kDataSize]; |
231 | 231 |
232 private: | 232 private: |
233 DISALLOW_COPY_AND_ASSIGN(ResourceMultiBufferDataProviderTest); | 233 DISALLOW_COPY_AND_ASSIGN(ResourceMultiBufferDataProviderTest); |
234 }; | 234 }; |
235 | 235 |
236 TEST_F(ResourceMultiBufferDataProviderTest, StartStop) { | 236 TEST_F(ResourceMultiBufferDataProviderTest, StartStop) { |
237 Initialize(kHttpUrl, 0); | 237 Initialize(kHttpUrl, 0); |
238 Start(); | 238 Start(); |
239 StopWhenLoad(); | 239 StopWhenLoad(); |
240 } | 240 } |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
321 TEST_F(ResourceMultiBufferDataProviderTest, TestRedirects) { | 321 TEST_F(ResourceMultiBufferDataProviderTest, TestRedirects) { |
322 // Test redirect. | 322 // Test redirect. |
323 Initialize(kHttpUrl, 0); | 323 Initialize(kHttpUrl, 0); |
324 Start(); | 324 Start(); |
325 Redirect(kHttpRedirect); | 325 Redirect(kHttpRedirect); |
326 FullResponse(1024); | 326 FullResponse(1024); |
327 StopWhenLoad(); | 327 StopWhenLoad(); |
328 } | 328 } |
329 | 329 |
330 } // namespace media | 330 } // namespace media |
OLD | NEW |