| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2010 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 #import <Cocoa/Cocoa.h> | |
| 6 | |
| 7 #include "base/scoped_nsobject.h" | |
| 8 #include "chrome/browser/browsing_data_remover.h" | |
| 9 #include "chrome/browser/prefs/pref_service.h" | |
| 10 #include "chrome/browser/profiles/profile.h" | |
| 11 #include "chrome/browser/ui/cocoa/browser_test_helper.h" | |
| 12 #import "chrome/browser/ui/cocoa/clear_browsing_data_controller.h" | |
| 13 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" | |
| 14 #include "chrome/common/pref_names.h" | |
| 15 #include "testing/gtest/include/gtest/gtest.h" | |
| 16 #include "testing/platform_test.h" | |
| 17 #import "third_party/ocmock/OCMock/OCMock.h" | |
| 18 | |
| 19 namespace { | |
| 20 | |
| 21 class ClearBrowsingDataControllerTest : public CocoaTest { | |
| 22 public: | |
| 23 virtual void SetUp() { | |
| 24 CocoaTest::SetUp(); | |
| 25 // Set up some interesting prefs: | |
| 26 PrefService* prefs = helper_.profile()->GetPrefs(); | |
| 27 prefs->SetBoolean(prefs::kDeleteBrowsingHistory, true); | |
| 28 prefs->SetBoolean(prefs::kDeleteDownloadHistory, false); | |
| 29 prefs->SetBoolean(prefs::kDeleteCache, true); | |
| 30 prefs->SetBoolean(prefs::kDeleteCookies, false); | |
| 31 prefs->SetBoolean(prefs::kDeletePasswords, true); | |
| 32 prefs->SetBoolean(prefs::kDeleteFormData, false); | |
| 33 prefs->SetInteger(prefs::kDeleteTimePeriod, | |
| 34 BrowsingDataRemover::FOUR_WEEKS); | |
| 35 controller_ = | |
| 36 [ClearBrowsingDataController controllerForProfile:helper_.profile()]; | |
| 37 } | |
| 38 | |
| 39 virtual void TearDown() { | |
| 40 [controller_ closeDialog]; | |
| 41 CocoaTest::TearDown(); | |
| 42 } | |
| 43 | |
| 44 BrowserTestHelper helper_; | |
| 45 ClearBrowsingDataController* controller_; | |
| 46 }; | |
| 47 | |
| 48 TEST_F(ClearBrowsingDataControllerTest, InitialState) { | |
| 49 // Check properties match the prefs set above: | |
| 50 EXPECT_TRUE([controller_ clearBrowsingHistory]); | |
| 51 EXPECT_FALSE([controller_ clearDownloadHistory]); | |
| 52 EXPECT_TRUE([controller_ emptyCache]); | |
| 53 EXPECT_FALSE([controller_ deleteCookies]); | |
| 54 EXPECT_TRUE([controller_ clearSavedPasswords]); | |
| 55 EXPECT_FALSE([controller_ clearFormData]); | |
| 56 EXPECT_EQ(BrowsingDataRemover::FOUR_WEEKS, | |
| 57 [controller_ timePeriod]); | |
| 58 } | |
| 59 | |
| 60 TEST_F(ClearBrowsingDataControllerTest, InitialRemoveMask) { | |
| 61 // Check that the remove-mask matches the initial properties: | |
| 62 EXPECT_EQ(BrowsingDataRemover::REMOVE_HISTORY | | |
| 63 BrowsingDataRemover::REMOVE_CACHE | | |
| 64 BrowsingDataRemover::REMOVE_PASSWORDS, | |
| 65 [controller_ removeMask]); | |
| 66 } | |
| 67 | |
| 68 TEST_F(ClearBrowsingDataControllerTest, ModifiedRemoveMask) { | |
| 69 // Invert all properties and check that the remove-mask is still correct: | |
| 70 [controller_ setClearBrowsingHistory:false]; | |
| 71 [controller_ setClearDownloadHistory:true]; | |
| 72 [controller_ setEmptyCache:false]; | |
| 73 [controller_ setDeleteCookies:true]; | |
| 74 [controller_ setClearSavedPasswords:false]; | |
| 75 [controller_ setClearFormData:true]; | |
| 76 | |
| 77 EXPECT_EQ(BrowsingDataRemover::REMOVE_DOWNLOADS | | |
| 78 BrowsingDataRemover::REMOVE_COOKIES | | |
| 79 BrowsingDataRemover::REMOVE_FORM_DATA, | |
| 80 [controller_ removeMask]); | |
| 81 } | |
| 82 | |
| 83 TEST_F(ClearBrowsingDataControllerTest, EmptyRemoveMask) { | |
| 84 // Clear all properties and check that the remove-mask is zero: | |
| 85 [controller_ setClearBrowsingHistory:false]; | |
| 86 [controller_ setClearDownloadHistory:false]; | |
| 87 [controller_ setEmptyCache:false]; | |
| 88 [controller_ setDeleteCookies:false]; | |
| 89 [controller_ setClearSavedPasswords:false]; | |
| 90 [controller_ setClearFormData:false]; | |
| 91 | |
| 92 EXPECT_EQ(0, | |
| 93 [controller_ removeMask]); | |
| 94 } | |
| 95 | |
| 96 TEST_F(ClearBrowsingDataControllerTest, PersistToPrefs) { | |
| 97 // Change some settings and store to prefs: | |
| 98 [controller_ setClearBrowsingHistory:false]; | |
| 99 [controller_ setClearDownloadHistory:true]; | |
| 100 [controller_ persistToPrefs]; | |
| 101 | |
| 102 // Test that the modified settings were stored to prefs: | |
| 103 PrefService* prefs = helper_.profile()->GetPrefs(); | |
| 104 EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteBrowsingHistory)); | |
| 105 EXPECT_TRUE(prefs->GetBoolean(prefs::kDeleteDownloadHistory)); | |
| 106 | |
| 107 // Make sure the rest of the prefs didn't change: | |
| 108 EXPECT_TRUE(prefs->GetBoolean(prefs::kDeleteCache)); | |
| 109 EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteCookies)); | |
| 110 EXPECT_TRUE(prefs->GetBoolean(prefs::kDeletePasswords)); | |
| 111 EXPECT_FALSE(prefs->GetBoolean(prefs::kDeleteFormData)); | |
| 112 EXPECT_EQ(BrowsingDataRemover::FOUR_WEEKS, | |
| 113 prefs->GetInteger(prefs::kDeleteTimePeriod)); | |
| 114 } | |
| 115 | |
| 116 TEST_F(ClearBrowsingDataControllerTest, SameControllerForProfile) { | |
| 117 ClearBrowsingDataController* controller = | |
| 118 [ClearBrowsingDataController controllerForProfile:helper_.profile()]; | |
| 119 EXPECT_EQ(controller_, controller); | |
| 120 } | |
| 121 | |
| 122 TEST_F(ClearBrowsingDataControllerTest, DataRemoverDidFinish) { | |
| 123 id observer = [OCMockObject observerMock]; | |
| 124 // Don't use |controller_| as the object because it will free itself twice | |
| 125 // because both |-dataRemoverDidFinish| and TearDown() call |-closeDialog|. | |
| 126 ClearBrowsingDataController* controller = | |
| 127 [[ClearBrowsingDataController alloc] initWithProfile:helper_.profile()]; | |
| 128 | |
| 129 NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; | |
| 130 [center addMockObserver:observer | |
| 131 name:kClearBrowsingDataControllerDidDelete | |
| 132 object:controller]; | |
| 133 | |
| 134 int mask = [controller removeMask]; | |
| 135 NSDictionary* expectedInfo = | |
| 136 [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:mask] | |
| 137 forKey:kClearBrowsingDataControllerRemoveMask]; | |
| 138 [[observer expect] | |
| 139 notificationWithName:kClearBrowsingDataControllerDidDelete | |
| 140 object:controller | |
| 141 userInfo:expectedInfo]; | |
| 142 | |
| 143 // This calls |-closeDialog| and cleans the controller up. | |
| 144 [controller dataRemoverDidFinish]; | |
| 145 | |
| 146 [observer verify]; | |
| 147 } | |
| 148 | |
| 149 } // namespace | |
| OLD | NEW |