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

Side by Side Diff: webkit/appcache/appcache_storage_impl_unittest.cc

Issue 7210006: AppCaches which belong to hosted apps are not protected from deletion (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Test beautification. Created 9 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <stack> 5 #include <stack>
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/threading/thread.h" 8 #include "base/threading/thread.h"
9 #include "base/synchronization/waitable_event.h" 9 #include "base/synchronization/waitable_event.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 AppCacheDatabase::GroupRecord record; 459 AppCacheDatabase::GroupRecord record;
460 EXPECT_FALSE(database()->FindGroup( 460 EXPECT_FALSE(database()->FindGroup(
461 delegate()->loaded_group_->group_id(), &record)); 461 delegate()->loaded_group_->group_id(), &record));
462 462
463 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_); 463 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_);
464 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_); 464 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_);
465 465
466 TestFinished(); 466 TestFinished();
467 } 467 }
468 468
469 void CreateGroupSyncInPopulatedOrigin() {
470 storage()->usage_map_[kOrigin] = kDefaultEntrySize;
471
472 storage()->SyncLoadOrCreateGroup(kManifestUrl, delegate());
473 Verify_CreateGroup();
474 }
475
469 // LoadGroupAndCache_FarHit -------------------------------------- 476 // LoadGroupAndCache_FarHit --------------------------------------
470 477
471 void LoadGroupAndCache_FarHit() { 478 void LoadGroupAndCache_FarHit() {
472 // Attempt to load a cache that is not currently in use 479 // Attempt to load a cache that is not currently in use
473 // and does require loading from disk. This 480 // and does require loading from disk. This
474 // load should complete asyncly. 481 // load should complete asyncly.
475 PushNextTask(NewRunnableMethod( 482 PushNextTask(NewRunnableMethod(
476 this, &AppCacheStorageImplTest::Verify_LoadCache_Far_Hit)); 483 this, &AppCacheStorageImplTest::Verify_LoadCache_Far_Hit));
477 484
478 // Setup some preconditions. Create a group and newest cache that 485 // Setup some preconditions. Create a group and newest cache that
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 EXPECT_FALSE(database()->FindCache(cache_->cache_id(), &cache_record)); 713 EXPECT_FALSE(database()->FindCache(cache_->cache_id(), &cache_record));
707 714
708 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_); 715 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_accessed_count_);
709 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_); 716 EXPECT_EQ(0, mock_quota_manager_proxy_->notify_storage_modified_count_);
710 717
711 TestFinished(); 718 TestFinished();
712 } 719 }
713 720
714 // MakeGroupObsolete ------------------------------- 721 // MakeGroupObsolete -------------------------------
715 722
716 void MakeGroupObsolete() { 723 void Setup_MakeGroupObsolete() {
717 // Make a group obsolete, should complete asyncly.
718 PushNextTask(NewRunnableMethod(
719 this, &AppCacheStorageImplTest::Verify_MakeGroupObsolete));
720
721 // Setup some preconditions. Create a group and newest cache that 724 // Setup some preconditions. Create a group and newest cache that
722 // appears to be "stored" and "currently in use". 725 // appears to be "stored" and "currently in use".
723 MakeCacheAndGroup(kManifestUrl, 1, 1, true); 726 MakeCacheAndGroup(kManifestUrl, 1, 1, true);
724 EXPECT_EQ(kDefaultEntrySize, storage()->usage_map_[kOrigin]); 727 EXPECT_EQ(kDefaultEntrySize, storage()->usage_map_[kOrigin]);
725 728
726 // Also insert some related records. 729 // Also insert some related records.
727 AppCacheDatabase::EntryRecord entry_record; 730 AppCacheDatabase::EntryRecord entry_record;
728 entry_record.cache_id = 1; 731 entry_record.cache_id = 1;
729 entry_record.flags = AppCacheEntry::FALLBACK; 732 entry_record.flags = AppCacheEntry::FALLBACK;
730 entry_record.response_id = 1; 733 entry_record.response_id = 1;
731 entry_record.url = kEntryUrl; 734 entry_record.url = kEntryUrl;
732 EXPECT_TRUE(database()->InsertEntry(&entry_record)); 735 EXPECT_TRUE(database()->InsertEntry(&entry_record));
733 736
734 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record; 737 AppCacheDatabase::FallbackNameSpaceRecord fallback_namespace_record;
735 fallback_namespace_record.cache_id = 1; 738 fallback_namespace_record.cache_id = 1;
736 fallback_namespace_record.fallback_entry_url = kEntryUrl; 739 fallback_namespace_record.fallback_entry_url = kEntryUrl;
737 fallback_namespace_record.namespace_url = kFallbackNamespace; 740 fallback_namespace_record.namespace_url = kFallbackNamespace;
738 fallback_namespace_record.origin = kManifestUrl.GetOrigin(); 741 fallback_namespace_record.origin = kManifestUrl.GetOrigin();
739 EXPECT_TRUE( 742 EXPECT_TRUE(
740 database()->InsertFallbackNameSpace(&fallback_namespace_record)); 743 database()->InsertFallbackNameSpace(&fallback_namespace_record));
741 744
742 AppCacheDatabase::OnlineWhiteListRecord online_whitelist_record; 745 AppCacheDatabase::OnlineWhiteListRecord online_whitelist_record;
743 online_whitelist_record.cache_id = 1; 746 online_whitelist_record.cache_id = 1;
744 online_whitelist_record.namespace_url = kOnlineNamespace; 747 online_whitelist_record.namespace_url = kOnlineNamespace;
745 EXPECT_TRUE(database()->InsertOnlineWhiteList(&online_whitelist_record)); 748 EXPECT_TRUE(database()->InsertOnlineWhiteList(&online_whitelist_record));
749 }
750
751 void MakeGroupObsolete() {
752 // Make a group obsolete, should complete asyncly.
753 PushNextTask(NewRunnableMethod(
754 this, &AppCacheStorageImplTest::Verify_MakeGroupObsolete));
755 Setup_MakeGroupObsolete();
746 756
747 // Conduct the test. 757 // Conduct the test.
748 storage()->MakeGroupObsolete(group_, delegate()); 758 storage()->MakeGroupObsolete(group_, delegate());
749 EXPECT_FALSE(group_->is_obsolete()); 759 EXPECT_FALSE(group_->is_obsolete());
750 } 760 }
751 761
762 void SyncMakeGroupObsolete() {
763 Setup_MakeGroupObsolete();
764 // Conduct the test.
765 storage()->SyncMakeGroupObsolete(group_, delegate());
766 Verify_MakeGroupObsolete();
767 }
768
752 void Verify_MakeGroupObsolete() { 769 void Verify_MakeGroupObsolete() {
753 EXPECT_TRUE(delegate()->obsoleted_success_); 770 EXPECT_TRUE(delegate()->obsoleted_success_);
754 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get()); 771 EXPECT_EQ(group_.get(), delegate()->obsoleted_group_.get());
755 EXPECT_TRUE(group_->is_obsolete()); 772 EXPECT_TRUE(group_->is_obsolete());
756 EXPECT_TRUE(storage()->usage_map_.empty()); 773 EXPECT_TRUE(storage()->usage_map_.empty());
757 774
758 // The cache and group have been deleted from the database. 775 // The cache and group have been deleted from the database.
759 AppCacheDatabase::GroupRecord group_record; 776 AppCacheDatabase::GroupRecord group_record;
760 AppCacheDatabase::CacheRecord cache_record; 777 AppCacheDatabase::CacheRecord cache_record;
761 EXPECT_FALSE(database()->FindGroup(1, &group_record)); 778 EXPECT_FALSE(database()->FindGroup(1, &group_record));
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after
1328 } 1345 }
1329 1346
1330 TEST_F(AppCacheStorageImplTest, CreateGroupInEmptyOrigin) { 1347 TEST_F(AppCacheStorageImplTest, CreateGroupInEmptyOrigin) {
1331 RunTestOnIOThread(&AppCacheStorageImplTest::CreateGroupInEmptyOrigin); 1348 RunTestOnIOThread(&AppCacheStorageImplTest::CreateGroupInEmptyOrigin);
1332 } 1349 }
1333 1350
1334 TEST_F(AppCacheStorageImplTest, CreateGroupInPopulatedOrigin) { 1351 TEST_F(AppCacheStorageImplTest, CreateGroupInPopulatedOrigin) {
1335 RunTestOnIOThread(&AppCacheStorageImplTest::CreateGroupInPopulatedOrigin); 1352 RunTestOnIOThread(&AppCacheStorageImplTest::CreateGroupInPopulatedOrigin);
1336 } 1353 }
1337 1354
1355 TEST_F(AppCacheStorageImplTest, CreateGroupSyncInPopulatedOrigin) {
1356 RunTestOnIOThread(&AppCacheStorageImplTest::CreateGroupSyncInPopulatedOrigin);
1357 }
1358
1338 TEST_F(AppCacheStorageImplTest, LoadGroupAndCache_FarHit) { 1359 TEST_F(AppCacheStorageImplTest, LoadGroupAndCache_FarHit) {
1339 RunTestOnIOThread(&AppCacheStorageImplTest::LoadGroupAndCache_FarHit); 1360 RunTestOnIOThread(&AppCacheStorageImplTest::LoadGroupAndCache_FarHit);
1340 } 1361 }
1341 1362
1342 TEST_F(AppCacheStorageImplTest, StoreNewGroup) { 1363 TEST_F(AppCacheStorageImplTest, StoreNewGroup) {
1343 RunTestOnIOThread(&AppCacheStorageImplTest::StoreNewGroup); 1364 RunTestOnIOThread(&AppCacheStorageImplTest::StoreNewGroup);
1344 } 1365 }
1345 1366
1346 TEST_F(AppCacheStorageImplTest, StoreExistingGroup) { 1367 TEST_F(AppCacheStorageImplTest, StoreExistingGroup) {
1347 RunTestOnIOThread(&AppCacheStorageImplTest::StoreExistingGroup); 1368 RunTestOnIOThread(&AppCacheStorageImplTest::StoreExistingGroup);
1348 } 1369 }
1349 1370
1350 TEST_F(AppCacheStorageImplTest, StoreExistingGroupExistingCache) { 1371 TEST_F(AppCacheStorageImplTest, StoreExistingGroupExistingCache) {
1351 RunTestOnIOThread(&AppCacheStorageImplTest::StoreExistingGroupExistingCache); 1372 RunTestOnIOThread(&AppCacheStorageImplTest::StoreExistingGroupExistingCache);
1352 } 1373 }
1353 1374
1354 TEST_F(AppCacheStorageImplTest, FailStoreGroup) { 1375 TEST_F(AppCacheStorageImplTest, FailStoreGroup) {
1355 RunTestOnIOThread(&AppCacheStorageImplTest::FailStoreGroup); 1376 RunTestOnIOThread(&AppCacheStorageImplTest::FailStoreGroup);
1356 } 1377 }
1357 1378
1358 TEST_F(AppCacheStorageImplTest, MakeGroupObsolete) { 1379 TEST_F(AppCacheStorageImplTest, MakeGroupObsolete) {
1359 RunTestOnIOThread(&AppCacheStorageImplTest::MakeGroupObsolete); 1380 RunTestOnIOThread(&AppCacheStorageImplTest::MakeGroupObsolete);
1360 } 1381 }
1361 1382
1383 TEST_F(AppCacheStorageImplTest, SyncMakeGroupObsolete) {
1384 RunTestOnIOThread(&AppCacheStorageImplTest::SyncMakeGroupObsolete);
1385 }
1386
1362 TEST_F(AppCacheStorageImplTest, MarkEntryAsForeign) { 1387 TEST_F(AppCacheStorageImplTest, MarkEntryAsForeign) {
1363 RunTestOnIOThread(&AppCacheStorageImplTest::MarkEntryAsForeign); 1388 RunTestOnIOThread(&AppCacheStorageImplTest::MarkEntryAsForeign);
1364 } 1389 }
1365 1390
1366 TEST_F(AppCacheStorageImplTest, MarkEntryAsForeignWithLoadInProgress) { 1391 TEST_F(AppCacheStorageImplTest, MarkEntryAsForeignWithLoadInProgress) {
1367 RunTestOnIOThread( 1392 RunTestOnIOThread(
1368 &AppCacheStorageImplTest::MarkEntryAsForeignWithLoadInProgress); 1393 &AppCacheStorageImplTest::MarkEntryAsForeignWithLoadInProgress);
1369 } 1394 }
1370 1395
1371 TEST_F(AppCacheStorageImplTest, FindNoMainResponse) { 1396 TEST_F(AppCacheStorageImplTest, FindNoMainResponse) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1412 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet); 1437 &AppCacheStorageImplTest::FindMainResponseExclusionsInWorkingSet);
1413 } 1438 }
1414 1439
1415 // That's all folks! 1440 // That's all folks!
1416 1441
1417 } // namespace appcache 1442 } // namespace appcache
1418 1443
1419 // AppCacheStorageImplTest is expected to always live longer than the 1444 // AppCacheStorageImplTest is expected to always live longer than the
1420 // runnable methods. This lets us call NewRunnableMethod on its instances. 1445 // runnable methods. This lets us call NewRunnableMethod on its instances.
1421 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheStorageImplTest); 1446 DISABLE_RUNNABLE_METHOD_REFCOUNT(appcache::AppCacheStorageImplTest);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698