| 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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 // Verifies that setters and getters for cache capacities work correcty. | 103 // Verifies that setters and getters for cache capacities work correcty. |
| 104 TEST_F(MemoryCacheTest, CapacityAccounting) | 104 TEST_F(MemoryCacheTest, CapacityAccounting) |
| 105 { | 105 { |
| 106 const size_t sizeMax = ~static_cast<size_t>(0); | 106 const size_t sizeMax = ~static_cast<size_t>(0); |
| 107 const size_t totalCapacity = sizeMax / 4; | 107 const size_t totalCapacity = sizeMax / 4; |
| 108 const size_t minDeadCapacity = sizeMax / 16; | 108 const size_t minDeadCapacity = sizeMax / 16; |
| 109 const size_t maxDeadCapacity = sizeMax / 8; | 109 const size_t maxDeadCapacity = sizeMax / 8; |
| 110 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); | 110 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); |
| 111 ASSERT_EQ(totalCapacity, memoryCache()->capacity()); | 111 EXPECT_EQ(totalCapacity, memoryCache()->capacity()); |
| 112 ASSERT_EQ(minDeadCapacity, memoryCache()->minDeadCapacity()); | 112 EXPECT_EQ(minDeadCapacity, memoryCache()->minDeadCapacity()); |
| 113 ASSERT_EQ(maxDeadCapacity, memoryCache()->maxDeadCapacity()); | 113 EXPECT_EQ(maxDeadCapacity, memoryCache()->maxDeadCapacity()); |
| 114 } | 114 } |
| 115 | 115 |
| 116 TEST_F(MemoryCacheTest, VeryLargeResourceAccounting) | 116 TEST_F(MemoryCacheTest, VeryLargeResourceAccounting) |
| 117 { | 117 { |
| 118 const size_t sizeMax = ~static_cast<size_t>(0); | 118 const size_t sizeMax = ~static_cast<size_t>(0); |
| 119 const size_t totalCapacity = sizeMax / 4; | 119 const size_t totalCapacity = sizeMax / 4; |
| 120 const size_t minDeadCapacity = sizeMax / 16; | 120 const size_t minDeadCapacity = sizeMax / 16; |
| 121 const size_t maxDeadCapacity = sizeMax / 8; | 121 const size_t maxDeadCapacity = sizeMax / 8; |
| 122 const size_t resourceSize1 = sizeMax / 16; | 122 const size_t resourceSize1 = sizeMax / 16; |
| 123 const size_t resourceSize2 = sizeMax / 20; | 123 const size_t resourceSize2 = sizeMax / 20; |
| 124 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); | 124 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); |
| 125 FakeResource* cachedResource = | 125 FakeResource* cachedResource = |
| 126 FakeResource::create(ResourceRequest("http://test/resource"), Resource::
Raw); | 126 FakeResource::create(ResourceRequest("http://test/resource"), Resource::
Raw); |
| 127 cachedResource->fakeEncodedSize(resourceSize1); | 127 cachedResource->fakeEncodedSize(resourceSize1); |
| 128 | 128 |
| 129 ASSERT_EQ(0u, memoryCache()->deadSize()); | 129 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 130 ASSERT_EQ(0u, memoryCache()->liveSize()); | 130 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 131 memoryCache()->add(cachedResource); | 131 memoryCache()->add(cachedResource); |
| 132 ASSERT_EQ(cachedResource->size(), memoryCache()->deadSize()); | 132 EXPECT_EQ(cachedResource->size(), memoryCache()->deadSize()); |
| 133 ASSERT_EQ(0u, memoryCache()->liveSize()); | 133 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 134 | 134 |
| 135 Persistent<MockResourceClient> client = new MockResourceClient(cachedResourc
e); | 135 Persistent<MockResourceClient> client = new MockResourceClient(cachedResourc
e); |
| 136 ASSERT_EQ(0u, memoryCache()->deadSize()); | 136 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 137 ASSERT_EQ(cachedResource->size(), memoryCache()->liveSize()); | 137 EXPECT_EQ(cachedResource->size(), memoryCache()->liveSize()); |
| 138 | 138 |
| 139 cachedResource->fakeEncodedSize(resourceSize2); | 139 cachedResource->fakeEncodedSize(resourceSize2); |
| 140 ASSERT_EQ(0u, memoryCache()->deadSize()); | 140 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 141 ASSERT_EQ(cachedResource->size(), memoryCache()->liveSize()); | 141 EXPECT_EQ(cachedResource->size(), memoryCache()->liveSize()); |
| 142 } | 142 } |
| 143 | 143 |
| 144 // Verifies that dead resources that exceed dead resource capacity are evicted | 144 // Verifies that dead resources that exceed dead resource capacity are evicted |
| 145 // from cache when pruning. | 145 // from cache when pruning. |
| 146 static void TestDeadResourceEviction(Resource* resource1, Resource* resource2) | 146 static void TestDeadResourceEviction(Resource* resource1, Resource* resource2) |
| 147 { | 147 { |
| 148 memoryCache()->setDelayBeforeLiveDecodedPrune(0); | 148 memoryCache()->setDelayBeforeLiveDecodedPrune(0); |
| 149 memoryCache()->setMaxPruneDeferralDelay(0); | 149 memoryCache()->setMaxPruneDeferralDelay(0); |
| 150 const unsigned totalCapacity = 1000000; | 150 const unsigned totalCapacity = 1000000; |
| 151 const unsigned minDeadCapacity = 0; | 151 const unsigned minDeadCapacity = 0; |
| 152 const unsigned maxDeadCapacity = 0; | 152 const unsigned maxDeadCapacity = 0; |
| 153 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); | 153 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); |
| 154 | 154 |
| 155 const char data[5] = "abcd"; | 155 const char data[5] = "abcd"; |
| 156 resource1->appendData(data, 3u); | 156 resource1->appendData(data, 3u); |
| 157 resource2->appendData(data, 2u); | 157 resource2->appendData(data, 2u); |
| 158 | 158 |
| 159 // The resource size has to be nonzero for this test to be meaningful, but | 159 // The resource size has to be nonzero for this test to be meaningful, but |
| 160 // we do not rely on it having any particular value. | 160 // we do not rely on it having any particular value. |
| 161 ASSERT_GT(resource1->size(), 0u); | 161 EXPECT_GT(resource1->size(), 0u); |
| 162 ASSERT_GT(resource2->size(), 0u); | 162 EXPECT_GT(resource2->size(), 0u); |
| 163 | 163 |
| 164 ASSERT_EQ(0u, memoryCache()->deadSize()); | 164 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 165 ASSERT_EQ(0u, memoryCache()->liveSize()); | 165 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 166 | 166 |
| 167 memoryCache()->add(resource1); | 167 memoryCache()->add(resource1); |
| 168 ASSERT_EQ(resource1->size(), memoryCache()->deadSize()); | 168 EXPECT_EQ(resource1->size(), memoryCache()->deadSize()); |
| 169 ASSERT_EQ(0u, memoryCache()->liveSize()); | 169 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 170 | 170 |
| 171 memoryCache()->add(resource2); | 171 memoryCache()->add(resource2); |
| 172 ASSERT_EQ(resource1->size() + resource2->size(), memoryCache()->deadSize()); | 172 EXPECT_EQ(resource1->size() + resource2->size(), memoryCache()->deadSize()); |
| 173 ASSERT_EQ(0u, memoryCache()->liveSize()); | 173 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 174 | 174 |
| 175 memoryCache()->prune(); | 175 memoryCache()->prune(); |
| 176 ASSERT_EQ(0u, memoryCache()->deadSize()); | 176 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 177 ASSERT_EQ(0u, memoryCache()->liveSize()); | 177 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 178 } | 178 } |
| 179 | 179 |
| 180 TEST_F(MemoryCacheTest, DeadResourceEviction_Basic) | 180 TEST_F(MemoryCacheTest, DeadResourceEviction_Basic) |
| 181 { | 181 { |
| 182 Resource* resource1 = | 182 Resource* resource1 = |
| 183 Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw
); | 183 Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw
); |
| 184 Resource* resource2 = | 184 Resource* resource2 = |
| 185 Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw
); | 185 Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw
); |
| 186 TestDeadResourceEviction(resource1, resource2); | 186 TestDeadResourceEviction(resource1, resource2); |
| 187 } | 187 } |
| 188 | 188 |
| 189 TEST_F(MemoryCacheTest, DeadResourceEviction_MultipleResourceMaps) | 189 TEST_F(MemoryCacheTest, DeadResourceEviction_MultipleResourceMaps) |
| 190 { | 190 { |
| 191 Resource* resource1 = | 191 Resource* resource1 = |
| 192 Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw
); | 192 Resource::create(ResourceRequest("http://test/resource1"), Resource::Raw
); |
| 193 Resource* resource2 = | 193 Resource* resource2 = |
| 194 Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw
); | 194 Resource::create(ResourceRequest("http://test/resource2"), Resource::Raw
); |
| 195 resource2->setCacheIdentifier("foo"); | 195 resource2->setCacheIdentifier("foo"); |
| 196 TestDeadResourceEviction(resource1, resource2); | 196 TestDeadResourceEviction(resource1, resource2); |
| 197 } | 197 } |
| 198 | 198 |
| 199 static void runTask1(Resource* live, Resource* dead) | 199 static void runTask1(Resource* live, Resource* dead) |
| 200 { | 200 { |
| 201 // The resource size has to be nonzero for this test to be meaningful, but | 201 // The resource size has to be nonzero for this test to be meaningful, but |
| 202 // we do not rely on it having any particular value. | 202 // we do not rely on it having any particular value. |
| 203 ASSERT_GT(live->size(), 0u); | 203 EXPECT_GT(live->size(), 0u); |
| 204 ASSERT_GT(dead->size(), 0u); | 204 EXPECT_GT(dead->size(), 0u); |
| 205 | 205 |
| 206 ASSERT_EQ(0u, memoryCache()->deadSize()); | 206 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 207 ASSERT_EQ(0u, memoryCache()->liveSize()); | 207 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 208 | 208 |
| 209 memoryCache()->add(dead); | 209 memoryCache()->add(dead); |
| 210 memoryCache()->add(live); | 210 memoryCache()->add(live); |
| 211 memoryCache()->updateDecodedResource(live, UpdateForPropertyChange); | 211 memoryCache()->updateDecodedResource(live, UpdateForPropertyChange); |
| 212 ASSERT_EQ(dead->size(), memoryCache()->deadSize()); | 212 EXPECT_EQ(dead->size(), memoryCache()->deadSize()); |
| 213 ASSERT_EQ(live->size(), memoryCache()->liveSize()); | 213 EXPECT_EQ(live->size(), memoryCache()->liveSize()); |
| 214 ASSERT_GT(live->decodedSize(), 0u); | 214 EXPECT_GT(live->decodedSize(), 0u); |
| 215 | 215 |
| 216 memoryCache()->prune(); // Dead resources are pruned immediately | 216 memoryCache()->prune(); // Dead resources are pruned immediately |
| 217 ASSERT_EQ(dead->size(), memoryCache()->deadSize()); | 217 EXPECT_EQ(dead->size(), memoryCache()->deadSize()); |
| 218 ASSERT_EQ(live->size(), memoryCache()->liveSize()); | 218 EXPECT_EQ(live->size(), memoryCache()->liveSize()); |
| 219 ASSERT_GT(live->decodedSize(), 0u); | 219 EXPECT_GT(live->decodedSize(), 0u); |
| 220 } | 220 } |
| 221 | 221 |
| 222 static void runTask2(unsigned liveSizeWithoutDecode) | 222 static void runTask2(unsigned liveSizeWithoutDecode) |
| 223 { | 223 { |
| 224 // Next task: now, the live resource was evicted. | 224 // Next task: now, the live resource was evicted. |
| 225 ASSERT_EQ(0u, memoryCache()->deadSize()); | 225 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 226 ASSERT_EQ(liveSizeWithoutDecode, memoryCache()->liveSize()); | 226 EXPECT_EQ(liveSizeWithoutDecode, memoryCache()->liveSize()); |
| 227 } | 227 } |
| 228 | 228 |
| 229 static void TestLiveResourceEvictionAtEndOfTask(Resource* cachedDeadResource, Re
source* cachedLiveResource) | 229 static void TestLiveResourceEvictionAtEndOfTask(Resource* cachedDeadResource, Re
source* cachedLiveResource) |
| 230 { | 230 { |
| 231 memoryCache()->setDelayBeforeLiveDecodedPrune(0); | 231 memoryCache()->setDelayBeforeLiveDecodedPrune(0); |
| 232 const unsigned totalCapacity = 1; | 232 const unsigned totalCapacity = 1; |
| 233 const unsigned minDeadCapacity = 0; | 233 const unsigned minDeadCapacity = 0; |
| 234 const unsigned maxDeadCapacity = 0; | 234 const unsigned maxDeadCapacity = 0; |
| 235 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); | 235 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); |
| 236 const char data[6] = "abcde"; | 236 const char data[6] = "abcde"; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 | 300 |
| 301 const unsigned minDeadCapacity = 0; | 301 const unsigned minDeadCapacity = 0; |
| 302 const unsigned maxDeadCapacity = ((resource1->size() + resource2->size()) /
2) - 1; | 302 const unsigned maxDeadCapacity = ((resource1->size() + resource2->size()) /
2) - 1; |
| 303 const unsigned totalCapacity = maxDeadCapacity; | 303 const unsigned totalCapacity = maxDeadCapacity; |
| 304 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); | 304 memoryCache()->setCapacities(minDeadCapacity, maxDeadCapacity, totalCapacity
); |
| 305 memoryCache()->add(resource1); | 305 memoryCache()->add(resource1); |
| 306 memoryCache()->add(resource2); | 306 memoryCache()->add(resource2); |
| 307 // Call prune. There is nothing to prune, but this will initialize | 307 // Call prune. There is nothing to prune, but this will initialize |
| 308 // the prune timestamp, allowing future prunes to be deferred. | 308 // the prune timestamp, allowing future prunes to be deferred. |
| 309 memoryCache()->prune(); | 309 memoryCache()->prune(); |
| 310 ASSERT_GT(resource1->decodedSize(), 0u); | 310 EXPECT_GT(resource1->decodedSize(), 0u); |
| 311 ASSERT_GT(resource2->decodedSize(), 0u); | 311 EXPECT_GT(resource2->decodedSize(), 0u); |
| 312 ASSERT_EQ(memoryCache()->deadSize(), 0u); | 312 EXPECT_EQ(0u, memoryCache()->deadSize()); |
| 313 ASSERT_EQ(memoryCache()->liveSize(), resource1->size() + resource2->size()); | 313 EXPECT_EQ(resource1->size() + resource2->size(), memoryCache()->liveSize()); |
| 314 | 314 |
| 315 // Removing the client from resource1 should result in all resources | 315 // Removing the client from resource1 should result in all resources |
| 316 // remaining in cache since the prune is deferred. | 316 // remaining in cache since the prune is deferred. |
| 317 client1->removeAsClient(); | 317 client1->removeAsClient(); |
| 318 ASSERT_GT(resource1->decodedSize(), 0u); | 318 EXPECT_GT(resource1->decodedSize(), 0u); |
| 319 ASSERT_GT(resource2->decodedSize(), 0u); | 319 EXPECT_GT(resource2->decodedSize(), 0u); |
| 320 ASSERT_EQ(memoryCache()->deadSize(), resource1->size()); | 320 EXPECT_EQ(resource1->size(), memoryCache()->deadSize()); |
| 321 ASSERT_EQ(memoryCache()->liveSize(), resource2->size()); | 321 EXPECT_EQ(resource2->size(), memoryCache()->liveSize()); |
| 322 ASSERT_TRUE(memoryCache()->contains(resource1)); | 322 EXPECT_TRUE(memoryCache()->contains(resource1)); |
| 323 ASSERT_TRUE(memoryCache()->contains(resource2)); | 323 EXPECT_TRUE(memoryCache()->contains(resource2)); |
| 324 | 324 |
| 325 // Removing the client from resource2 should result in immediate | 325 // Removing the client from resource2 should result in immediate |
| 326 // eviction of resource2 because we are over the prune deferral limit. | 326 // eviction of resource2 because we are over the prune deferral limit. |
| 327 client2->removeAsClient(); | 327 client2->removeAsClient(); |
| 328 ASSERT_GT(resource1->decodedSize(), 0u); | 328 EXPECT_GT(resource1->decodedSize(), 0u); |
| 329 ASSERT_GT(resource2->decodedSize(), 0u); | 329 EXPECT_GT(resource2->decodedSize(), 0u); |
| 330 ASSERT_EQ(memoryCache()->deadSize(), resource1->size()); | 330 EXPECT_EQ(resource1->size(), memoryCache()->deadSize()); |
| 331 ASSERT_EQ(memoryCache()->liveSize(), 0u); | 331 EXPECT_EQ(0u, memoryCache()->liveSize()); |
| 332 ASSERT_TRUE(memoryCache()->contains(resource1)); | 332 EXPECT_TRUE(memoryCache()->contains(resource1)); |
| 333 ASSERT_FALSE(memoryCache()->contains(resource2)); | 333 EXPECT_FALSE(memoryCache()->contains(resource2)); |
| 334 } | 334 } |
| 335 | 335 |
| 336 TEST_F(MemoryCacheTest, ClientRemoval_Basic) | 336 TEST_F(MemoryCacheTest, ClientRemoval_Basic) |
| 337 { | 337 { |
| 338 Resource* resource1 = | 338 Resource* resource1 = |
| 339 FakeDecodedResource::create(ResourceRequest("http://foo.com"), Resource:
:Raw); | 339 FakeDecodedResource::create(ResourceRequest("http://foo.com"), Resource:
:Raw); |
| 340 Resource* resource2 = | 340 Resource* resource2 = |
| 341 FakeDecodedResource::create(ResourceRequest("http://test/resource"), Res
ource::Raw); | 341 FakeDecodedResource::create(ResourceRequest("http://test/resource"), Res
ource::Raw); |
| 342 TestClientRemoval(resource1, resource2); | 342 TestClientRemoval(resource1, resource2); |
| 343 } | 343 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 memoryCache()->evictResources(); | 423 memoryCache()->evictResources(); |
| 424 EXPECT_FALSE(memoryCache()->contains(resource1)); | 424 EXPECT_FALSE(memoryCache()->contains(resource1)); |
| 425 EXPECT_FALSE(memoryCache()->contains(resource3)); | 425 EXPECT_FALSE(memoryCache()->contains(resource3)); |
| 426 } | 426 } |
| 427 | 427 |
| 428 TEST_F(MemoryCacheTest, FragmentIdentifier) | 428 TEST_F(MemoryCacheTest, FragmentIdentifier) |
| 429 { | 429 { |
| 430 const KURL url1 = KURL(ParsedURLString, "http://test/resource#foo"); | 430 const KURL url1 = KURL(ParsedURLString, "http://test/resource#foo"); |
| 431 FakeResource* resource = FakeResource::create(ResourceRequest(url1), Resourc
e::Raw); | 431 FakeResource* resource = FakeResource::create(ResourceRequest(url1), Resourc
e::Raw); |
| 432 memoryCache()->add(resource); | 432 memoryCache()->add(resource); |
| 433 ASSERT_TRUE(memoryCache()->contains(resource)); | 433 EXPECT_TRUE(memoryCache()->contains(resource)); |
| 434 | 434 |
| 435 EXPECT_EQ(resource, memoryCache()->resourceForURL(url1)); | 435 EXPECT_EQ(resource, memoryCache()->resourceForURL(url1)); |
| 436 | 436 |
| 437 const KURL url2 = MemoryCache::removeFragmentIdentifierIfNeeded(url1); | 437 const KURL url2 = MemoryCache::removeFragmentIdentifierIfNeeded(url1); |
| 438 EXPECT_EQ(resource, memoryCache()->resourceForURL(url2)); | 438 EXPECT_EQ(resource, memoryCache()->resourceForURL(url2)); |
| 439 } | 439 } |
| 440 | 440 |
| 441 TEST_F(MemoryCacheTest, MakeLiveAndDead) | 441 TEST_F(MemoryCacheTest, MakeLiveAndDead) |
| 442 { | 442 { |
| 443 FakeResource* resource = FakeResource::create(ResourceRequest("http://test/r
esource"), Resource::Raw); | 443 FakeResource* resource = FakeResource::create(ResourceRequest("http://test/r
esource"), Resource::Raw); |
| 444 const char data[6] = "abcde"; | 444 const char data[6] = "abcde"; |
| 445 resource->appendData(data, 5u); | 445 resource->appendData(data, 5u); |
| 446 memoryCache()->add(resource); | 446 memoryCache()->add(resource); |
| 447 | 447 |
| 448 const size_t deadSize = memoryCache()->deadSize(); | 448 const size_t deadSize = memoryCache()->deadSize(); |
| 449 const size_t liveSize = memoryCache()->liveSize(); | 449 const size_t liveSize = memoryCache()->liveSize(); |
| 450 | 450 |
| 451 memoryCache()->makeLive(resource); | 451 memoryCache()->makeLive(resource); |
| 452 ASSERT_EQ(deadSize, memoryCache()->deadSize() + resource->size()); | 452 EXPECT_EQ(deadSize, memoryCache()->deadSize() + resource->size()); |
| 453 ASSERT_EQ(liveSize, memoryCache()->liveSize() - resource->size()); | 453 EXPECT_EQ(liveSize, memoryCache()->liveSize() - resource->size()); |
| 454 | 454 |
| 455 memoryCache()->makeDead(resource); | 455 memoryCache()->makeDead(resource); |
| 456 ASSERT_EQ(deadSize, memoryCache()->deadSize()); | 456 EXPECT_EQ(deadSize, memoryCache()->deadSize()); |
| 457 ASSERT_EQ(liveSize, memoryCache()->liveSize()); | 457 EXPECT_EQ(liveSize, memoryCache()->liveSize()); |
| 458 } | 458 } |
| 459 | 459 |
| 460 TEST_F(MemoryCacheTest, RemoveURLFromCache) | 460 TEST_F(MemoryCacheTest, RemoveURLFromCache) |
| 461 { | 461 { |
| 462 const KURL url1 = KURL(ParsedURLString, "http://test/resource1"); | 462 const KURL url1 = KURL(ParsedURLString, "http://test/resource1"); |
| 463 FakeResource* resource1 = FakeResource::create(ResourceRequest(url1), Resour
ce::Raw); | 463 FakeResource* resource1 = FakeResource::create(ResourceRequest(url1), Resour
ce::Raw); |
| 464 memoryCache()->add(resource1); | 464 memoryCache()->add(resource1); |
| 465 ASSERT_TRUE(memoryCache()->contains(resource1)); | 465 EXPECT_TRUE(memoryCache()->contains(resource1)); |
| 466 | 466 |
| 467 memoryCache()->removeURLFromCache(url1); | 467 memoryCache()->removeURLFromCache(url1); |
| 468 EXPECT_FALSE(memoryCache()->contains(resource1)); | 468 EXPECT_FALSE(memoryCache()->contains(resource1)); |
| 469 | 469 |
| 470 const KURL url2 = KURL(ParsedURLString, "http://test/resource2#foo"); | 470 const KURL url2 = KURL(ParsedURLString, "http://test/resource2#foo"); |
| 471 FakeResource* resource2 = FakeResource::create(ResourceRequest(url2), Resour
ce::Raw); | 471 FakeResource* resource2 = FakeResource::create(ResourceRequest(url2), Resour
ce::Raw); |
| 472 memoryCache()->add(resource2); | 472 memoryCache()->add(resource2); |
| 473 ASSERT_TRUE(memoryCache()->contains(resource2)); | 473 EXPECT_TRUE(memoryCache()->contains(resource2)); |
| 474 | 474 |
| 475 memoryCache()->removeURLFromCache(url2); | 475 memoryCache()->removeURLFromCache(url2); |
| 476 EXPECT_FALSE(memoryCache()->contains(resource2)); | 476 EXPECT_FALSE(memoryCache()->contains(resource2)); |
| 477 } | 477 } |
| 478 | 478 |
| 479 } // namespace blink | 479 } // namespace blink |
| OLD | NEW |