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.h" | 10 #include "base/message_loop.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 helper_ = new BrowsingDataQuotaHelperImpl( | 42 helper_ = new BrowsingDataQuotaHelperImpl( |
43 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), | 43 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI), |
44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), | 44 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO), |
45 quota_manager_); | 45 quota_manager_); |
46 } | 46 } |
47 | 47 |
48 virtual void TearDown() OVERRIDE { | 48 virtual void TearDown() OVERRIDE { |
49 helper_ = NULL; | 49 helper_ = NULL; |
50 quota_manager_ = NULL; | 50 quota_manager_ = NULL; |
51 quota_info_.clear(); | 51 quota_info_.clear(); |
52 MessageLoop::current()->RunUntilIdle(); | 52 base::MessageLoop::current()->RunUntilIdle(); |
53 } | 53 } |
54 | 54 |
55 protected: | 55 protected: |
56 const QuotaInfoArray& quota_info() const { | 56 const QuotaInfoArray& quota_info() const { |
57 return quota_info_; | 57 return quota_info_; |
58 } | 58 } |
59 | 59 |
60 bool fetching_completed() const { | 60 bool fetching_completed() const { |
61 return fetching_completed_; | 61 return fetching_completed_; |
62 } | 62 } |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 int64 quota() { | 106 int64 quota() { |
107 return quota_; | 107 return quota_; |
108 } | 108 } |
109 | 109 |
110 private: | 110 private: |
111 void FetchCompleted(const QuotaInfoArray& quota_info) { | 111 void FetchCompleted(const QuotaInfoArray& quota_info) { |
112 quota_info_ = quota_info; | 112 quota_info_ = quota_info; |
113 fetching_completed_ = true; | 113 fetching_completed_ = true; |
114 } | 114 } |
115 | 115 |
116 MessageLoop message_loop_; | 116 base::MessageLoop message_loop_; |
117 content::TestBrowserThread ui_thread_; | 117 content::TestBrowserThread ui_thread_; |
118 content::TestBrowserThread db_thread_; | 118 content::TestBrowserThread db_thread_; |
119 content::TestBrowserThread io_thread_; | 119 content::TestBrowserThread io_thread_; |
120 scoped_refptr<quota::QuotaManager> quota_manager_; | 120 scoped_refptr<quota::QuotaManager> quota_manager_; |
121 | 121 |
122 base::ScopedTempDir dir_; | 122 base::ScopedTempDir dir_; |
123 scoped_refptr<BrowsingDataQuotaHelper> helper_; | 123 scoped_refptr<BrowsingDataQuotaHelper> helper_; |
124 | 124 |
125 bool fetching_completed_; | 125 bool fetching_completed_; |
126 QuotaInfoArray quota_info_; | 126 QuotaInfoArray quota_info_; |
127 int64 quota_; | 127 int64 quota_; |
128 base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_; | 128 base::WeakPtrFactory<BrowsingDataQuotaHelperTest> weak_factory_; |
129 | 129 |
130 DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest); | 130 DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest); |
131 }; | 131 }; |
132 | 132 |
133 TEST_F(BrowsingDataQuotaHelperTest, Empty) { | 133 TEST_F(BrowsingDataQuotaHelperTest, Empty) { |
134 StartFetching(); | 134 StartFetching(); |
135 MessageLoop::current()->RunUntilIdle(); | 135 base::MessageLoop::current()->RunUntilIdle(); |
136 EXPECT_TRUE(fetching_completed()); | 136 EXPECT_TRUE(fetching_completed()); |
137 EXPECT_TRUE(quota_info().empty()); | 137 EXPECT_TRUE(quota_info().empty()); |
138 } | 138 } |
139 | 139 |
140 TEST_F(BrowsingDataQuotaHelperTest, FetchData) { | 140 TEST_F(BrowsingDataQuotaHelperTest, FetchData) { |
141 const quota::MockOriginData kOrigins[] = { | 141 const quota::MockOriginData kOrigins[] = { |
142 {"http://example.com/", quota::kStorageTypeTemporary, 1}, | 142 {"http://example.com/", quota::kStorageTypeTemporary, 1}, |
143 {"https://example.com/", quota::kStorageTypeTemporary, 10}, | 143 {"https://example.com/", quota::kStorageTypeTemporary, 10}, |
144 {"http://example.com/", quota::kStorageTypePersistent, 100}, | 144 {"http://example.com/", quota::kStorageTypePersistent, 100}, |
145 {"https://example.com/", quota::kStorageTypeSyncable, 1}, | 145 {"https://example.com/", quota::kStorageTypeSyncable, 1}, |
146 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, | 146 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, |
147 }; | 147 }; |
148 | 148 |
149 RegisterClient(kOrigins, arraysize(kOrigins)); | 149 RegisterClient(kOrigins, arraysize(kOrigins)); |
150 StartFetching(); | 150 StartFetching(); |
151 MessageLoop::current()->RunUntilIdle(); | 151 base::MessageLoop::current()->RunUntilIdle(); |
152 EXPECT_TRUE(fetching_completed()); | 152 EXPECT_TRUE(fetching_completed()); |
153 | 153 |
154 std::set<QuotaInfo> expected, actual; | 154 std::set<QuotaInfo> expected, actual; |
155 actual.insert(quota_info().begin(), quota_info().end()); | 155 actual.insert(quota_info().begin(), quota_info().end()); |
156 expected.insert(QuotaInfo("example.com", 11, 100, 1)); | 156 expected.insert(QuotaInfo("example.com", 11, 100, 1)); |
157 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); | 157 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); |
158 EXPECT_TRUE(expected == actual); | 158 EXPECT_TRUE(expected == actual); |
159 } | 159 } |
160 | 160 |
161 TEST_F(BrowsingDataQuotaHelperTest, IgnoreExtensionsAndDevTools) { | 161 TEST_F(BrowsingDataQuotaHelperTest, IgnoreExtensionsAndDevTools) { |
162 const quota::MockOriginData kOrigins[] = { | 162 const quota::MockOriginData kOrigins[] = { |
163 {"http://example.com/", quota::kStorageTypeTemporary, 1}, | 163 {"http://example.com/", quota::kStorageTypeTemporary, 1}, |
164 {"https://example.com/", quota::kStorageTypeTemporary, 10}, | 164 {"https://example.com/", quota::kStorageTypeTemporary, 10}, |
165 {"http://example.com/", quota::kStorageTypePersistent, 100}, | 165 {"http://example.com/", quota::kStorageTypePersistent, 100}, |
166 {"https://example.com/", quota::kStorageTypeSyncable, 1}, | 166 {"https://example.com/", quota::kStorageTypeSyncable, 1}, |
167 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, | 167 {"http://example2.com/", quota::kStorageTypeTemporary, 1000}, |
168 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", | 168 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", |
169 quota::kStorageTypeTemporary, 10000}, | 169 quota::kStorageTypeTemporary, 10000}, |
170 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", | 170 {"chrome-extension://abcdefghijklmnopqrstuvwxyz/", |
171 quota::kStorageTypePersistent, 100000}, | 171 quota::kStorageTypePersistent, 100000}, |
172 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", | 172 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", |
173 quota::kStorageTypeTemporary, 10000}, | 173 quota::kStorageTypeTemporary, 10000}, |
174 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", | 174 {"chrome-devtools://abcdefghijklmnopqrstuvwxyz/", |
175 quota::kStorageTypePersistent, 100000}, | 175 quota::kStorageTypePersistent, 100000}, |
176 }; | 176 }; |
177 | 177 |
178 RegisterClient(kOrigins, arraysize(kOrigins)); | 178 RegisterClient(kOrigins, arraysize(kOrigins)); |
179 StartFetching(); | 179 StartFetching(); |
180 MessageLoop::current()->RunUntilIdle(); | 180 base::MessageLoop::current()->RunUntilIdle(); |
181 EXPECT_TRUE(fetching_completed()); | 181 EXPECT_TRUE(fetching_completed()); |
182 | 182 |
183 std::set<QuotaInfo> expected, actual; | 183 std::set<QuotaInfo> expected, actual; |
184 actual.insert(quota_info().begin(), quota_info().end()); | 184 actual.insert(quota_info().begin(), quota_info().end()); |
185 expected.insert(QuotaInfo("example.com", 11, 100, 1)); | 185 expected.insert(QuotaInfo("example.com", 11, 100, 1)); |
186 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); | 186 expected.insert(QuotaInfo("example2.com", 1000, 0, 0)); |
187 EXPECT_TRUE(expected == actual); | 187 EXPECT_TRUE(expected == actual); |
188 } | 188 } |
189 | 189 |
190 TEST_F(BrowsingDataQuotaHelperTest, RevokeHostQuota) { | 190 TEST_F(BrowsingDataQuotaHelperTest, RevokeHostQuota) { |
191 const std::string kHost1("example1.com"); | 191 const std::string kHost1("example1.com"); |
192 const std::string kHost2("example2.com"); | 192 const std::string kHost2("example2.com"); |
193 | 193 |
194 SetPersistentHostQuota(kHost1, 1); | 194 SetPersistentHostQuota(kHost1, 1); |
195 SetPersistentHostQuota(kHost2, 10); | 195 SetPersistentHostQuota(kHost2, 10); |
196 MessageLoop::current()->RunUntilIdle(); | 196 base::MessageLoop::current()->RunUntilIdle(); |
197 | 197 |
198 RevokeHostQuota(kHost1); | 198 RevokeHostQuota(kHost1); |
199 MessageLoop::current()->RunUntilIdle(); | 199 base::MessageLoop::current()->RunUntilIdle(); |
200 | 200 |
201 GetPersistentHostQuota(kHost1); | 201 GetPersistentHostQuota(kHost1); |
202 MessageLoop::current()->RunUntilIdle(); | 202 base::MessageLoop::current()->RunUntilIdle(); |
203 EXPECT_EQ(0, quota()); | 203 EXPECT_EQ(0, quota()); |
204 | 204 |
205 GetPersistentHostQuota(kHost2); | 205 GetPersistentHostQuota(kHost2); |
206 MessageLoop::current()->RunUntilIdle(); | 206 base::MessageLoop::current()->RunUntilIdle(); |
207 EXPECT_EQ(10, quota()); | 207 EXPECT_EQ(10, quota()); |
208 } | 208 } |
OLD | NEW |