diff options
author | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-01 15:26:22 +0000 |
---|---|---|
committer | pinkerton@chromium.org <pinkerton@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-01 15:26:22 +0000 |
commit | b2282c86e58342c13ccdcdb3dad3faadb331aa59 (patch) | |
tree | c794bd928861f101851e080b378bfbe936a875bc | |
parent | 212a252663db61e8cabf6379f1f3778d01b65e51 (diff) | |
download | chromium_src-b2282c86e58342c13ccdcdb3dad3faadb331aa59.zip chromium_src-b2282c86e58342c13ccdcdb3dad3faadb331aa59.tar.gz chromium_src-b2282c86e58342c13ccdcdb3dad3faadb331aa59.tar.bz2 |
The real unit test for bug 12902, which didn't land before (computers are hard, mmkay?).
BUG=12902
TEST=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19731 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/cocoa/clear_browsing_data_controller_unittest.mm | 110 | ||||
-rw-r--r-- | chrome/chrome.gyp | 1 |
2 files changed, 111 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/clear_browsing_data_controller_unittest.mm b/chrome/browser/cocoa/clear_browsing_data_controller_unittest.mm new file mode 100644 index 0000000..0f2b067 --- /dev/null +++ b/chrome/browser/cocoa/clear_browsing_data_controller_unittest.mm @@ -0,0 +1,110 @@ +// Copyright (c) 2009 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. + +#import <Cocoa/Cocoa.h> + +#include "base/scoped_nsobject.h" +#include "chrome/browser/browsing_data_remover.h" +#include "chrome/browser/cocoa/browser_test_helper.h" +#import "chrome/browser/cocoa/clear_browsing_data_controller.h" +#import "chrome/browser/cocoa/cocoa_test_helper.h" +#include "chrome/browser/profile.h" +#include "chrome/common/pref_names.h" +#include "chrome/common/pref_service.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +class ClearBrowsingDataControllerTest : public testing::Test { + public: + ClearBrowsingDataControllerTest() { + // Set up some interesting prefs: + PrefService* prefs = helper_.profile()->GetPrefs(); + prefs->SetBoolean(prefs::kDeleteBrowsingHistory, true); + prefs->SetBoolean(prefs::kDeleteDownloadHistory, false); + prefs->SetBoolean(prefs::kDeleteCache, true); + prefs->SetBoolean(prefs::kDeleteCookies, false); + prefs->SetBoolean(prefs::kDeletePasswords, true); + prefs->SetBoolean(prefs::kDeleteFormData, false); + prefs->SetInteger(prefs::kDeleteTimePeriod, + BrowsingDataRemover::FOUR_WEEKS); + + controller_.reset( + [[ClearBrowsingDataController alloc] initWithProfile:helper_.profile()]); + } + + CocoaTestHelper cocoa_helper_; // Inits Cocoa, creates window, etc... + BrowserTestHelper helper_; + scoped_nsobject<ClearBrowsingDataController> controller_; +}; + +TEST_F(ClearBrowsingDataControllerTest, InitialState) { + // Check properties match the prefs set above: + EXPECT_TRUE([controller_ clearBrowsingHistory]); + EXPECT_FALSE([controller_ clearDownloadHistory]); + EXPECT_TRUE([controller_ emptyCache]); + EXPECT_FALSE([controller_ deleteCookies]); + EXPECT_TRUE([controller_ clearSavedPasswords]); + EXPECT_FALSE([controller_ clearFormData]); + EXPECT_EQ(BrowsingDataRemover::FOUR_WEEKS, + [controller_ timePeriod]); +} + +TEST_F(ClearBrowsingDataControllerTest, InitialRemoveMask) { + // Check that the remove-mask matches the initial properties: + EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY | + BrowsingDataRemover::REMOVE_CACHE | + BrowsingDataRemover::REMOVE_PASSWORDS, + [controller_ removeMask]); +} + +TEST_F(ClearBrowsingDataControllerTest, ModifiedRemoveMask) { + // Invert all properties and check that the remove-mask is still correct: + [controller_ setClearBrowsingHistory:false]; + [controller_ setClearDownloadHistory:true]; + [controller_ setEmptyCache:false]; + [controller_ setDeleteCookies:true]; + [controller_ setClearSavedPasswords:false]; + [controller_ setClearFormData:true]; + + EXPECT_EQ(BrowsingDataRemover::REMOVE_DOWNLOADS | + BrowsingDataRemover::REMOVE_COOKIES | + BrowsingDataRemover::REMOVE_FORM_DATA, + [controller_ removeMask]); +} + +TEST_F(ClearBrowsingDataControllerTest, EmptyRemoveMask) { + // Clear all properties and check that the remove-mask is zero: + [controller_ setClearBrowsingHistory:false]; + [controller_ setClearDownloadHistory:false]; + [controller_ setEmptyCache:false]; + [controller_ setDeleteCookies:false]; + [controller_ setClearSavedPasswords:false]; + [controller_ setClearFormData:false]; + + EXPECT_EQ(0, + [controller_ removeMask]); +} + +TEST_F(ClearBrowsingDataControllerTest, PersistToPrefs) { + // Change some settings and store to prefs: + [controller_ setClearBrowsingHistory:false]; + [controller_ setClearDownloadHistory:true]; + [controller_ persistToPrefs]; + + // Test that the modified settings were stored to prefs: + PrefService* prefs = helper_.profile()->GetPrefs(); + EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteBrowsingHistory)); + EXPECT_TRUE(prefs->GetBoolean(prefs::kDeleteDownloadHistory)); + + // Make sure the rest of the prefs didn't change: + EXPECT_TRUE(prefs->GetBoolean(prefs::kDeleteCache)); + EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteCookies)); + EXPECT_TRUE(prefs->GetBoolean(prefs::kDeletePasswords)); + EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteFormData)); + EXPECT_EQ(BrowsingDataRemover::FOUR_WEEKS, + prefs->GetInteger(prefs::kDeleteTimePeriod)); +} + +} // namespace diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 4d1a225..374d0cc 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -3410,6 +3410,7 @@ 'browser/cocoa/bookmark_menu_cocoa_controller_unittest.mm', 'browser/cocoa/browser_window_cocoa_unittest.mm', 'browser/cocoa/browser_window_controller_unittest.mm', + 'browser/cocoa/clear_browsing_data_controller_unittest.mm', 'browser/cocoa/command_observer_bridge_unittest.mm', 'browser/cocoa/custom_home_pages_model_unittest.mm', 'browser/cocoa/download_shelf_mac_unittest.mm', |