| 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 | 27 |
| 28 BrowsingDataQuotaHelperTest() | 28 BrowsingDataQuotaHelperTest() |
| 29 : fetching_completed_(true), | 29 : fetching_completed_(true), |
| 30 quota_(-1), | 30 quota_(-1), |
| 31 weak_factory_(this) {} | 31 weak_factory_(this) {} |
| 32 | 32 |
| 33 virtual ~BrowsingDataQuotaHelperTest() {} | 33 virtual ~BrowsingDataQuotaHelperTest() {} |
| 34 | 34 |
| 35 virtual void SetUp() OVERRIDE { | 35 virtual void SetUp() OVERRIDE { |
| 36 EXPECT_TRUE(dir_.CreateUniqueTempDir()); | 36 EXPECT_TRUE(dir_.CreateUniqueTempDir()); |
| 37 quota_manager_ = new quota::QuotaManager( | 37 quota_manager_ = new storage::QuotaManager( |
| 38 false, | 38 false, |
| 39 dir_.path(), | 39 dir_.path(), |
| 40 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), | 40 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), |
| 41 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), | 41 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB).get(), |
| 42 NULL); | 42 NULL); |
| 43 helper_ = new BrowsingDataQuotaHelperImpl( | 43 helper_ = new BrowsingDataQuotaHelperImpl( |
| 44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI).get(), | 44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI).get(), |
| 45 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), | 45 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO).get(), |
| 46 quota_manager_.get()); | 46 quota_manager_.get()); |
| 47 } | 47 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 64 | 64 |
| 65 void StartFetching() { | 65 void StartFetching() { |
| 66 fetching_completed_ = false; | 66 fetching_completed_ = false; |
| 67 helper_->StartFetching( | 67 helper_->StartFetching( |
| 68 base::Bind(&BrowsingDataQuotaHelperTest::FetchCompleted, | 68 base::Bind(&BrowsingDataQuotaHelperTest::FetchCompleted, |
| 69 weak_factory_.GetWeakPtr())); | 69 weak_factory_.GetWeakPtr())); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void RegisterClient(const MockOriginData* data, std::size_t data_len) { | 72 void RegisterClient(const MockOriginData* data, std::size_t data_len) { |
| 73 MockStorageClient* client = | 73 MockStorageClient* client = |
| 74 new MockStorageClient( | 74 new MockStorageClient(quota_manager_->proxy(), |
| 75 quota_manager_->proxy(), data, quota::QuotaClient::kFileSystem, | 75 data, |
| 76 data_len); | 76 storage::QuotaClient::kFileSystem, |
| 77 data_len); |
| 77 quota_manager_->proxy()->RegisterClient(client); | 78 quota_manager_->proxy()->RegisterClient(client); |
| 78 client->TouchAllOriginsAndNotify(); | 79 client->TouchAllOriginsAndNotify(); |
| 79 } | 80 } |
| 80 | 81 |
| 81 void SetPersistentHostQuota(const std::string& host, int64 quota) { | 82 void SetPersistentHostQuota(const std::string& host, int64 quota) { |
| 82 quota_ = -1; | 83 quota_ = -1; |
| 83 quota_manager_->SetPersistentHostQuota( | 84 quota_manager_->SetPersistentHostQuota( |
| 84 host, quota, | 85 host, quota, |
| 85 base::Bind(&BrowsingDataQuotaHelperTest::GotPersistentHostQuota, | 86 base::Bind(&BrowsingDataQuotaHelperTest::GotPersistentHostQuota, |
| 86 weak_factory_.GetWeakPtr())); | 87 weak_factory_.GetWeakPtr())); |
| 87 } | 88 } |
| 88 | 89 |
| 89 void GetPersistentHostQuota(const std::string& host) { | 90 void GetPersistentHostQuota(const std::string& host) { |
| 90 quota_ = -1; | 91 quota_ = -1; |
| 91 quota_manager_->GetPersistentHostQuota( | 92 quota_manager_->GetPersistentHostQuota( |
| 92 host, | 93 host, |
| 93 base::Bind(&BrowsingDataQuotaHelperTest::GotPersistentHostQuota, | 94 base::Bind(&BrowsingDataQuotaHelperTest::GotPersistentHostQuota, |
| 94 weak_factory_.GetWeakPtr())); | 95 weak_factory_.GetWeakPtr())); |
| 95 } | 96 } |
| 96 | 97 |
| 97 void GotPersistentHostQuota(quota::QuotaStatusCode status, | 98 void GotPersistentHostQuota(storage::QuotaStatusCode status, int64 quota) { |
| 98 int64 quota) { | 99 EXPECT_EQ(storage::kQuotaStatusOk, status); |
| 99 EXPECT_EQ(quota::kQuotaStatusOk, status); | |
| 100 quota_ = quota; | 100 quota_ = quota; |
| 101 } | 101 } |
| 102 | 102 |
| 103 void RevokeHostQuota(const std::string& host) { | 103 void RevokeHostQuota(const std::string& host) { |
| 104 helper_->RevokeHostQuota(host); | 104 helper_->RevokeHostQuota(host); |
| 105 } | 105 } |
| 106 | 106 |
| 107 int64 quota() { | 107 int64 quota() { |
| 108 return quota_; | 108 return quota_; |
| 109 } | 109 } |
| 110 | 110 |
| 111 private: | 111 private: |
| 112 void FetchCompleted(const QuotaInfoArray& quota_info) { | 112 void FetchCompleted(const QuotaInfoArray& quota_info) { |
| 113 quota_info_ = quota_info; | 113 quota_info_ = quota_info; |
| 114 fetching_completed_ = true; | 114 fetching_completed_ = true; |
| 115 } | 115 } |
| 116 | 116 |
| 117 content::TestBrowserThreadBundle thread_bundle_; | 117 content::TestBrowserThreadBundle thread_bundle_; |
| 118 scoped_refptr<quota::QuotaManager> quota_manager_; | 118 scoped_refptr<storage::QuotaManager> quota_manager_; |
| 119 | 119 |
| 120 base::ScopedTempDir dir_; | 120 base::ScopedTempDir dir_; |
| 121 scoped_refptr<BrowsingDataQuotaHelper> helper_; | 121 scoped_refptr<BrowsingDataQuotaHelper> helper_; |
| 122 | 122 |
| 123 bool fetching_completed_; | 123 bool fetching_completed_; |
| 124 QuotaInfoArray quota_info_; | 124 QuotaInfoArray quota_info_; |
| 125 int64 quota_; | 125 int64 quota_; |
| 126 base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_; | 126 base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_; |
| 127 | 127 |
| 128 DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest); | 128 DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest); |
| 129 }; | 129 }; |
| 130 | 130 |
| 131 TEST_F(BrowsingDataQuotaHelperTest, Empty) { | 131 TEST_F(BrowsingDataQuotaHelperTest, Empty) { |
| 132 StartFetching(); | 132 StartFetching(); |
| 133 base::MessageLoop::current()->RunUntilIdle(); | 133 base::MessageLoop::current()->RunUntilIdle(); |
| 134 EXPECT_TRUE(fetching_completed()); | 134 EXPECT_TRUE(fetching_completed()); |
| 135 EXPECT_TRUE(quota_info().empty()); | 135 EXPECT_TRUE(quota_info().empty()); |
| 136 } | 136 } |
| 137 | 137 |
| 138 TEST_F(BrowsingDataQuotaHelperTest, FetchData) { | 138 TEST_F(BrowsingDataQuotaHelperTest, FetchData) { |
| 139 const MockOriginData kOrigins[] = { | 139 const MockOriginData kOrigins[] = { |
| 140 {"http://example.com/", quota::kStorageTypeTemporary, 1}, | 140 {"http://example.com/", storage::kStorageTypeTemporary, 1}, |
| 141 {"https://example.com/", quota::kStorageTypeTemporary, 10}, | 141 {"https://example.com/", storage::kStorageTypeTemporary, 10}, |
| 142 {"http://example.com/", quota::kStorageTypePersistent, 100}, | 142 {"http://example.com/", storage::kStorageTypePersistent, 100}, |
| 143 {"https://example.com/", quota::kStorageTypeSyncable, 1}, | 143 {"https://example.com/", storage::kStorageTypeSyncable, 1}, |
| 144 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, | 144 {"http://example2.com/", storage::kStorageTypeTemporary, 1000}, |
| 145 }; | 145 }; |
| 146 | 146 |
| 147 RegisterClient(kOrigins, arraysize(kOrigins)); | 147 RegisterClient(kOrigins, arraysize(kOrigins)); |
| 148 StartFetching(); | 148 StartFetching(); |
| 149 base::MessageLoop::current()->RunUntilIdle(); | 149 base::MessageLoop::current()->RunUntilIdle(); |
| 150 EXPECT_TRUE(fetching_completed()); | 150 EXPECT_TRUE(fetching_completed()); |
| 151 | 151 |
| 152 std::set<QuotaInfo> expected, actual; | 152 std::set<QuotaInfo> expected, actual; |
| 153 actual.insert(quota_info().begin(), quota_info().end()); | 153 actual.insert(quota_info().begin(), quota_info().end()); |
| 154 expected.insert(QuotaInfo("example.com", 11, 100, 1)); | 154 expected.insert(QuotaInfo("example.com", 11, 100, 1)); |
| 155 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); | 155 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); |
| 156 EXPECT_TRUE(expected == actual); | 156 EXPECT_TRUE(expected == actual); |
| 157 } | 157 } |
| 158 | 158 |
| 159 TEST_F(BrowsingDataQuotaHelperTest, IgnoreExtensionsAndDevTools) { | 159 TEST_F(BrowsingDataQuotaHelperTest, IgnoreExtensionsAndDevTools) { |
| 160 const MockOriginData kOrigins[] = { | 160 const MockOriginData kOrigins[] = { |
| 161 {"http://example.com/", quota::kStorageTypeTemporary, 1}, | 161 {"http://example.com/", storage::kStorageTypeTemporary, 1}, |
| 162 {"https://example.com/", quota::kStorageTypeTemporary, 10}, | 162 {"https://example.com/", storage::kStorageTypeTemporary, 10}, |
| 163 {"http://example.com/", quota::kStorageTypePersistent, 100}, | 163 {"http://example.com/", storage::kStorageTypePersistent, 100}, |
| 164 {"https://example.com/", quota::kStorageTypeSyncable, 1}, | 164 {"https://example.com/", storage::kStorageTypeSyncable, 1}, |
| 165 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, | 165 {"http://example2.com/", storage::kStorageTypeTemporary, 1000}, |
| 166 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", | 166 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", |
| 167 quota::kStorageTypeTemporary, 10000}, | 167 storage::kStorageTypeTemporary, 10000}, |
| 168 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", | 168 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", |
| 169 quota::kStorageTypePersistent, 100000}, | 169 storage::kStorageTypePersistent, 100000}, |
| 170 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", | 170 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", |
| 171 quota::kStorageTypeTemporary, 10000}, | 171 storage::kStorageTypeTemporary, 10000}, |
| 172 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", | 172 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", |
| 173 quota::kStorageTypePersistent, 100000}, | 173 storage::kStorageTypePersistent, 100000}, |
| 174 }; | 174 }; |
| 175 | 175 |
| 176 RegisterClient(kOrigins, arraysize(kOrigins)); | 176 RegisterClient(kOrigins, arraysize(kOrigins)); |
| 177 StartFetching(); | 177 StartFetching(); |
| 178 base::MessageLoop::current()->RunUntilIdle(); | 178 base::MessageLoop::current()->RunUntilIdle(); |
| 179 EXPECT_TRUE(fetching_completed()); | 179 EXPECT_TRUE(fetching_completed()); |
| 180 | 180 |
| 181 std::set<QuotaInfo> expected, actual; | 181 std::set<QuotaInfo> expected, actual; |
| 182 actual.insert(quota_info().begin(), quota_info().end()); | 182 actual.insert(quota_info().begin(), quota_info().end()); |
| 183 expected.insert(QuotaInfo("example.com", 11, 100, 1)); | 183 expected.insert(QuotaInfo("example.com", 11, 100, 1)); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 197 base::MessageLoop::current()->RunUntilIdle(); | 197 base::MessageLoop::current()->RunUntilIdle(); |
| 198 | 198 |
| 199 GetPersistentHostQuota(kHost1); | 199 GetPersistentHostQuota(kHost1); |
| 200 base::MessageLoop::current()->RunUntilIdle(); | 200 base::MessageLoop::current()->RunUntilIdle(); |
| 201 EXPECT_EQ(0, quota()); | 201 EXPECT_EQ(0, quota()); |
| 202 | 202 |
| 203 GetPersistentHostQuota(kHost2); | 203 GetPersistentHostQuota(kHost2); |
| 204 base::MessageLoop::current()->RunUntilIdle(); | 204 base::MessageLoop::current()->RunUntilIdle(); |
| 205 EXPECT_EQ(10, quota()); | 205 EXPECT_EQ(10, quota()); |
| 206 } | 206 } |
| OLD | NEW |