| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.h" | 6 #include "base/files/file.h" |
| 7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| 11 #include "base/message_loop/message_loop_proxy.h" | 11 #include "base/message_loop/message_loop_proxy.h" |
| 12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 13 #include "base/time/time.h" | 13 #include "base/time/time.h" |
| 14 #include "content/public/test/mock_special_storage_policy.h" | 14 #include "content/public/test/mock_special_storage_policy.h" |
| 15 #include "net/base/net_errors.h" | 15 #include "net/base/net_errors.h" |
| 16 #include "net/base/test_completion_callback.h" | 16 #include "net/base/test_completion_callback.h" |
| 17 #include "testing/gtest/include/gtest/gtest.h" | 17 #include "testing/gtest/include/gtest/gtest.h" |
| 18 #include "third_party/sqlite/sqlite3.h" | 18 #include "third_party/sqlite/sqlite3.h" |
| 19 #include "webkit/browser/database/database_tracker.h" | 19 #include "webkit/browser/database/database_tracker.h" |
| 20 #include "webkit/browser/quota/quota_manager_proxy.h" | 20 #include "webkit/browser/quota/quota_manager_proxy.h" |
| 21 #include "webkit/common/database/database_identifier.h" | 21 #include "webkit/common/database/database_identifier.h" |
| 22 | 22 |
| 23 using base::ASCIIToUTF16; | 23 using base::ASCIIToUTF16; |
| 24 using webkit_database::DatabaseConnections; | 24 using storage::DatabaseConnections; |
| 25 using webkit_database::DatabaseTracker; | 25 using storage::DatabaseTracker; |
| 26 using webkit_database::OriginInfo; | 26 using storage::OriginInfo; |
| 27 | 27 |
| 28 namespace { | 28 namespace { |
| 29 | 29 |
| 30 const char kOrigin1Url[] = "http://origin1"; | 30 const char kOrigin1Url[] = "http://origin1"; |
| 31 const char kOrigin2Url[] = "http://protected_origin2"; | 31 const char kOrigin2Url[] = "http://protected_origin2"; |
| 32 | 32 |
| 33 class TestObserver : public webkit_database::DatabaseTracker::Observer { | 33 class TestObserver : public storage::DatabaseTracker::Observer { |
| 34 public: | 34 public: |
| 35 TestObserver() | 35 TestObserver() |
| 36 : new_notification_received_(false), | 36 : new_notification_received_(false), |
| 37 observe_size_changes_(true), | 37 observe_size_changes_(true), |
| 38 observe_scheduled_deletions_(true) { | 38 observe_scheduled_deletions_(true) { |
| 39 } | 39 } |
| 40 TestObserver(bool observe_size_changes, bool observe_scheduled_deletions) | 40 TestObserver(bool observe_size_changes, bool observe_scheduled_deletions) |
| 41 : new_notification_received_(false), | 41 : new_notification_received_(false), |
| 42 observe_size_changes_(observe_size_changes), | 42 observe_size_changes_(observe_size_changes), |
| 43 observe_scheduled_deletions_(observe_scheduled_deletions) { | 43 observe_scheduled_deletions_(observe_scheduled_deletions) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 int64 expected_database_size) { | 89 int64 expected_database_size) { |
| 90 EXPECT_TRUE(observer->DidReceiveNewNotification()); | 90 EXPECT_TRUE(observer->DidReceiveNewNotification()); |
| 91 EXPECT_EQ(expected_origin_identifier, | 91 EXPECT_EQ(expected_origin_identifier, |
| 92 observer->GetNotificationOriginIdentifier()); | 92 observer->GetNotificationOriginIdentifier()); |
| 93 EXPECT_EQ(expected_database_name, | 93 EXPECT_EQ(expected_database_name, |
| 94 observer->GetNotificationDatabaseName()); | 94 observer->GetNotificationDatabaseName()); |
| 95 EXPECT_EQ(expected_database_size, | 95 EXPECT_EQ(expected_database_size, |
| 96 observer->GetNotificationDatabaseSize()); | 96 observer->GetNotificationDatabaseSize()); |
| 97 } | 97 } |
| 98 | 98 |
| 99 class TestQuotaManagerProxy : public quota::QuotaManagerProxy { | 99 class TestQuotaManagerProxy : public storage::QuotaManagerProxy { |
| 100 public: | 100 public: |
| 101 TestQuotaManagerProxy() | 101 TestQuotaManagerProxy() |
| 102 : QuotaManagerProxy(NULL, NULL), | 102 : QuotaManagerProxy(NULL, NULL), |
| 103 registered_client_(NULL) { | 103 registered_client_(NULL) { |
| 104 } | 104 } |
| 105 | 105 |
| 106 virtual void RegisterClient(quota::QuotaClient* client) OVERRIDE { | 106 virtual void RegisterClient(storage::QuotaClient* client) OVERRIDE { |
| 107 EXPECT_FALSE(registered_client_); | 107 EXPECT_FALSE(registered_client_); |
| 108 registered_client_ = client; | 108 registered_client_ = client; |
| 109 } | 109 } |
| 110 | 110 |
| 111 virtual void NotifyStorageAccessed(quota::QuotaClient::ID client_id, | 111 virtual void NotifyStorageAccessed(storage::QuotaClient::ID client_id, |
| 112 const GURL& origin, | 112 const GURL& origin, |
| 113 quota::StorageType type) OVERRIDE { | 113 storage::StorageType type) OVERRIDE { |
| 114 EXPECT_EQ(quota::QuotaClient::kDatabase, client_id); | 114 EXPECT_EQ(storage::QuotaClient::kDatabase, client_id); |
| 115 EXPECT_EQ(quota::kStorageTypeTemporary, type); | 115 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
| 116 accesses_[origin] += 1; | 116 accesses_[origin] += 1; |
| 117 } | 117 } |
| 118 | 118 |
| 119 virtual void NotifyStorageModified(quota::QuotaClient::ID client_id, | 119 virtual void NotifyStorageModified(storage::QuotaClient::ID client_id, |
| 120 const GURL& origin, | 120 const GURL& origin, |
| 121 quota::StorageType type, | 121 storage::StorageType type, |
| 122 int64 delta) OVERRIDE { | 122 int64 delta) OVERRIDE { |
| 123 EXPECT_EQ(quota::QuotaClient::kDatabase, client_id); | 123 EXPECT_EQ(storage::QuotaClient::kDatabase, client_id); |
| 124 EXPECT_EQ(quota::kStorageTypeTemporary, type); | 124 EXPECT_EQ(storage::kStorageTypeTemporary, type); |
| 125 modifications_[origin].first += 1; | 125 modifications_[origin].first += 1; |
| 126 modifications_[origin].second += delta; | 126 modifications_[origin].second += delta; |
| 127 } | 127 } |
| 128 | 128 |
| 129 // Not needed for our tests. | 129 // Not needed for our tests. |
| 130 virtual void NotifyOriginInUse(const GURL& origin) OVERRIDE {} | 130 virtual void NotifyOriginInUse(const GURL& origin) OVERRIDE {} |
| 131 virtual void NotifyOriginNoLongerInUse(const GURL& origin) OVERRIDE {} | 131 virtual void NotifyOriginNoLongerInUse(const GURL& origin) OVERRIDE {} |
| 132 virtual void SetUsageCacheEnabled(quota::QuotaClient::ID client_id, | 132 virtual void SetUsageCacheEnabled(storage::QuotaClient::ID client_id, |
| 133 const GURL& origin, | 133 const GURL& origin, |
| 134 quota::StorageType type, | 134 storage::StorageType type, |
| 135 bool enabled) OVERRIDE {} | 135 bool enabled) OVERRIDE {} |
| 136 virtual void GetUsageAndQuota( | 136 virtual void GetUsageAndQuota( |
| 137 base::SequencedTaskRunner* original_task_runner, | 137 base::SequencedTaskRunner* original_task_runner, |
| 138 const GURL& origin, | 138 const GURL& origin, |
| 139 quota::StorageType type, | 139 storage::StorageType type, |
| 140 const GetUsageAndQuotaCallback& callback) OVERRIDE {} | 140 const GetUsageAndQuotaCallback& callback) OVERRIDE {} |
| 141 | 141 |
| 142 void SimulateQuotaManagerDestroyed() { | 142 void SimulateQuotaManagerDestroyed() { |
| 143 if (registered_client_) { | 143 if (registered_client_) { |
| 144 registered_client_->OnQuotaManagerDestroyed(); | 144 registered_client_->OnQuotaManagerDestroyed(); |
| 145 registered_client_ = NULL; | 145 registered_client_ = NULL; |
| 146 } | 146 } |
| 147 } | 147 } |
| 148 | 148 |
| 149 bool WasAccessNotified(const GURL& origin) { | 149 bool WasAccessNotified(const GURL& origin) { |
| 150 return accesses_[origin] != 0; | 150 return accesses_[origin] != 0; |
| 151 } | 151 } |
| 152 | 152 |
| 153 bool WasModificationNotified(const GURL& origin, int64 amount) { | 153 bool WasModificationNotified(const GURL& origin, int64 amount) { |
| 154 return modifications_[origin].first != 0 && | 154 return modifications_[origin].first != 0 && |
| 155 modifications_[origin].second == amount; | 155 modifications_[origin].second == amount; |
| 156 } | 156 } |
| 157 | 157 |
| 158 void reset() { | 158 void reset() { |
| 159 accesses_.clear(); | 159 accesses_.clear(); |
| 160 modifications_.clear(); | 160 modifications_.clear(); |
| 161 } | 161 } |
| 162 | 162 |
| 163 quota::QuotaClient* registered_client_; | 163 storage::QuotaClient* registered_client_; |
| 164 | 164 |
| 165 // Map from origin to count of access notifications. | 165 // Map from origin to count of access notifications. |
| 166 std::map<GURL, int> accesses_; | 166 std::map<GURL, int> accesses_; |
| 167 | 167 |
| 168 // Map from origin to <count, sum of deltas> | 168 // Map from origin to <count, sum of deltas> |
| 169 std::map<GURL, std::pair<int, int64> > modifications_; | 169 std::map<GURL, std::pair<int, int64> > modifications_; |
| 170 | 170 |
| 171 protected: | 171 protected: |
| 172 virtual ~TestQuotaManagerProxy() { | 172 virtual ~TestQuotaManagerProxy() { |
| 173 EXPECT_FALSE(registered_client_); | 173 EXPECT_FALSE(registered_client_); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 204 scoped_refptr<DatabaseTracker> tracker( | 204 scoped_refptr<DatabaseTracker> tracker( |
| 205 new DatabaseTracker(temp_dir.path(), | 205 new DatabaseTracker(temp_dir.path(), |
| 206 incognito_mode, | 206 incognito_mode, |
| 207 special_storage_policy.get(), | 207 special_storage_policy.get(), |
| 208 NULL, | 208 NULL, |
| 209 NULL)); | 209 NULL)); |
| 210 | 210 |
| 211 // Create and open three databases. | 211 // Create and open three databases. |
| 212 int64 database_size = 0; | 212 int64 database_size = 0; |
| 213 const std::string kOrigin1 = | 213 const std::string kOrigin1 = |
| 214 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin1Url)); | 214 storage::GetIdentifierFromOrigin(GURL(kOrigin1Url)); |
| 215 const std::string kOrigin2 = | 215 const std::string kOrigin2 = |
| 216 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin2Url)); | 216 storage::GetIdentifierFromOrigin(GURL(kOrigin2Url)); |
| 217 const base::string16 kDB1 = ASCIIToUTF16("db1"); | 217 const base::string16 kDB1 = ASCIIToUTF16("db1"); |
| 218 const base::string16 kDB2 = ASCIIToUTF16("db2"); | 218 const base::string16 kDB2 = ASCIIToUTF16("db2"); |
| 219 const base::string16 kDB3 = ASCIIToUTF16("db3"); | 219 const base::string16 kDB3 = ASCIIToUTF16("db3"); |
| 220 const base::string16 kDescription = ASCIIToUTF16("database_description"); | 220 const base::string16 kDescription = ASCIIToUTF16("database_description"); |
| 221 | 221 |
| 222 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 222 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 223 &database_size); | 223 &database_size); |
| 224 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 224 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 225 &database_size); | 225 &database_size); |
| 226 tracker->DatabaseOpened(kOrigin2, kDB3, kDescription, 0, | 226 tracker->DatabaseOpened(kOrigin2, kDB3, kDescription, 0, |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 318 | 318 |
| 319 // Add two observers. | 319 // Add two observers. |
| 320 TestObserver observer1; | 320 TestObserver observer1; |
| 321 TestObserver observer2; | 321 TestObserver observer2; |
| 322 tracker->AddObserver(&observer1); | 322 tracker->AddObserver(&observer1); |
| 323 tracker->AddObserver(&observer2); | 323 tracker->AddObserver(&observer2); |
| 324 | 324 |
| 325 // Open three new databases. | 325 // Open three new databases. |
| 326 int64 database_size = 0; | 326 int64 database_size = 0; |
| 327 const std::string kOrigin1 = | 327 const std::string kOrigin1 = |
| 328 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin1Url)); | 328 storage::GetIdentifierFromOrigin(GURL(kOrigin1Url)); |
| 329 const std::string kOrigin2 = | 329 const std::string kOrigin2 = |
| 330 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin2Url)); | 330 storage::GetIdentifierFromOrigin(GURL(kOrigin2Url)); |
| 331 const base::string16 kDB1 = ASCIIToUTF16("db1"); | 331 const base::string16 kDB1 = ASCIIToUTF16("db1"); |
| 332 const base::string16 kDB2 = ASCIIToUTF16("db2"); | 332 const base::string16 kDB2 = ASCIIToUTF16("db2"); |
| 333 const base::string16 kDB3 = ASCIIToUTF16("db3"); | 333 const base::string16 kDB3 = ASCIIToUTF16("db3"); |
| 334 const base::string16 kDescription = ASCIIToUTF16("database_description"); | 334 const base::string16 kDescription = ASCIIToUTF16("database_description"); |
| 335 | 335 |
| 336 // Get the info for kOrigin1 and kOrigin2 | 336 // Get the info for kOrigin1 and kOrigin2 |
| 337 DatabaseTracker::CachedOriginInfo* origin1_info = | 337 DatabaseTracker::CachedOriginInfo* origin1_info = |
| 338 tracker->GetCachedOriginInfo(kOrigin1); | 338 tracker->GetCachedOriginInfo(kOrigin1); |
| 339 DatabaseTracker::CachedOriginInfo* origin2_info = | 339 DatabaseTracker::CachedOriginInfo* origin2_info = |
| 340 tracker->GetCachedOriginInfo(kOrigin1); | 340 tracker->GetCachedOriginInfo(kOrigin1); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 EXPECT_EQ(size_t(1), origins_info.size()); | 445 EXPECT_EQ(size_t(1), origins_info.size()); |
| 446 EXPECT_EQ(kOrigin2, origins_info[0].GetOriginIdentifier()); | 446 EXPECT_EQ(kOrigin2, origins_info[0].GetOriginIdentifier()); |
| 447 | 447 |
| 448 origin1_info = tracker->GetCachedOriginInfo(kOrigin1); | 448 origin1_info = tracker->GetCachedOriginInfo(kOrigin1); |
| 449 EXPECT_TRUE(origin1_info); | 449 EXPECT_TRUE(origin1_info); |
| 450 EXPECT_EQ(0, origin1_info->TotalSize()); | 450 EXPECT_EQ(0, origin1_info->TotalSize()); |
| 451 } | 451 } |
| 452 | 452 |
| 453 static void DatabaseTrackerQuotaIntegration() { | 453 static void DatabaseTrackerQuotaIntegration() { |
| 454 const GURL kOrigin(kOrigin1Url); | 454 const GURL kOrigin(kOrigin1Url); |
| 455 const std::string kOriginId = | 455 const std::string kOriginId = storage::GetIdentifierFromOrigin(kOrigin); |
| 456 webkit_database::GetIdentifierFromOrigin(kOrigin); | |
| 457 const base::string16 kName = ASCIIToUTF16("name"); | 456 const base::string16 kName = ASCIIToUTF16("name"); |
| 458 const base::string16 kDescription = ASCIIToUTF16("description"); | 457 const base::string16 kDescription = ASCIIToUTF16("description"); |
| 459 | 458 |
| 460 base::ScopedTempDir temp_dir; | 459 base::ScopedTempDir temp_dir; |
| 461 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 460 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 462 | 461 |
| 463 // Initialize the tracker with a QuotaManagerProxy | 462 // Initialize the tracker with a QuotaManagerProxy |
| 464 scoped_refptr<TestQuotaManagerProxy> test_quota_proxy( | 463 scoped_refptr<TestQuotaManagerProxy> test_quota_proxy( |
| 465 new TestQuotaManagerProxy); | 464 new TestQuotaManagerProxy); |
| 466 scoped_refptr<DatabaseTracker> tracker( | 465 scoped_refptr<DatabaseTracker> tracker( |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 544 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); | 543 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); |
| 545 | 544 |
| 546 // Cleanup. | 545 // Cleanup. |
| 547 crashed_renderer_connections.RemoveAllConnections(); | 546 crashed_renderer_connections.RemoveAllConnections(); |
| 548 test_quota_proxy->SimulateQuotaManagerDestroyed(); | 547 test_quota_proxy->SimulateQuotaManagerDestroyed(); |
| 549 } | 548 } |
| 550 | 549 |
| 551 static void DatabaseTrackerClearSessionOnlyDatabasesOnExit() { | 550 static void DatabaseTrackerClearSessionOnlyDatabasesOnExit() { |
| 552 int64 database_size = 0; | 551 int64 database_size = 0; |
| 553 const std::string kOrigin1 = | 552 const std::string kOrigin1 = |
| 554 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin1Url)); | 553 storage::GetIdentifierFromOrigin(GURL(kOrigin1Url)); |
| 555 const std::string kOrigin2 = | 554 const std::string kOrigin2 = |
| 556 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin2Url)); | 555 storage::GetIdentifierFromOrigin(GURL(kOrigin2Url)); |
| 557 const base::string16 kDB1 = ASCIIToUTF16("db1"); | 556 const base::string16 kDB1 = ASCIIToUTF16("db1"); |
| 558 const base::string16 kDB2 = ASCIIToUTF16("db2"); | 557 const base::string16 kDB2 = ASCIIToUTF16("db2"); |
| 559 const base::string16 kDescription = ASCIIToUTF16("database_description"); | 558 const base::string16 kDescription = ASCIIToUTF16("database_description"); |
| 560 | 559 |
| 561 // Initialize the tracker database. | 560 // Initialize the tracker database. |
| 562 base::MessageLoop message_loop; | 561 base::MessageLoop message_loop; |
| 563 base::ScopedTempDir temp_dir; | 562 base::ScopedTempDir temp_dir; |
| 564 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 563 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 565 base::FilePath origin1_db_dir; | 564 base::FilePath origin1_db_dir; |
| 566 base::FilePath origin2_db_dir; | 565 base::FilePath origin2_db_dir; |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 624 | 623 |
| 625 // The origin directory of kOrigin1 remains, but the origin directory of | 624 // The origin directory of kOrigin1 remains, but the origin directory of |
| 626 // kOrigin2 is deleted. | 625 // kOrigin2 is deleted. |
| 627 EXPECT_TRUE(base::PathExists(origin1_db_dir)); | 626 EXPECT_TRUE(base::PathExists(origin1_db_dir)); |
| 628 EXPECT_FALSE(base::PathExists(origin2_db_dir)); | 627 EXPECT_FALSE(base::PathExists(origin2_db_dir)); |
| 629 } | 628 } |
| 630 | 629 |
| 631 static void DatabaseTrackerSetForceKeepSessionState() { | 630 static void DatabaseTrackerSetForceKeepSessionState() { |
| 632 int64 database_size = 0; | 631 int64 database_size = 0; |
| 633 const std::string kOrigin1 = | 632 const std::string kOrigin1 = |
| 634 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin1Url)); | 633 storage::GetIdentifierFromOrigin(GURL(kOrigin1Url)); |
| 635 const std::string kOrigin2 = | 634 const std::string kOrigin2 = |
| 636 webkit_database::GetIdentifierFromOrigin(GURL(kOrigin2Url)); | 635 storage::GetIdentifierFromOrigin(GURL(kOrigin2Url)); |
| 637 const base::string16 kDB1 = ASCIIToUTF16("db1"); | 636 const base::string16 kDB1 = ASCIIToUTF16("db1"); |
| 638 const base::string16 kDB2 = ASCIIToUTF16("db2"); | 637 const base::string16 kDB2 = ASCIIToUTF16("db2"); |
| 639 const base::string16 kDescription = ASCIIToUTF16("database_description"); | 638 const base::string16 kDescription = ASCIIToUTF16("database_description"); |
| 640 | 639 |
| 641 // Initialize the tracker database. | 640 // Initialize the tracker database. |
| 642 base::MessageLoop message_loop; | 641 base::MessageLoop message_loop; |
| 643 base::ScopedTempDir temp_dir; | 642 base::ScopedTempDir temp_dir; |
| 644 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 643 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 645 base::FilePath origin1_db_dir; | 644 base::FilePath origin1_db_dir; |
| 646 base::FilePath origin2_db_dir; | 645 base::FilePath origin2_db_dir; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 701 base::PathExists(tracker->GetFullDBFilePath(kOrigin1, kDB1))); | 700 base::PathExists(tracker->GetFullDBFilePath(kOrigin1, kDB1))); |
| 702 EXPECT_TRUE( | 701 EXPECT_TRUE( |
| 703 base::PathExists(tracker->GetFullDBFilePath(kOrigin2, kDB2))); | 702 base::PathExists(tracker->GetFullDBFilePath(kOrigin2, kDB2))); |
| 704 | 703 |
| 705 EXPECT_TRUE(base::PathExists(origin1_db_dir)); | 704 EXPECT_TRUE(base::PathExists(origin1_db_dir)); |
| 706 EXPECT_TRUE(base::PathExists(origin2_db_dir)); | 705 EXPECT_TRUE(base::PathExists(origin2_db_dir)); |
| 707 } | 706 } |
| 708 | 707 |
| 709 static void EmptyDatabaseNameIsValid() { | 708 static void EmptyDatabaseNameIsValid() { |
| 710 const GURL kOrigin(kOrigin1Url); | 709 const GURL kOrigin(kOrigin1Url); |
| 711 const std::string kOriginId = | 710 const std::string kOriginId = storage::GetIdentifierFromOrigin(kOrigin); |
| 712 webkit_database::GetIdentifierFromOrigin(kOrigin); | |
| 713 const base::string16 kEmptyName; | 711 const base::string16 kEmptyName; |
| 714 const base::string16 kDescription(ASCIIToUTF16("description")); | 712 const base::string16 kDescription(ASCIIToUTF16("description")); |
| 715 const base::string16 kChangedDescription( | 713 const base::string16 kChangedDescription( |
| 716 ASCIIToUTF16("changed_description")); | 714 ASCIIToUTF16("changed_description")); |
| 717 | 715 |
| 718 // Initialize a tracker database, no need to put it on disk. | 716 // Initialize a tracker database, no need to put it on disk. |
| 719 const bool kUseInMemoryTrackerDatabase = true; | 717 const bool kUseInMemoryTrackerDatabase = true; |
| 720 base::ScopedTempDir temp_dir; | 718 base::ScopedTempDir temp_dir; |
| 721 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 719 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 722 scoped_refptr<DatabaseTracker> tracker( | 720 scoped_refptr<DatabaseTracker> tracker( |
| (...skipping 27 matching lines...) Expand all Loading... |
| 750 // Deleting it should return to the initial state. | 748 // Deleting it should return to the initial state. |
| 751 EXPECT_EQ(net::OK, tracker->DeleteDatabase(kOriginId, kEmptyName, | 749 EXPECT_EQ(net::OK, tracker->DeleteDatabase(kOriginId, kEmptyName, |
| 752 net::CompletionCallback())); | 750 net::CompletionCallback())); |
| 753 infos.clear(); | 751 infos.clear(); |
| 754 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); | 752 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); |
| 755 EXPECT_TRUE(infos.empty()); | 753 EXPECT_TRUE(infos.empty()); |
| 756 } | 754 } |
| 757 | 755 |
| 758 static void HandleSqliteError() { | 756 static void HandleSqliteError() { |
| 759 const GURL kOrigin(kOrigin1Url); | 757 const GURL kOrigin(kOrigin1Url); |
| 760 const std::string kOriginId = | 758 const std::string kOriginId = storage::GetIdentifierFromOrigin(kOrigin); |
| 761 webkit_database::GetIdentifierFromOrigin(kOrigin); | |
| 762 const base::string16 kName(ASCIIToUTF16("name")); | 759 const base::string16 kName(ASCIIToUTF16("name")); |
| 763 const base::string16 kDescription(ASCIIToUTF16("description")); | 760 const base::string16 kDescription(ASCIIToUTF16("description")); |
| 764 | 761 |
| 765 // Initialize a tracker database, no need to put it on disk. | 762 // Initialize a tracker database, no need to put it on disk. |
| 766 const bool kUseInMemoryTrackerDatabase = true; | 763 const bool kUseInMemoryTrackerDatabase = true; |
| 767 base::ScopedTempDir temp_dir; | 764 base::ScopedTempDir temp_dir; |
| 768 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 765 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 769 scoped_refptr<DatabaseTracker> tracker( | 766 scoped_refptr<DatabaseTracker> tracker( |
| 770 new DatabaseTracker(temp_dir.path(), kUseInMemoryTrackerDatabase, | 767 new DatabaseTracker(temp_dir.path(), kUseInMemoryTrackerDatabase, |
| 771 NULL, NULL, NULL)); | 768 NULL, NULL, NULL)); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 866 | 863 |
| 867 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { | 864 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { |
| 868 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); | 865 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); |
| 869 } | 866 } |
| 870 | 867 |
| 871 TEST(DatabaseTrackerTest, HandleSqliteError) { | 868 TEST(DatabaseTrackerTest, HandleSqliteError) { |
| 872 DatabaseTracker_TestHelper_Test::HandleSqliteError(); | 869 DatabaseTracker_TestHelper_Test::HandleSqliteError(); |
| 873 } | 870 } |
| 874 | 871 |
| 875 } // namespace content | 872 } // namespace content |
| OLD | NEW |