| 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 29 matching lines...) Expand all Loading... |
| 40 #include "public/platform/WebUnitTestSupport.h" | 40 #include "public/platform/WebUnitTestSupport.h" |
| 41 #include "testing/gtest/include/gtest/gtest.h" | 41 #include "testing/gtest/include/gtest/gtest.h" |
| 42 | 42 |
| 43 namespace blink { | 43 namespace blink { |
| 44 | 44 |
| 45 TEST(RawResourceTest, DontIgnoreAcceptForCacheReuse) | 45 TEST(RawResourceTest, DontIgnoreAcceptForCacheReuse) |
| 46 { | 46 { |
| 47 ResourceRequest jpegRequest; | 47 ResourceRequest jpegRequest; |
| 48 jpegRequest.setHTTPAccept("image/jpeg"); | 48 jpegRequest.setHTTPAccept("image/jpeg"); |
| 49 | 49 |
| 50 RefPtrWillBeRawPtr<RawResource> jpegResource(RawResource::create(jpegRequest
, Resource::Raw)); | 50 RawPtr<RawResource> jpegResource(RawResource::create(jpegRequest, Resource::
Raw)); |
| 51 | 51 |
| 52 ResourceRequest pngRequest; | 52 ResourceRequest pngRequest; |
| 53 pngRequest.setHTTPAccept("image/png"); | 53 pngRequest.setHTTPAccept("image/png"); |
| 54 | 54 |
| 55 ASSERT_FALSE(jpegResource->canReuse(pngRequest)); | 55 ASSERT_FALSE(jpegResource->canReuse(pngRequest)); |
| 56 } | 56 } |
| 57 | 57 |
| 58 class DummyClient final : public RawResourceClient { | 58 class DummyClient final : public RawResourceClient { |
| 59 public: | 59 public: |
| 60 DummyClient() : m_called(false) {} | 60 DummyClient() : m_called(false) {} |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 resource->addClient(m_dummyClient); | 98 resource->addClient(m_dummyClient); |
| 99 } | 99 } |
| 100 String debugName() const override { return "AddingClient"; } | 100 String debugName() const override { return "AddingClient"; } |
| 101 | 101 |
| 102 void removeClient(Timer<AddingClient>* timer) | 102 void removeClient(Timer<AddingClient>* timer) |
| 103 { | 103 { |
| 104 m_resource->removeClient(m_dummyClient); | 104 m_resource->removeClient(m_dummyClient); |
| 105 } | 105 } |
| 106 private: | 106 private: |
| 107 DummyClient* m_dummyClient; | 107 DummyClient* m_dummyClient; |
| 108 RefPtrWillBePersistent<Resource> m_resource; | 108 Persistent<Resource> m_resource; |
| 109 Timer<AddingClient> m_removeClientTimer; | 109 Timer<AddingClient> m_removeClientTimer; |
| 110 }; | 110 }; |
| 111 | 111 |
| 112 TEST(RawResourceTest, RevalidationSucceeded) | 112 TEST(RawResourceTest, RevalidationSucceeded) |
| 113 { | 113 { |
| 114 RefPtrWillBeRawPtr<Resource> resource = RawResource::create(ResourceRequest(
"data:text/html,"), Resource::Raw); | 114 RawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/h
tml,"), Resource::Raw); |
| 115 ResourceResponse response; | 115 ResourceResponse response; |
| 116 response.setHTTPStatusCode(200); | 116 response.setHTTPStatusCode(200); |
| 117 resource->responseReceived(response, nullptr); | 117 resource->responseReceived(response, nullptr); |
| 118 const char data[5] = "abcd"; | 118 const char data[5] = "abcd"; |
| 119 resource->appendData(data, 4); | 119 resource->appendData(data, 4); |
| 120 resource->finish(); | 120 resource->finish(); |
| 121 memoryCache()->add(resource.get()); | 121 memoryCache()->add(resource.get()); |
| 122 | 122 |
| 123 // Simulate a successful revalidation. | 123 // Simulate a successful revalidation. |
| 124 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); | 124 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 136 memoryCache()->remove(resource.get()); | 136 memoryCache()->remove(resource.get()); |
| 137 | 137 |
| 138 resource->removeClient(client.get()); | 138 resource->removeClient(client.get()); |
| 139 EXPECT_FALSE(resource->hasClientsOrObservers()); | 139 EXPECT_FALSE(resource->hasClientsOrObservers()); |
| 140 EXPECT_FALSE(client->called()); | 140 EXPECT_FALSE(client->called()); |
| 141 EXPECT_EQ("abcd", String(client->data().data(), client->data().size())); | 141 EXPECT_EQ("abcd", String(client->data().data(), client->data().size())); |
| 142 } | 142 } |
| 143 | 143 |
| 144 TEST(RawResourceTest, RevalidationSucceededForResourceWithoutBody) | 144 TEST(RawResourceTest, RevalidationSucceededForResourceWithoutBody) |
| 145 { | 145 { |
| 146 RefPtrWillBeRawPtr<Resource> resource = RawResource::create(ResourceRequest(
"data:text/html,"), Resource::Raw); | 146 RawPtr<Resource> resource = RawResource::create(ResourceRequest("data:text/h
tml,"), Resource::Raw); |
| 147 ResourceResponse response; | 147 ResourceResponse response; |
| 148 response.setHTTPStatusCode(200); | 148 response.setHTTPStatusCode(200); |
| 149 resource->responseReceived(response, nullptr); | 149 resource->responseReceived(response, nullptr); |
| 150 resource->finish(); | 150 resource->finish(); |
| 151 memoryCache()->add(resource.get()); | 151 memoryCache()->add(resource.get()); |
| 152 | 152 |
| 153 // Simulate a successful revalidation. | 153 // Simulate a successful revalidation. |
| 154 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); | 154 resource->setRevalidatingRequest(ResourceRequest("data:text/html,")); |
| 155 | 155 |
| 156 OwnPtr<DummyClient> client = adoptPtr(new DummyClient); | 156 OwnPtr<DummyClient> client = adoptPtr(new DummyClient); |
| 157 resource->addClient(client.get()); | 157 resource->addClient(client.get()); |
| 158 | 158 |
| 159 ResourceResponse revalidatingResponse; | 159 ResourceResponse revalidatingResponse; |
| 160 revalidatingResponse.setHTTPStatusCode(304); | 160 revalidatingResponse.setHTTPStatusCode(304); |
| 161 resource->responseReceived(revalidatingResponse, nullptr); | 161 resource->responseReceived(revalidatingResponse, nullptr); |
| 162 EXPECT_FALSE(resource->isCacheValidator()); | 162 EXPECT_FALSE(resource->isCacheValidator()); |
| 163 EXPECT_EQ(200, resource->response().httpStatusCode()); | 163 EXPECT_EQ(200, resource->response().httpStatusCode()); |
| 164 EXPECT_EQ(nullptr, resource->resourceBuffer()); | 164 EXPECT_EQ(nullptr, resource->resourceBuffer()); |
| 165 EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/htm
l,")), resource.get()); | 165 EXPECT_EQ(memoryCache()->resourceForURL(KURL(ParsedURLString, "data:text/htm
l,")), resource.get()); |
| 166 memoryCache()->remove(resource.get()); | 166 memoryCache()->remove(resource.get()); |
| 167 | 167 |
| 168 resource->removeClient(client.get()); | 168 resource->removeClient(client.get()); |
| 169 EXPECT_FALSE(resource->hasClientsOrObservers()); | 169 EXPECT_FALSE(resource->hasClientsOrObservers()); |
| 170 EXPECT_FALSE(client->called()); | 170 EXPECT_FALSE(client->called()); |
| 171 EXPECT_EQ(0u, client->data().size()); | 171 EXPECT_EQ(0u, client->data().size()); |
| 172 } | 172 } |
| 173 | 173 |
| 174 TEST(RawResourceTest, AddClientDuringCallback) | 174 TEST(RawResourceTest, AddClientDuringCallback) |
| 175 { | 175 { |
| 176 RefPtrWillBeRawPtr<Resource> raw = RawResource::create(ResourceRequest("data
:text/html,"), Resource::Raw); | 176 RawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"
), Resource::Raw); |
| 177 | 177 |
| 178 // Create a non-null response. | 178 // Create a non-null response. |
| 179 ResourceResponse response = raw->response(); | 179 ResourceResponse response = raw->response(); |
| 180 response.setURL(KURL(ParsedURLString, "http://600.613/")); | 180 response.setURL(KURL(ParsedURLString, "http://600.613/")); |
| 181 raw->setResponse(response); | 181 raw->setResponse(response); |
| 182 raw->finish(); | 182 raw->finish(); |
| 183 EXPECT_FALSE(raw->response().isNull()); | 183 EXPECT_FALSE(raw->response().isNull()); |
| 184 | 184 |
| 185 OwnPtr<DummyClient> dummyClient = adoptPtr(new DummyClient()); | 185 OwnPtr<DummyClient> dummyClient = adoptPtr(new DummyClient()); |
| 186 OwnPtr<AddingClient> addingClient = adoptPtr(new AddingClient(dummyClient.ge
t(), raw.get())); | 186 OwnPtr<AddingClient> addingClient = adoptPtr(new AddingClient(dummyClient.ge
t(), raw.get())); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 205 resource->removeClient(m_dummyClient); | 205 resource->removeClient(m_dummyClient); |
| 206 resource->removeClient(this); | 206 resource->removeClient(this); |
| 207 } | 207 } |
| 208 String debugName() const override { return "RemovingClient"; } | 208 String debugName() const override { return "RemovingClient"; } |
| 209 private: | 209 private: |
| 210 DummyClient* m_dummyClient; | 210 DummyClient* m_dummyClient; |
| 211 }; | 211 }; |
| 212 | 212 |
| 213 TEST(RawResourceTest, RemoveClientDuringCallback) | 213 TEST(RawResourceTest, RemoveClientDuringCallback) |
| 214 { | 214 { |
| 215 RefPtrWillBeRawPtr<Resource> raw = RawResource::create(ResourceRequest("data
:text/html,"), Resource::Raw); | 215 RawPtr<Resource> raw = RawResource::create(ResourceRequest("data:text/html,"
), Resource::Raw); |
| 216 | 216 |
| 217 // Create a non-null response. | 217 // Create a non-null response. |
| 218 ResourceResponse response = raw->response(); | 218 ResourceResponse response = raw->response(); |
| 219 response.setURL(KURL(ParsedURLString, "http://600.613/")); | 219 response.setURL(KURL(ParsedURLString, "http://600.613/")); |
| 220 raw->setResponse(response); | 220 raw->setResponse(response); |
| 221 raw->finish(); | 221 raw->finish(); |
| 222 EXPECT_FALSE(raw->response().isNull()); | 222 EXPECT_FALSE(raw->response().isNull()); |
| 223 | 223 |
| 224 OwnPtr<DummyClient> dummyClient = adoptPtr(new DummyClient()); | 224 OwnPtr<DummyClient> dummyClient = adoptPtr(new DummyClient()); |
| 225 OwnPtr<RemovingClient> removingClient = adoptPtr(new RemovingClient(dummyCli
ent.get())); | 225 OwnPtr<RemovingClient> removingClient = adoptPtr(new RemovingClient(dummyCli
ent.get())); |
| 226 raw->addClient(dummyClient.get()); | 226 raw->addClient(dummyClient.get()); |
| 227 raw->addClient(removingClient.get()); | 227 raw->addClient(removingClient.get()); |
| 228 testing::runPendingTasks(); | 228 testing::runPendingTasks(); |
| 229 EXPECT_FALSE(raw->hasClientsOrObservers()); | 229 EXPECT_FALSE(raw->hasClientsOrObservers()); |
| 230 } | 230 } |
| 231 | 231 |
| 232 } // namespace blink | 232 } // namespace blink |
| OLD | NEW |