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

Side by Side Diff: webkit/quota/mock_quota_manager_unittest.cc

Issue 7839029: QuotaManager::DeleteOriginData now allows deletion of specific QuotaClients (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Back from the dead! Created 8 years, 11 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) 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 5
6 #include <set> 6 #include <set>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/message_loop_proxy.h" 12 #include "base/message_loop_proxy.h"
13 #include "base/scoped_temp_dir.h" 13 #include "base/scoped_temp_dir.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "webkit/quota/mock_quota_manager.h" 15 #include "webkit/quota/mock_quota_manager.h"
16 #include "webkit/quota/mock_special_storage_policy.h" 16 #include "webkit/quota/mock_special_storage_policy.h"
17 #include "webkit/quota/mock_storage_client.h" 17 #include "webkit/quota/mock_storage_client.h"
18 18
19 namespace quota { 19 namespace quota {
20 20
21 const char kTestOrigin1[] = "http://host1:1/"; 21 const char kTestOrigin1[] = "http://host1:1/";
22 const char kTestOrigin2[] = "http://host2:1/"; 22 const char kTestOrigin2[] = "http://host2:1/";
23 const char kTestOrigin3[] = "http://host3:1/"; 23 const char kTestOrigin3[] = "http://host3:1/";
24 24
25 const GURL kOrigin1(kTestOrigin1); 25 const GURL kOrigin1(kTestOrigin1);
26 const GURL kOrigin2(kTestOrigin2); 26 const GURL kOrigin2(kTestOrigin2);
27 const GURL kOrigin3(kTestOrigin3); 27 const GURL kOrigin3(kTestOrigin3);
28 28
29 const StorageType kTemporary = kStorageTypeTemporary;
30 const StorageType kPersistent = kStorageTypePersistent;
31
32 const QuotaClient::ID kClientFile = QuotaClient::kFileSystem;
33 const QuotaClient::ID kClientDB = QuotaClient::kIndexedDatabase;
34
29 class MockQuotaManagerTest : public testing::Test { 35 class MockQuotaManagerTest : public testing::Test {
30 public: 36 public:
31 MockQuotaManagerTest() 37 MockQuotaManagerTest()
32 : weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 38 : weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
33 deletion_callback_count_(0) { 39 deletion_callback_count_(0) {
34 } 40 }
35 41
36 void SetUp() { 42 void SetUp() {
37 ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); 43 ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
38 policy_ = new MockSpecialStoragePolicy; 44 policy_ = new MockSpecialStoragePolicy;
(...skipping 16 matching lines...) Expand all
55 type, since, 61 type, since,
56 base::Bind(&MockQuotaManagerTest::GotModifiedOrigins, 62 base::Bind(&MockQuotaManagerTest::GotModifiedOrigins,
57 weak_factory_.GetWeakPtr())); 63 weak_factory_.GetWeakPtr()));
58 } 64 }
59 65
60 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) { 66 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) {
61 origins_ = origins; 67 origins_ = origins;
62 type_ = type; 68 type_ = type;
63 } 69 }
64 70
65 void DeleteOriginData(const GURL& origin, StorageType type) { 71 void DeleteOriginData(const GURL& origin, StorageType type,
72 int quota_client_mask) {
66 manager_->DeleteOriginData( 73 manager_->DeleteOriginData(
67 origin, type, 74 origin, type, quota_client_mask,
68 base::Bind(&MockQuotaManagerTest::DeletedOriginData, 75 base::Bind(&MockQuotaManagerTest::DeletedOriginData,
69 weak_factory_.GetWeakPtr())); 76 weak_factory_.GetWeakPtr()));
70 } 77 }
71 78
72 void DeletedOriginData(QuotaStatusCode status) { 79 void DeletedOriginData(QuotaStatusCode status) {
73 ++deletion_callback_count_; 80 ++deletion_callback_count_;
74 EXPECT_EQ(quota::kQuotaStatusOk, status); 81 EXPECT_EQ(quota::kQuotaStatusOk, status);
75 } 82 }
76 83
77 int deletion_callback_count() const { 84 int deletion_callback_count() const {
(...skipping 20 matching lines...) Expand all
98 105
99 int deletion_callback_count_; 106 int deletion_callback_count_;
100 107
101 std::set<GURL> origins_; 108 std::set<GURL> origins_;
102 StorageType type_; 109 StorageType type_;
103 110
104 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest); 111 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest);
105 }; 112 };
106 113
107 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) { 114 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) {
108 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 115 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
109 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 116 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
110 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 117 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
111 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 118 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
119 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
120 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
122 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
112 123
113 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 124 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
114 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 125 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
115 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 126 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
116 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 127 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
117 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 128 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
130 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
131 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
132 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
118 133
119 manager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now()); 134 manager()->AddOrigin(kOrigin1, kPersistent, kClientFile, base::Time::Now());
120 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 135 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 136 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
122 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 137 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
123 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 138 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
139 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
140 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
141 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
142 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
124 143
125 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 144 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile | kClientDB,
126 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 145 base::Time::Now());
127 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 146 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
128 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 147 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemporary, kClientDB));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 148 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPersistent, kClientFile));
149 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPersistent, kClientDB));
150 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
151 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemporary, kClientDB));
152 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientFile));
153 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPersistent, kClientDB));
130 } 154 }
131 155
132 TEST_F(MockQuotaManagerTest, OriginDeletion) { 156 TEST_F(MockQuotaManagerTest, OriginDeletion) {
133 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 157 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, base::Time::Now());
134 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 158 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile, base::Time::Now());
135 159
136 DeleteOriginData(kOrigin2, kStorageTypeTemporary); 160 DeleteOriginData(kOrigin2, kTemporary, kClientFile);
137 MessageLoop::current()->RunAllPending(); 161 MessageLoop::current()->RunAllPending();
138 162
139 EXPECT_EQ(1, deletion_callback_count()); 163 EXPECT_EQ(1, deletion_callback_count());
140 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 164 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemporary, kClientFile));
141 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 165 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemporary, kClientFile));
142 } 166 }
143 167
144 TEST_F(MockQuotaManagerTest, ModifiedOrigins) { 168 TEST_F(MockQuotaManagerTest, ModifiedOrigins) {
145 base::Time now = base::Time::Now(); 169 base::Time now = base::Time::Now();
146 base::Time then = base::Time(); 170 base::Time then = base::Time();
147 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000); 171 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
148 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000); 172 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
149 173
150 GetModifiedOrigins(kStorageTypeTemporary, then); 174 GetModifiedOrigins(kTemporary, then);
151 MessageLoop::current()->RunAllPending(); 175 MessageLoop::current()->RunAllPending();
152 EXPECT_TRUE(origins().empty()); 176 EXPECT_TRUE(origins().empty());
153 177
154 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour); 178 manager()->AddOrigin(kOrigin1, kTemporary, kClientFile, now - an_hour);
155 179
156 GetModifiedOrigins(kStorageTypeTemporary, then); 180 GetModifiedOrigins(kTemporary, then);
157 MessageLoop::current()->RunAllPending(); 181 MessageLoop::current()->RunAllPending();
158 182
159 EXPECT_EQ(kStorageTypeTemporary, type()); 183 EXPECT_EQ(kTemporary, type());
160 EXPECT_EQ(1UL, origins().size()); 184 EXPECT_EQ(1UL, origins().size());
161 EXPECT_EQ(1UL, origins().count(kOrigin1)); 185 EXPECT_EQ(1UL, origins().count(kOrigin1));
162 EXPECT_EQ(0UL, origins().count(kOrigin2)); 186 EXPECT_EQ(0UL, origins().count(kOrigin2));
163 187
164 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now); 188 manager()->AddOrigin(kOrigin2, kTemporary, kClientFile, now);
165 189
166 GetModifiedOrigins(kStorageTypeTemporary, then); 190 GetModifiedOrigins(kTemporary, then);
167 MessageLoop::current()->RunAllPending(); 191 MessageLoop::current()->RunAllPending();
168 192
169 EXPECT_EQ(kStorageTypeTemporary, type()); 193 EXPECT_EQ(kTemporary, type());
170 EXPECT_EQ(2UL, origins().size()); 194 EXPECT_EQ(2UL, origins().size());
171 EXPECT_EQ(1UL, origins().count(kOrigin1)); 195 EXPECT_EQ(1UL, origins().count(kOrigin1));
172 EXPECT_EQ(1UL, origins().count(kOrigin2)); 196 EXPECT_EQ(1UL, origins().count(kOrigin2));
173 197
174 GetModifiedOrigins(kStorageTypeTemporary, now - a_minute); 198 GetModifiedOrigins(kTemporary, now - a_minute);
175 MessageLoop::current()->RunAllPending(); 199 MessageLoop::current()->RunAllPending();
176 200
177 EXPECT_EQ(kStorageTypeTemporary, type()); 201 EXPECT_EQ(kTemporary, type());
178 EXPECT_EQ(1UL, origins().size()); 202 EXPECT_EQ(1UL, origins().size());
179 EXPECT_EQ(0UL, origins().count(kOrigin1)); 203 EXPECT_EQ(0UL, origins().count(kOrigin1));
180 EXPECT_EQ(1UL, origins().count(kOrigin2)); 204 EXPECT_EQ(1UL, origins().count(kOrigin2));
181 } 205 }
182 } // Namespace quota 206 } // Namespace quota
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698