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

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: Created 9 years, 3 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) 2011 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/file_util.h" 8 #include "base/file_util.h"
9 #include "base/memory/scoped_callback_factory.h" 9 #include "base/memory/scoped_callback_factory.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 kTemp = kStorageTypeTemporary;
30 const StorageType kPers = kStorageTypePersistent;
31
32 const QuotaClient::ID kClientID1 = QuotaClient::kFileSystem;
33 const QuotaClient::ID kClientID2 = QuotaClient::kIndexedDatabase;
34
29 class MockQuotaManagerTest : public testing::Test { 35 class MockQuotaManagerTest : public testing::Test {
30 public: 36 public:
31 MockQuotaManagerTest() 37 MockQuotaManagerTest()
32 : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), 38 : callback_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 15 matching lines...) Expand all
54 manager_->GetOriginsModifiedSince(type, since, 60 manager_->GetOriginsModifiedSince(type, since,
55 callback_factory_.NewCallback( 61 callback_factory_.NewCallback(
56 &MockQuotaManagerTest::GotModifiedOrigins)); 62 &MockQuotaManagerTest::GotModifiedOrigins));
57 } 63 }
58 64
59 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) { 65 void GotModifiedOrigins(const std::set<GURL>& origins, StorageType type) {
60 origins_ = origins; 66 origins_ = origins;
61 type_ = type; 67 type_ = type;
62 } 68 }
63 69
64 void DeleteOriginData(const GURL& origin, StorageType type) { 70 void DeleteOriginData(const GURL& origin, StorageType type, int mask) {
65 manager_->DeleteOriginData(origin, type, 71 manager_->DeleteOriginData(origin, type, mask,
66 callback_factory_.NewCallback( 72 callback_factory_.NewCallback(
67 &MockQuotaManagerTest::DeletedOriginData)); 73 &MockQuotaManagerTest::DeletedOriginData));
68 } 74 }
69 75
70 void DeletedOriginData(QuotaStatusCode status) { 76 void DeletedOriginData(QuotaStatusCode status) {
71 ++deletion_callback_count_; 77 ++deletion_callback_count_;
72 EXPECT_EQ(quota::kQuotaStatusOk, status); 78 EXPECT_EQ(quota::kQuotaStatusOk, status);
73 } 79 }
74 80
75 int deletion_callback_count() const { 81 int deletion_callback_count() const {
(...skipping 20 matching lines...) Expand all
96 102
97 int deletion_callback_count_; 103 int deletion_callback_count_;
98 104
99 std::set<GURL> origins_; 105 std::set<GURL> origins_;
100 StorageType type_; 106 StorageType type_;
101 107
102 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest); 108 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest);
103 }; 109 };
104 110
105 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) { 111 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) {
106 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 112 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemp, kClientID1));
107 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 113 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID1));
108 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 114 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemp, kClientID2));
109 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 115 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID2));
116 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID1));
117 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID1));
118 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID2));
119 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID2));
110 120
111 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 121 manager()->AddOrigin(kOrigin1, kTemp, kClientID1, base::Time::Now());
112 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 122 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemp, kClientID1));
113 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 123 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID1));
114 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 124 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemp, kClientID2));
115 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 125 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID2));
126 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID1));
127 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID1));
128 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID2));
129 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID2));
116 130
117 manager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now()); 131 manager()->AddOrigin(kOrigin1, kPers, kClientID1, base::Time::Now());
118 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 132 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemp, kClientID1));
119 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 133 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPers, kClientID1));
120 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 134 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemp, kClientID2));
121 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 135 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID2));
136 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID1));
137 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID1));
138 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID2));
139 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID2));
122 140
123 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 141 manager()->AddOrigin(kOrigin2, kTemp, kClientID1 | kClientID2,
124 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 142 base::Time::Now());
125 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 143 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemp, kClientID1));
126 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypePersistent)); 144 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kPers, kClientID1));
127 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypePersistent)); 145 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kTemp, kClientID2));
146 EXPECT_FALSE(manager()->OriginHasData(kOrigin1, kPers, kClientID2));
147 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemp, kClientID1));
148 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID1));
149 EXPECT_TRUE(manager()->OriginHasData(kOrigin2, kTemp, kClientID2));
150 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kPers, kClientID2));
128 } 151 }
129 152
130 TEST_F(MockQuotaManagerTest, OriginDeletion) { 153 TEST_F(MockQuotaManagerTest, OriginDeletion) {
131 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now()); 154 manager()->AddOrigin(kOrigin1, kTemp, kClientID1, base::Time::Now());
132 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now()); 155 manager()->AddOrigin(kOrigin2, kTemp, kClientID1, base::Time::Now());
133 156
134 DeleteOriginData(kOrigin2, kStorageTypeTemporary); 157 DeleteOriginData(kOrigin2, kTemp, kClientID1);
135 MessageLoop::current()->RunAllPending(); 158 MessageLoop::current()->RunAllPending();
136 159
137 EXPECT_EQ(1, deletion_callback_count()); 160 EXPECT_EQ(1, deletion_callback_count());
138 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kStorageTypeTemporary)); 161 EXPECT_TRUE(manager()->OriginHasData(kOrigin1, kTemp, kClientID1));
139 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kStorageTypeTemporary)); 162 EXPECT_FALSE(manager()->OriginHasData(kOrigin2, kTemp, kClientID1));
140 } 163 }
141 164
142 TEST_F(MockQuotaManagerTest, ModifiedOrigins) { 165 TEST_F(MockQuotaManagerTest, ModifiedOrigins) {
143 base::Time now = base::Time::Now(); 166 base::Time now = base::Time::Now();
144 base::Time then = base::Time(); 167 base::Time then = base::Time();
145 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000); 168 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
146 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000); 169 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
147 170
148 GetModifiedOrigins(kStorageTypeTemporary, then); 171 GetModifiedOrigins(kTemp, then);
149 MessageLoop::current()->RunAllPending(); 172 MessageLoop::current()->RunAllPending();
150 EXPECT_TRUE(origins().empty()); 173 EXPECT_TRUE(origins().empty());
151 174
152 manager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour); 175 manager()->AddOrigin(kOrigin1, kTemp, kClientID1, now - an_hour);
153 176
154 GetModifiedOrigins(kStorageTypeTemporary, then); 177 GetModifiedOrigins(kTemp, then);
155 MessageLoop::current()->RunAllPending(); 178 MessageLoop::current()->RunAllPending();
156 179
157 EXPECT_EQ(kStorageTypeTemporary, type()); 180 EXPECT_EQ(kTemp, type());
158 EXPECT_EQ(1UL, origins().size()); 181 EXPECT_EQ(1UL, origins().size());
159 EXPECT_EQ(1UL, origins().count(kOrigin1)); 182 EXPECT_EQ(1UL, origins().count(kOrigin1));
160 EXPECT_EQ(0UL, origins().count(kOrigin2)); 183 EXPECT_EQ(0UL, origins().count(kOrigin2));
161 184
162 manager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now); 185 manager()->AddOrigin(kOrigin2, kTemp, kClientID1, now);
163 186
164 GetModifiedOrigins(kStorageTypeTemporary, then); 187 GetModifiedOrigins(kTemp, then);
165 MessageLoop::current()->RunAllPending(); 188 MessageLoop::current()->RunAllPending();
166 189
167 EXPECT_EQ(kStorageTypeTemporary, type()); 190 EXPECT_EQ(kTemp, type());
168 EXPECT_EQ(2UL, origins().size()); 191 EXPECT_EQ(2UL, origins().size());
169 EXPECT_EQ(1UL, origins().count(kOrigin1)); 192 EXPECT_EQ(1UL, origins().count(kOrigin1));
170 EXPECT_EQ(1UL, origins().count(kOrigin2)); 193 EXPECT_EQ(1UL, origins().count(kOrigin2));
171 194
172 GetModifiedOrigins(kStorageTypeTemporary, now - a_minute); 195 GetModifiedOrigins(kTemp, now - a_minute);
173 MessageLoop::current()->RunAllPending(); 196 MessageLoop::current()->RunAllPending();
174 197
175 EXPECT_EQ(kStorageTypeTemporary, type()); 198 EXPECT_EQ(kTemp, type());
176 EXPECT_EQ(1UL, origins().size()); 199 EXPECT_EQ(1UL, origins().size());
177 EXPECT_EQ(0UL, origins().count(kOrigin1)); 200 EXPECT_EQ(0UL, origins().count(kOrigin1));
178 EXPECT_EQ(1UL, origins().count(kOrigin2)); 201 EXPECT_EQ(1UL, origins().count(kOrigin2));
179 } 202 }
180 } // Namespace quota 203 } // Namespace quota
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698