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

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

Issue 7129018: Time-based removal of temporary file systems via BrowsingDataRemover (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: const_iterator. Created 9 years, 4 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
(Empty)
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
3 // found in the LICENSE file.
4
5
6 #include <set>
7
8 #include "base/file_util.h"
9 #include "base/memory/scoped_callback_factory.h"
10 #include "base/memory/scoped_ptr.h"
11 #include "base/message_loop.h"
12 #include "base/message_loop_proxy.h"
13 #include "base/scoped_temp_dir.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "webkit/quota/mock_quota_manager.h"
16 #include "webkit/quota/mock_special_storage_policy.h"
17 #include "webkit/quota/mock_storage_client.h"
18
19 namespace quota {
20
21 const char kTestOrigin1[] = "http://host1:1/";
22 const char kTestOrigin2[] = "http://host2:1/";
23 const char kTestOrigin3[] = "http://host3:1/";
24
25 const GURL kOrigin1(kTestOrigin1);
26 const GURL kOrigin2(kTestOrigin2);
27 const GURL kOrigin3(kTestOrigin3);
28
29 class MockQuotaManagerTest : public testing::Test {
30 public:
31 MockQuotaManagerTest()
32 : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
33 deletion_callback_count_(0) {
34 }
35
36 void SetUp() {
37 ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
38 policy_ = new MockSpecialStoragePolicy;
39 manager_ = new MockQuotaManager(
40 false /* is_incognito */,
41 data_dir_.path(),
42 base::MessageLoopProxy::CreateForCurrentThread(),
43 base::MessageLoopProxy::CreateForCurrentThread(),
44 policy_);
45 }
46
47 void TearDown() {
48 // Make sure the quota manager cleans up correctly.
49 manager_ = NULL;
50 MessageLoop::current()->RunAllPending();
51 }
52
53 void GetModifiedOrigins(StorageType type, base::Time since) {
54 manager_->GetOriginsModifiedSince(type, since,
55 callback_factory_.NewCallback(
56 &MockQuotaManagerTest::GotModifiedOrigins));
57 }
58
59 void GotModifiedOrigins(const std::set<GURL>& origins) {
60 origins_ = origins;
61 }
62
63 void DeleteOriginData(const GURL& origin, StorageType type) {
64 manager_->DeleteOriginData(origin, type,
65 callback_factory_.NewCallback(
66 &MockQuotaManagerTest::DeletedOriginData));
67 }
68
69 void DeletedOriginData(QuotaStatusCode status) {
70 ++deletion_callback_count_;
71 EXPECT_EQ(quota::kQuotaStatusOk, status);
72 }
73
74 int GetDeletionCallbackCount() {
75 return deletion_callback_count_;
76 }
77
78 MockQuotaManager* GetManager() {
79 return manager_.get();
80 }
81
82 const std::set<GURL> GetOrigins() {
83 return origins_;
84 }
85
86 private:
87 ScopedTempDir data_dir_;
88 base::ScopedCallbackFactory<MockQuotaManagerTest> callback_factory_;
89 scoped_refptr<MockQuotaManager> manager_;
90 scoped_refptr<MockSpecialStoragePolicy> policy_;
91
92 int deletion_callback_count_;
93
94 std::set<GURL> origins_;
95
96 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerTest);
97 };
98
99 TEST_F(MockQuotaManagerTest, BasicOriginManipulation) {
100 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary));
101 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary));
102 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent));
103 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent));
104
105 GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now());
106 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary));
107 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary));
108 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent));
109 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent));
110
111 GetManager()->AddOrigin(kOrigin1, kStorageTypePersistent, base::Time::Now());
112 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary));
113 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary));
114 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent));
115 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent));
116
117 GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now());
118 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary));
119 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary));
120 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypePersistent));
121 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypePersistent));
122 }
123
124 TEST_F(MockQuotaManagerTest, OriginDeletion) {
125 GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, base::Time::Now());
126 GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, base::Time::Now());
127
128 DeleteOriginData(kOrigin2, kStorageTypeTemporary);
129 MessageLoop::current()->RunAllPending();
130
131 EXPECT_EQ(1, GetDeletionCallbackCount());
132 EXPECT_TRUE(GetManager()->OriginHasData(kOrigin1, kStorageTypeTemporary));
133 EXPECT_FALSE(GetManager()->OriginHasData(kOrigin2, kStorageTypeTemporary));
134 }
135
136 TEST_F(MockQuotaManagerTest, ModifiedOrigins) {
137 base::Time now = base::Time::Now();
138 base::Time then = base::Time();
139 base::TimeDelta an_hour = base::TimeDelta::FromMilliseconds(3600000);
140 base::TimeDelta a_minute = base::TimeDelta::FromMilliseconds(60000);
141
142 GetModifiedOrigins(kStorageTypeTemporary, then);
143 MessageLoop::current()->RunAllPending();
144 EXPECT_TRUE(GetOrigins().empty());
145
146 GetManager()->AddOrigin(kOrigin1, kStorageTypeTemporary, now - an_hour);
147
148 GetModifiedOrigins(kStorageTypeTemporary, then);
149 MessageLoop::current()->RunAllPending();
150
151 EXPECT_EQ(1UL, GetOrigins().size());
152 EXPECT_EQ(1UL, GetOrigins().count(kOrigin1));
153 EXPECT_EQ(0UL, GetOrigins().count(kOrigin2));
154
155 GetManager()->AddOrigin(kOrigin2, kStorageTypeTemporary, now);
156
157 GetModifiedOrigins(kStorageTypeTemporary, then);
158 MessageLoop::current()->RunAllPending();
159
160 EXPECT_EQ(2UL, GetOrigins().size());
161 EXPECT_EQ(1UL, GetOrigins().count(kOrigin1));
162 EXPECT_EQ(1UL, GetOrigins().count(kOrigin2));
163
164 GetModifiedOrigins(kStorageTypeTemporary, now - a_minute);
165 MessageLoop::current()->RunAllPending();
166
167 EXPECT_EQ(1UL, GetOrigins().size());
168 EXPECT_EQ(0UL, GetOrigins().count(kOrigin1));
169 EXPECT_EQ(1UL, GetOrigins().count(kOrigin2));
170 }
171 } // Namespace quota
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698