OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 TEST(RawResourceTest, DontIgnoreAcceptForCacheReuse) | 47 TEST(RawResourceTest, DontIgnoreAcceptForCacheReuse) |
48 { | 48 { |
49 ResourceRequest jpegRequest; | 49 ResourceRequest jpegRequest; |
50 jpegRequest.setHTTPAccept("image/jpeg"); | 50 jpegRequest.setHTTPAccept("image/jpeg"); |
51 | 51 |
52 RawResource* jpegResource(RawResource::create(jpegRequest, Resource::Raw)); | 52 RawResource* jpegResource(RawResource::create(jpegRequest, Resource::Raw)); |
53 | 53 |
54 ResourceRequest pngRequest; | 54 ResourceRequest pngRequest; |
55 pngRequest.setHTTPAccept("image/png"); | 55 pngRequest.setHTTPAccept("image/png"); |
56 | 56 |
57 ASSERT_FALSE(jpegResource->canReuse(pngRequest)); | 57 EXPECT_FALSE(jpegResource->canReuse(pngRequest)); |
58 } | 58 } |
59 | 59 |
60 class DummyClient final : public GarbageCollectedFinalized<DummyClient>, public
RawResourceClient { | 60 class DummyClient final : public GarbageCollectedFinalized<DummyClient>, public
RawResourceClient { |
61 USING_GARBAGE_COLLECTED_MIXIN(DummyClient); | 61 USING_GARBAGE_COLLECTED_MIXIN(DummyClient); |
62 public: | 62 public: |
63 DummyClient() : m_called(false), m_numberOfRedirectsReceived(0) {} | 63 DummyClient() : m_called(false), m_numberOfRedirectsReceived(0) {} |
64 ~DummyClient() override {} | 64 ~DummyClient() override {} |
65 | 65 |
66 // ResourceClient implementation. | 66 // ResourceClient implementation. |
67 void notifyFinished(Resource* resource) override | 67 void notifyFinished(Resource* resource) override |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 | 149 |
150 Persistent<DummyClient> client = new DummyClient; | 150 Persistent<DummyClient> client = new DummyClient; |
151 resource->addClient(client); | 151 resource->addClient(client); |
152 | 152 |
153 ResourceResponse revalidatingResponse; | 153 ResourceResponse revalidatingResponse; |
154 revalidatingResponse.setHTTPStatusCode(304); | 154 revalidatingResponse.setHTTPStatusCode(304); |
155 resource->responseReceived(revalidatingResponse, nullptr); | 155 resource->responseReceived(revalidatingResponse, nullptr); |
156 EXPECT_FALSE(resource->isCacheValidator()); | 156 EXPECT_FALSE(resource->isCacheValidator()); |
157 EXPECT_EQ(200, resource->response().httpStatusCode()); | 157 EXPECT_EQ(200, resource->response().httpStatusCode()); |
158 EXPECT_EQ(4u, resource->resourceBuffer()->size()); | 158 EXPECT_EQ(4u, resource->resourceBuffer()->size()); |
159 EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/htm
l,")), resource); | 159 EXPECT_EQ(resource, memoryCache()->resourceForURL(KURL(ParsedURLString, "dat
a:text/html,"))); |
160 memoryCache()->remove(resource); | 160 memoryCache()->remove(resource); |
161 | 161 |
162 resource->removeClient(client); | 162 resource->removeClient(client); |
163 EXPECT_FALSE(resource->isAlive()); | 163 EXPECT_FALSE(resource->isAlive()); |
164 EXPECT_FALSE(client->called()); | 164 EXPECT_FALSE(client->called()); |
165 EXPECT_EQ("abcd", String(client->data().data(), client->data().size())); | 165 EXPECT_EQ("abcd", String(client->data().data(), client->data().size())); |
166 } | 166 } |
167 | 167 |
168 TEST(RawResourceTest, RevalidationSucceededForResourceWithoutBody) | 168 TEST(RawResourceTest, RevalidationSucceededForResourceWithoutBody) |
169 { | 169 { |
170 Resource* resource = RawResource::create(ResourceRequest("data:text/html,"),
Resource::Raw); | 170 Resource* resource = RawResource::create(ResourceRequest("data:text/html,"),
Resource::Raw); |
171 ResourceResponse response; | 171 ResourceResponse response; |
172 response.setHTTPStatusCode(200); | 172 response.setHTTPStatusCode(200); |
173 resource->responseReceived(response, nullptr); | 173 resource->responseReceived(response, nullptr); |
174 resource->finish(); | 174 resource->finish(); |
175 memoryCache()->add(resource); | 175 memoryCache()->add(resource); |
176 | 176 |
177 // Simulate a successful revalidation. | 177 // Simulate a successful revalidation. |
178 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); | 178 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); |
179 | 179 |
180 Persistent<DummyClient> client = new DummyClient; | 180 Persistent<DummyClient> client = new DummyClient; |
181 resource->addClient(client); | 181 resource->addClient(client); |
182 | 182 |
183 ResourceResponse revalidatingResponse; | 183 ResourceResponse revalidatingResponse; |
184 revalidatingResponse.setHTTPStatusCode(304); | 184 revalidatingResponse.setHTTPStatusCode(304); |
185 resource->responseReceived(revalidatingResponse, nullptr); | 185 resource->responseReceived(revalidatingResponse, nullptr); |
186 EXPECT_FALSE(resource->isCacheValidator()); | 186 EXPECT_FALSE(resource->isCacheValidator()); |
187 EXPECT_EQ(200, resource->response().httpStatusCode()); | 187 EXPECT_EQ(200, resource->response().httpStatusCode()); |
188 EXPECT_EQ(nullptr, resource->resourceBuffer()); | 188 EXPECT_FALSE(resource->resourceBuffer()); |
189 EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/htm
l,")), resource); | 189 EXPECT_EQ(resource, memoryCache()->resourceForURL(KURL(ParsedURLString, "dat
a:text/html,"))); |
190 memoryCache()->remove(resource); | 190 memoryCache()->remove(resource); |
191 | 191 |
192 resource->removeClient(client); | 192 resource->removeClient(client); |
193 EXPECT_FALSE(resource->isAlive()); | 193 EXPECT_FALSE(resource->isAlive()); |
194 EXPECT_FALSE(client->called()); | 194 EXPECT_FALSE(client->called()); |
195 EXPECT_EQ(0u, client->data().size()); | 195 EXPECT_EQ(0u, client->data().size()); |
196 } | 196 } |
197 | 197 |
198 TEST(RawResourceTest, RevalidationSucceededUpdateHeaders) | 198 TEST(RawResourceTest, RevalidationSucceededUpdateHeaders) |
199 { | 199 { |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
301 resource->responseReceived(revalidatingResponse, nullptr); | 301 resource->responseReceived(revalidatingResponse, nullptr); |
302 const char data2[4] = "xyz"; | 302 const char data2[4] = "xyz"; |
303 resource->appendData(data2, 3); | 303 resource->appendData(data2, 3); |
304 resource->finish(); | 304 resource->finish(); |
305 EXPECT_FALSE(resource->isCacheValidator()); | 305 EXPECT_FALSE(resource->isCacheValidator()); |
306 EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getStri
ng()); | 306 EXPECT_EQ("https://example.com/1", resource->resourceRequest().url().getStri
ng()); |
307 EXPECT_EQ("https://example.com/2", resource->lastResourceRequest().url().get
String()); | 307 EXPECT_EQ("https://example.com/2", resource->lastResourceRequest().url().get
String()); |
308 EXPECT_FALSE(resource->isCacheValidator()); | 308 EXPECT_FALSE(resource->isCacheValidator()); |
309 EXPECT_EQ(200, resource->response().httpStatusCode()); | 309 EXPECT_EQ(200, resource->response().httpStatusCode()); |
310 EXPECT_EQ(3u, resource->resourceBuffer()->size()); | 310 EXPECT_EQ(3u, resource->resourceBuffer()->size()); |
311 EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "https://examp
le.com/1")), resource); | 311 EXPECT_EQ(resource, memoryCache()->resourceForURL(KURL(ParsedURLString, "htt
ps://example.com/1"))); |
312 | 312 |
313 EXPECT_TRUE(client->called()); | 313 EXPECT_TRUE(client->called()); |
314 EXPECT_EQ(1, client->numberOfRedirectsReceived()); | 314 EXPECT_EQ(1, client->numberOfRedirectsReceived()); |
315 EXPECT_EQ("xyz", String(client->data().data(), client->data().size())); | 315 EXPECT_EQ("xyz", String(client->data().data(), client->data().size())); |
316 | 316 |
317 // Test the case where a client is added after revalidation is completed. | 317 // Test the case where a client is added after revalidation is completed. |
318 Persistent<DummyClient> client2 = new DummyClient; | 318 Persistent<DummyClient> client2 = new DummyClient; |
319 resource->addClient(client2); | 319 resource->addClient(client2); |
320 | 320 |
321 // Because RawResourceClient is added asynchronously, | 321 // Because RawResourceClient is added asynchronously, |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 | 400 |
401 TEST(RawResourceTest, CanReuseDevToolsEmulateNetworkConditionsClientIdHeader) | 401 TEST(RawResourceTest, CanReuseDevToolsEmulateNetworkConditionsClientIdHeader) |
402 { | 402 { |
403 ResourceRequest request("data:text/html,"); | 403 ResourceRequest request("data:text/html,"); |
404 request.setHTTPHeaderField(HTTPNames::X_DevTools_Emulate_Network_Conditions_
Client_Id, "Foo"); | 404 request.setHTTPHeaderField(HTTPNames::X_DevTools_Emulate_Network_Conditions_
Client_Id, "Foo"); |
405 Resource* raw = RawResource::create(request, Resource::Raw); | 405 Resource* raw = RawResource::create(request, Resource::Raw); |
406 EXPECT_TRUE(raw->canReuse(ResourceRequest("data:text/html,"))); | 406 EXPECT_TRUE(raw->canReuse(ResourceRequest("data:text/html,"))); |
407 } | 407 } |
408 | 408 |
409 } // namespace blink | 409 } // namespace blink |
OLD | NEW |