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

Unified Diff: chrome/browser/browsing_data_quota_helper_unittest.cc

Issue 7387007: Adding usage and quota entry to chrome://settings/cookies. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed leak suppressions. 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data_quota_helper_unittest.cc
diff --git a/chrome/browser/browsing_data_quota_helper_unittest.cc b/chrome/browser/browsing_data_quota_helper_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..5cf5ede517ef58a18b94fa693884ce66f228b5ef
--- /dev/null
+++ b/chrome/browser/browsing_data_quota_helper_unittest.cc
@@ -0,0 +1,119 @@
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+#include "base/memory/scoped_callback_factory.h"
+#include "base/message_loop_proxy.h"
+#include "base/scoped_temp_dir.h"
+#include "chrome/browser/browsing_data_quota_helper_impl.h"
+#include "webkit/quota/mock_storage_client.h"
+#include "webkit/quota/quota_manager.h"
+
+class BrowsingDataQuotaHelperTest : public testing::Test {
+ public:
+ typedef BrowsingDataQuotaHelper::QuotaInfo QuotaInfo;
+ typedef BrowsingDataQuotaHelper::QuotaInfoArray QuotaInfoArray;
+
+ BrowsingDataQuotaHelperTest()
+ : ui_thread_(BrowserThread::UI, &message_loop_),
+ db_thread_(BrowserThread::DB, &message_loop_),
+ io_thread_(BrowserThread::IO, &message_loop_),
+ fetching_completed_(true),
+ callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {}
+
+ virtual ~BrowsingDataQuotaHelperTest() {}
+
+ virtual void SetUp() OVERRIDE {
+ EXPECT_TRUE(dir_.CreateUniqueTempDir());
+ quota_manager_ = new quota::QuotaManager(
+ false, dir_.path(),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB),
+ NULL);
+ helper_ = new BrowsingDataQuotaHelperImpl(
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::UI),
+ BrowserThread::GetMessageLoopProxyForThread(BrowserThread::IO),
+ quota_manager_);
+ }
+
+ virtual void TearDown() OVERRIDE {
+ helper_ = NULL;
+ quota_manager_ = NULL;
+ quota_info_.clear();
+ MessageLoop::current()->RunAllPending();
+ }
+
+ protected:
+ const QuotaInfoArray& quota_info() const {
+ return quota_info_;
+ }
+
+ bool fetching_completed() const {
+ return fetching_completed_;
+ }
+
+ void StartFetching() {
+ fetching_completed_ = false;
+ helper_->StartFetching(
+ callback_factory_.NewCallback(
+ &BrowsingDataQuotaHelperTest::FetchCompleted));
+ }
+
+ void RegisterClient(const quota::MockOriginData* data, std::size_t data_len) {
+ quota::MockStorageClient* client =
+ new quota::MockStorageClient(
+ quota_manager_->proxy(), data, data_len);
+ quota_manager_->proxy()->RegisterClient(client);
+ client->TouchAllOriginsAndNotify();
+ }
+
+ private:
+ void FetchCompleted(const QuotaInfoArray& quota_info) {
+ quota_info_ = quota_info;
+ fetching_completed_ = true;
+ }
+
+ MessageLoop message_loop_;
+ BrowserThread ui_thread_;
+ BrowserThread db_thread_;
+ BrowserThread io_thread_;
+ scoped_refptr<quota::QuotaManager> quota_manager_;
+
+ ScopedTempDir dir_;
+ scoped_refptr<BrowsingDataQuotaHelper> helper_;
+
+ bool fetching_completed_;
+ QuotaInfoArray quota_info_;
+ base::ScopedCallbackFactory<BrowsingDataQuotaHelperTest> callback_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(BrowsingDataQuotaHelperTest);
+};
+
+TEST_F(BrowsingDataQuotaHelperTest, Empty) {
+ StartFetching();
+ MessageLoop::current()->RunAllPending();
+ EXPECT_TRUE(fetching_completed());
+ EXPECT_TRUE(quota_info().empty());
+}
+
+TEST_F(BrowsingDataQuotaHelperTest, FetchData) {
+ const quota::MockOriginData kOrigins[] = {
+ {"http://example.com/", quota::kStorageTypeTemporary, 1},
+ {"https://example.com/", quota::kStorageTypeTemporary, 10},
+ {"http://example.com/", quota::kStorageTypePersistent, 100},
+ {"http://example2.com/", quota::kStorageTypeTemporary, 1000},
+ };
+
+ RegisterClient(kOrigins, arraysize(kOrigins));
+ StartFetching();
+ MessageLoop::current()->RunAllPending();
+ EXPECT_TRUE(fetching_completed());
+
+ std::set<QuotaInfo> expected, actual;
+ actual.insert(quota_info().begin(), quota_info().end());
+ expected.insert(QuotaInfo("example.com", 11, 100));
+ expected.insert(QuotaInfo("example2.com", 1000, 0));
+ EXPECT_TRUE(expected == actual);
+}
« no previous file with comments | « chrome/browser/browsing_data_quota_helper_impl.cc ('k') | chrome/browser/content_settings/tab_specific_content_settings.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698