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

Unified Diff: chrome/browser/browsing_data_remover_unittest.cc

Issue 7210034: Update BrowsingDataRemover with the asynchronous CookieMonster API. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' 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
« no previous file with comments | « chrome/browser/browsing_data_remover.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/browsing_data_remover_unittest.cc
===================================================================
--- chrome/browser/browsing_data_remover_unittest.cc (revision 95818)
+++ chrome/browser/browsing_data_remover_unittest.cc (working copy)
@@ -6,12 +6,16 @@
#include <set>
+#include "base/bind.h"
#include "base/message_loop.h"
#include "base/platform_file.h"
#include "chrome/browser/extensions/mock_extension_special_storage_policy.h"
#include "chrome/browser/history/history.h"
#include "chrome/test/base/testing_profile.h"
#include "chrome/test/testing_browser_process_test.h"
+#include "net/base/cookie_monster.h"
+#include "net/url_request/url_request_context.h"
+#include "net/url_request/url_request_context_getter.cc"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/fileapi/file_system_context.h"
#include "webkit/fileapi/file_system_file_util.h"
@@ -34,11 +38,20 @@
class BrowsingDataRemoverTester : public BrowsingDataRemover::Observer {
public:
- BrowsingDataRemoverTester() {}
+ BrowsingDataRemoverTester()
+ : start_(false),
+ already_quit_(false) {}
virtual ~BrowsingDataRemoverTester() {}
void BlockUntilNotified() {
- MessageLoop::current()->Run();
+ if (!already_quit_) {
+ DCHECK(!start_);
+ start_ = true;
+ MessageLoop::current()->Run();
+ } else {
+ DCHECK(!start_);
+ already_quit_ = false;
+ }
}
protected:
@@ -48,15 +61,78 @@
}
void Notify() {
- MessageLoop::current()->Quit();
+ if (start_) {
+ DCHECK(!already_quit_);
+ MessageLoop::current()->Quit();
+ start_ = false;
+ } else {
+ DCHECK(!already_quit_);
+ already_quit_ = true;
+ }
}
private:
+ // Helps prevent from running message_loop, if the callback invoked
+ // immediately.
+ bool start_;
+ bool already_quit_;
+
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverTester);
};
// Testers -------------------------------------------------------------------
+class RemoveCookieTester : public BrowsingDataRemoverTester {
+ public:
+ explicit RemoveCookieTester(TestingProfile* profile)
+ : get_cookie_success_(false) {
+ profile->CreateRequestContext();
+ monster_ = profile->GetRequestContext()->GetURLRequestContext()->
+ cookie_store()->GetCookieMonster();
+ }
+
+ // Returns true, if the given cookie exists in the cookie store.
+ bool ContainsCookie() {
+ get_cookie_success_ = false;
+ monster_->GetCookiesWithOptionsAsync(
+ kOrigin1, net::CookieOptions(),
+ base::Bind(&RemoveCookieTester::GetCookieCallback,
+ base::Unretained(this)));
+ BlockUntilNotified();
+ return get_cookie_success_;
+ }
+
+ void AddCookie() {
+ monster_->SetCookieWithOptionsAsync(
+ kOrigin1, "A=1", net::CookieOptions(),
+ base::Bind(&RemoveCookieTester::SetCookieCallback,
+ base::Unretained(this)));
+ BlockUntilNotified();
+ }
+
+ private:
+ void GetCookieCallback(const std::string& cookies) {
+ if (cookies == "A=1") {
+ get_cookie_success_ = true;
+ } else {
+ EXPECT_EQ(cookies, "");
+ get_cookie_success_ = false;
+ }
+ Notify();
+ }
+
+ void SetCookieCallback(bool result) {
+ ASSERT_TRUE(result);
+ Notify();
+ }
+
+ bool get_cookie_success_;
+
+ net::CookieStore* monster_;
+
+ DISALLOW_COPY_AND_ASSIGN(RemoveCookieTester);
+};
+
class RemoveHistoryTester : public BrowsingDataRemoverTester {
public:
explicit RemoveHistoryTester(TestingProfile* profile)
@@ -220,6 +296,19 @@
// Tests ---------------------------------------------------------------------
+TEST_F(BrowsingDataRemoverTest, RemoveCookieForever) {
+ scoped_ptr<RemoveCookieTester> tester(
+ new RemoveCookieTester(GetProfile()));
+
+ tester->AddCookie();
+ ASSERT_TRUE(tester->ContainsCookie());
+
+ BlockUntilBrowsingDataRemoved(BrowsingDataRemover::EVERYTHING,
+ base::Time::Now(), BrowsingDataRemover::REMOVE_COOKIES, tester.get());
+
+ EXPECT_FALSE(tester->ContainsCookie());
+}
+
TEST_F(BrowsingDataRemoverTest, RemoveHistoryForever) {
scoped_ptr<RemoveHistoryTester> tester(
new RemoveHistoryTester(GetProfile()));
« no previous file with comments | « chrome/browser/browsing_data_remover.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698