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

Unified Diff: webkit/quota/quota_manager_unittest.cc

Issue 10826270: QuotaManager: Return the remaining free disk space as quota. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/quota/quota_manager_unittest.cc
diff --git a/webkit/quota/quota_manager_unittest.cc b/webkit/quota/quota_manager_unittest.cc
index 171f6b40c0aae2bacb82533c11d2016546cf724d..d8f3ebe7487f547f7520f6ffe2218a3d7a01f920 100644
--- a/webkit/quota/quota_manager_unittest.cc
+++ b/webkit/quota/quota_manager_unittest.cc
@@ -33,6 +33,27 @@ const StorageType kPerm = kStorageTypePersistent;
const int kAllClients = QuotaClient::kAllClientsMask;
+//
+class TestQuotaManager : public QuotaManager {
+ public:
+ TestQuotaManager(bool is_incognito,
+ const FilePath& profile_path,
+ base::SingleThreadTaskRunner* io_thread,
+ base::SequencedTaskRunner* db_thread,
+ SpecialStoragePolicy* special_storage_policy)
+ : QuotaManager(is_incognito, profile_path, io_thread, db_thread,
+ special_storage_policy) {
+ }
+
+ // QuotaManager implementation.
+ virtual int64 GetAvailableDiskSpace() const {
+ return 13377331;
+ }
+
+ private:
+ ~TestQuotaManager() { printf("~TestQuotaManager\n"); };
+};
+
class QuotaManagerTest : public testing::Test {
protected:
typedef QuotaManager::QuotaTableEntry QuotaTableEntry;
@@ -42,13 +63,22 @@ class QuotaManagerTest : public testing::Test {
public:
QuotaManagerTest()
: weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ quota_status_(kQuotaStatusUnknown),
+ type_(kStorageTypeUnknown),
+ usage_(0),
+ unlimited_usage_(0),
+ quota_(0),
+ available_space_(0),
+ modified_origins_type_(kStorageTypeUnknown),
+ status_callback_count_(0),
+ additional_callback_count_(0),
mock_time_counter_(0) {
}
void SetUp() {
ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
mock_special_storage_policy_ = new MockSpecialStoragePolicy;
- quota_manager_ = new QuotaManager(
+ quota_manager_ = new TestQuotaManager(
false /* is_incognito */,
data_dir_.path(),
MessageLoopProxy::current(),
@@ -282,6 +312,7 @@ class QuotaManagerTest : public testing::Test {
}
void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) {
+ printf("DidGetUsageAndQuota\n");
quota_status_ = status;
usage_ = usage;
quota_ = quota;
@@ -365,8 +396,9 @@ class QuotaManagerTest : public testing::Test {
++additional_callback_count_;
}
- QuotaManager* quota_manager() const { return quota_manager_.get(); }
- void set_quota_manager(QuotaManager* quota_manager) {
+ TestQuotaManager* quota_manager() const { return /*quota_manager_.get();*/NULL; }
+ void set_quota_manager(TestQuotaManager* quota_manager) {
+ printf("set_quota_manager: %p\n", quota_manager);
quota_manager_ = quota_manager;
}
@@ -403,7 +435,7 @@ class QuotaManagerTest : public testing::Test {
ScopedTempDir data_dir_;
base::WeakPtrFactory<QuotaManagerTest> weak_factory_;
- scoped_refptr<QuotaManager> quota_manager_;
+ scoped_refptr<TestQuotaManager> quota_manager_;
scoped_refptr<MockSpecialStoragePolicy> mock_special_storage_policy_;
QuotaStatusCode quota_status_;
@@ -621,17 +653,24 @@ TEST_F(QuotaManagerTest, GetUsage_MultipleClients) {
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(50, usage());
+ GetAvailableSpace();
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(kQuotaStatusOk, status());
+ EXPECT_LE(0, available_space());
+
GetUsageAndQuota(GURL("http://unlimited/"), kTemp);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(1, usage());
- EXPECT_EQ(kint64max, quota());
+ EXPECT_EQ(available_space(), quota());
+ printf("before\n");
GetUsageAndQuota(GURL("http://unlimited/"), kPerm);
MessageLoop::current()->RunAllPending();
+ printf("after\n");
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(1, usage());
- EXPECT_EQ(kint64max, quota());
+ EXPECT_EQ(available_space(), quota());
GetGlobalUsage(kTemp);
MessageLoop::current()->RunAllPending();
@@ -792,7 +831,7 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) {
QuotaClient::kFileSystem);
RegisterClient(client);
- // Test when not overbugdet.
+ // Test when not over budget.
SetTemporaryGlobalQuota(1000);
MessageLoop::current()->RunAllPending();
@@ -816,13 +855,18 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) {
EXPECT_EQ(50, usage());
EXPECT_EQ(kPerHostQuotaFor1000, quota());
+ GetAvailableSpace();
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(kQuotaStatusOk, status());
+ EXPECT_LE(0, available_space());
+
GetUsageAndQuota(GURL("http://unlimited/"), kTemp);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(4000, usage());
- EXPECT_EQ(kint64max, quota());
+ EXPECT_EQ(available_space(), quota());
- // Test when overbugdet.
+ // Test when over budget.
SetTemporaryGlobalQuota(100);
MessageLoop::current()->RunAllPending();
@@ -841,11 +885,16 @@ TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) {
EXPECT_EQ(50, usage());
EXPECT_EQ(kPerHostQuotaFor100, quota());
+ GetAvailableSpace();
+ MessageLoop::current()->RunAllPending();
+ EXPECT_EQ(kQuotaStatusOk, status());
+ EXPECT_LE(0, available_space());
+
GetUsageAndQuota(GURL("http://unlimited/"), kTemp);
MessageLoop::current()->RunAllPending();
EXPECT_EQ(kQuotaStatusOk, status());
EXPECT_EQ(4000, usage());
- EXPECT_EQ(kint64max, quota());
+ EXPECT_EQ(available_space(), quota());
// Revoke the unlimited rights and make sure the change is noticed.
mock_special_storage_policy()->Reset();
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698