| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/message_loop_proxy.h" | 10 #include "base/message_loop_proxy.h" |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 class DatabaseTracker_TestHelper_Test { | 189 class DatabaseTracker_TestHelper_Test { |
| 190 public: | 190 public: |
| 191 static void TestDeleteOpenDatabase(bool incognito_mode) { | 191 static void TestDeleteOpenDatabase(bool incognito_mode) { |
| 192 // Initialize the tracker database. | 192 // Initialize the tracker database. |
| 193 base::ScopedTempDir temp_dir; | 193 base::ScopedTempDir temp_dir; |
| 194 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 194 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 195 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = | 195 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = |
| 196 new quota::MockSpecialStoragePolicy; | 196 new quota::MockSpecialStoragePolicy; |
| 197 special_storage_policy->AddProtected(GURL(kOrigin2Url)); | 197 special_storage_policy->AddProtected(GURL(kOrigin2Url)); |
| 198 scoped_refptr<DatabaseTracker> tracker( | 198 scoped_refptr<DatabaseTracker> tracker( |
| 199 new DatabaseTracker(temp_dir.path(), incognito_mode, | 199 new DatabaseTracker(temp_dir.path(), |
| 200 special_storage_policy, NULL, NULL)); | 200 incognito_mode, |
| 201 special_storage_policy.get(), |
| 202 NULL, |
| 203 NULL)); |
| 201 | 204 |
| 202 // Create and open three databases. | 205 // Create and open three databases. |
| 203 int64 database_size = 0; | 206 int64 database_size = 0; |
| 204 const base::string16 kOrigin1 = | 207 const base::string16 kOrigin1 = |
| 205 webkit_base::GetOriginIdentifierFromURL(GURL(kOrigin1Url)); | 208 webkit_base::GetOriginIdentifierFromURL(GURL(kOrigin1Url)); |
| 206 const base::string16 kOrigin2 = | 209 const base::string16 kOrigin2 = |
| 207 webkit_base::GetOriginIdentifierFromURL(GURL(kOrigin2Url)); | 210 webkit_base::GetOriginIdentifierFromURL(GURL(kOrigin2Url)); |
| 208 const base::string16 kDB1 = ASCIIToUTF16("db1"); | 211 const base::string16 kDB1 = ASCIIToUTF16("db1"); |
| 209 const base::string16 kDB2 = ASCIIToUTF16("db2"); | 212 const base::string16 kDB2 = ASCIIToUTF16("db2"); |
| 210 const base::string16 kDB3 = ASCIIToUTF16("db3"); | 213 const base::string16 kDB3 = ASCIIToUTF16("db3"); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 294 } | 297 } |
| 295 | 298 |
| 296 static void TestDatabaseTracker(bool incognito_mode) { | 299 static void TestDatabaseTracker(bool incognito_mode) { |
| 297 // Initialize the tracker database. | 300 // Initialize the tracker database. |
| 298 base::ScopedTempDir temp_dir; | 301 base::ScopedTempDir temp_dir; |
| 299 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 302 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 300 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = | 303 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = |
| 301 new quota::MockSpecialStoragePolicy; | 304 new quota::MockSpecialStoragePolicy; |
| 302 special_storage_policy->AddProtected(GURL(kOrigin2Url)); | 305 special_storage_policy->AddProtected(GURL(kOrigin2Url)); |
| 303 scoped_refptr<DatabaseTracker> tracker( | 306 scoped_refptr<DatabaseTracker> tracker( |
| 304 new DatabaseTracker(temp_dir.path(), incognito_mode, | 307 new DatabaseTracker(temp_dir.path(), |
| 305 special_storage_policy, NULL, NULL)); | 308 incognito_mode, |
| 309 special_storage_policy.get(), |
| 310 NULL, |
| 311 NULL)); |
| 306 | 312 |
| 307 // Add two observers. | 313 // Add two observers. |
| 308 TestObserver observer1; | 314 TestObserver observer1; |
| 309 TestObserver observer2; | 315 TestObserver observer2; |
| 310 tracker->AddObserver(&observer1); | 316 tracker->AddObserver(&observer1); |
| 311 tracker->AddObserver(&observer2); | 317 tracker->AddObserver(&observer2); |
| 312 | 318 |
| 313 // Open three new databases. | 319 // Open three new databases. |
| 314 int64 database_size = 0; | 320 int64 database_size = 0; |
| 315 const base::string16 kOrigin1 = | 321 const base::string16 kOrigin1 = |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 const base::string16 kName = ASCIIToUTF16("name"); | 451 const base::string16 kName = ASCIIToUTF16("name"); |
| 446 const base::string16 kDescription = ASCIIToUTF16("description"); | 452 const base::string16 kDescription = ASCIIToUTF16("description"); |
| 447 | 453 |
| 448 base::ScopedTempDir temp_dir; | 454 base::ScopedTempDir temp_dir; |
| 449 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 455 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 450 | 456 |
| 451 // Initialize the tracker with a QuotaManagerProxy | 457 // Initialize the tracker with a QuotaManagerProxy |
| 452 scoped_refptr<TestQuotaManagerProxy> test_quota_proxy( | 458 scoped_refptr<TestQuotaManagerProxy> test_quota_proxy( |
| 453 new TestQuotaManagerProxy); | 459 new TestQuotaManagerProxy); |
| 454 scoped_refptr<DatabaseTracker> tracker( | 460 scoped_refptr<DatabaseTracker> tracker( |
| 455 new DatabaseTracker(temp_dir.path(), false /* incognito */, | 461 new DatabaseTracker(temp_dir.path(), |
| 456 NULL, test_quota_proxy, NULL)); | 462 false /* incognito */, |
| 463 NULL, |
| 464 test_quota_proxy.get(), |
| 465 NULL)); |
| 457 EXPECT_TRUE(test_quota_proxy->registered_client_); | 466 EXPECT_TRUE(test_quota_proxy->registered_client_); |
| 458 | 467 |
| 459 // Create a database and modify it a couple of times, close it, | 468 // Create a database and modify it a couple of times, close it, |
| 460 // then delete it. Observe the tracker notifies accordingly. | 469 // then delete it. Observe the tracker notifies accordingly. |
| 461 | 470 |
| 462 int64 database_size = 0; | 471 int64 database_size = 0; |
| 463 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 472 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 464 &database_size); | 473 &database_size); |
| 465 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 474 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 466 test_quota_proxy->reset(); | 475 test_quota_proxy->reset(); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 base::MessageLoop message_loop; | 556 base::MessageLoop message_loop; |
| 548 base::ScopedTempDir temp_dir; | 557 base::ScopedTempDir temp_dir; |
| 549 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 558 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 550 base::FilePath origin1_db_dir; | 559 base::FilePath origin1_db_dir; |
| 551 base::FilePath origin2_db_dir; | 560 base::FilePath origin2_db_dir; |
| 552 { | 561 { |
| 553 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = | 562 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = |
| 554 new quota::MockSpecialStoragePolicy; | 563 new quota::MockSpecialStoragePolicy; |
| 555 special_storage_policy->AddSessionOnly(GURL(kOrigin2Url)); | 564 special_storage_policy->AddSessionOnly(GURL(kOrigin2Url)); |
| 556 scoped_refptr<DatabaseTracker> tracker( | 565 scoped_refptr<DatabaseTracker> tracker( |
| 557 new DatabaseTracker( | 566 new DatabaseTracker(temp_dir.path(), |
| 558 temp_dir.path(), false, special_storage_policy, NULL, | 567 false, |
| 559 base::MessageLoopProxy::current())); | 568 special_storage_policy.get(), |
| 569 NULL, |
| 570 base::MessageLoopProxy::current())); |
| 560 | 571 |
| 561 // Open two new databases. | 572 // Open two new databases. |
| 562 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 573 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 563 &database_size); | 574 &database_size); |
| 564 EXPECT_EQ(0, database_size); | 575 EXPECT_EQ(0, database_size); |
| 565 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 576 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 566 &database_size); | 577 &database_size); |
| 567 EXPECT_EQ(0, database_size); | 578 EXPECT_EQ(0, database_size); |
| 568 | 579 |
| 569 // Write some data to each file. | 580 // Write some data to each file. |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 625 base::MessageLoop message_loop; | 636 base::MessageLoop message_loop; |
| 626 base::ScopedTempDir temp_dir; | 637 base::ScopedTempDir temp_dir; |
| 627 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 638 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 628 base::FilePath origin1_db_dir; | 639 base::FilePath origin1_db_dir; |
| 629 base::FilePath origin2_db_dir; | 640 base::FilePath origin2_db_dir; |
| 630 { | 641 { |
| 631 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = | 642 scoped_refptr<quota::MockSpecialStoragePolicy> special_storage_policy = |
| 632 new quota::MockSpecialStoragePolicy; | 643 new quota::MockSpecialStoragePolicy; |
| 633 special_storage_policy->AddSessionOnly(GURL(kOrigin2Url)); | 644 special_storage_policy->AddSessionOnly(GURL(kOrigin2Url)); |
| 634 scoped_refptr<DatabaseTracker> tracker( | 645 scoped_refptr<DatabaseTracker> tracker( |
| 635 new DatabaseTracker( | 646 new DatabaseTracker(temp_dir.path(), |
| 636 temp_dir.path(), false, special_storage_policy, NULL, | 647 false, |
| 637 base::MessageLoopProxy::current())); | 648 special_storage_policy.get(), |
| 649 NULL, |
| 650 base::MessageLoopProxy::current())); |
| 638 tracker->SetForceKeepSessionState(); | 651 tracker->SetForceKeepSessionState(); |
| 639 | 652 |
| 640 // Open two new databases. | 653 // Open two new databases. |
| 641 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 654 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 642 &database_size); | 655 &database_size); |
| 643 EXPECT_EQ(0, database_size); | 656 EXPECT_EQ(0, database_size); |
| 644 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 657 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 645 &database_size); | 658 &database_size); |
| 646 EXPECT_EQ(0, database_size); | 659 EXPECT_EQ(0, database_size); |
| 647 | 660 |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 | 859 |
| 847 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { | 860 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { |
| 848 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); | 861 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); |
| 849 } | 862 } |
| 850 | 863 |
| 851 TEST(DatabaseTrackerTest, HandleSqliteError) { | 864 TEST(DatabaseTrackerTest, HandleSqliteError) { |
| 852 DatabaseTracker_TestHelper_Test::HandleSqliteError(); | 865 DatabaseTracker_TestHelper_Test::HandleSqliteError(); |
| 853 } | 866 } |
| 854 | 867 |
| 855 } // namespace webkit_database | 868 } // namespace webkit_database |
| OLD | NEW |