| Index: chrome/browser/cocoa/content_settings_dialog_controller_unittest.mm
|
| ===================================================================
|
| --- chrome/browser/cocoa/content_settings_dialog_controller_unittest.mm (revision 49029)
|
| +++ chrome/browser/cocoa/content_settings_dialog_controller_unittest.mm (working copy)
|
| @@ -4,8 +4,12 @@
|
|
|
| #import "chrome/browser/cocoa/content_settings_dialog_controller.h"
|
|
|
| +#import "base/scoped_nsobject.h"
|
| +#include "base/ref_counted.h"
|
| #include "chrome/browser/cocoa/browser_test_helper.h"
|
| #include "chrome/browser/cocoa/cocoa_test_helper.h"
|
| +#import "chrome/browser/geolocation/geolocation_content_settings_map.h"
|
| +#include "chrome/common/pref_names.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "testing/platform_test.h"
|
|
|
| @@ -13,19 +17,221 @@
|
|
|
| class ContentSettingsDialogControllerTest : public CocoaTest {
|
| public:
|
| + virtual void SetUp() {
|
| + CocoaTest::SetUp();
|
| + TestingProfile* profile = browser_helper_.profile();
|
| + settingsMap_ = new HostContentSettingsMap(profile);
|
| + geoSettingsMap_ = new GeolocationContentSettingsMap(profile);
|
| + controller_ = [ContentSettingsDialogController
|
| + showContentSettingsForType:CONTENT_SETTINGS_TYPE_DEFAULT
|
| + profile:browser_helper_.profile()];
|
| + }
|
| +
|
| + virtual void TearDown() {
|
| + [controller_ close];
|
| + CocoaTest::TearDown();
|
| + }
|
| +
|
| + protected:
|
| + ContentSettingsDialogController* controller_;
|
| BrowserTestHelper browser_helper_;
|
| + scoped_refptr<HostContentSettingsMap> settingsMap_;
|
| + scoped_refptr<GeolocationContentSettingsMap> geoSettingsMap_;
|
| };
|
|
|
| // Test that +showContentSettingsDialogForProfile brings up the existing editor
|
| // and doesn't leak or crash.
|
| TEST_F(ContentSettingsDialogControllerTest, CreateDialog) {
|
| - Profile* profile(browser_helper_.profile());
|
| - ContentSettingsDialogController* sharedInstance =
|
| - [ContentSettingsDialogController
|
| - showContentSettingsForType:CONTENT_SETTINGS_TYPE_DEFAULT
|
| - profile:profile];
|
| - EXPECT_TRUE(sharedInstance);
|
| - [sharedInstance close];
|
| + EXPECT_TRUE(controller_);
|
| }
|
|
|
| +TEST_F(ContentSettingsDialogControllerTest, CookieSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES,
|
| + CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ cookieSettingIndex], kCookieEnabledIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES,
|
| + CONTENT_SETTING_ASK);
|
| + EXPECT_EQ([controller_ cookieSettingIndex], kCookieAskIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES,
|
| + CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ cookieSettingIndex], kCookieDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setCookieSettingIndex:kCookieEnabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setCookieSettingIndex:kCookieAskIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ASK);
|
| +
|
| + [controller_ setCookieSettingIndex:kCookieDisabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, BlockThirdPartyCookiesSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetBlockThirdPartyCookies(YES);
|
| + EXPECT_TRUE([controller_ blockThirdPartyCookies]);
|
| +
|
| + settingsMap_->SetBlockThirdPartyCookies(NO);
|
| + EXPECT_FALSE([controller_ blockThirdPartyCookies]);
|
| +
|
| + // Change dialog property, check setting.
|
| + [controller_ setBlockThirdPartyCookies:YES];
|
| + EXPECT_TRUE(settingsMap_->BlockThirdPartyCookies());
|
| +
|
| + [controller_ setBlockThirdPartyCookies:NO];
|
| + EXPECT_FALSE(settingsMap_->BlockThirdPartyCookies());
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, ClearSiteDataOnExitSetting) {
|
| + TestingProfile* profile = browser_helper_.profile();
|
| +
|
| + // Change setting, check dialog property.
|
| + profile->GetPrefs()->SetBoolean(prefs::kClearSiteDataOnExit, true);
|
| + EXPECT_TRUE([controller_ clearSiteDataOnExit]);
|
| +
|
| + profile->GetPrefs()->SetBoolean(prefs::kClearSiteDataOnExit, false);
|
| + EXPECT_FALSE([controller_ clearSiteDataOnExit]);
|
| +
|
| + // Change dialog property, check setting.
|
| + [controller_ setClearSiteDataOnExit:YES];
|
| + EXPECT_TRUE(profile->GetPrefs()->GetBoolean(prefs::kClearSiteDataOnExit));
|
| +
|
| + [controller_ setClearSiteDataOnExit:NO];
|
| + EXPECT_FALSE(profile->GetPrefs()->GetBoolean(prefs::kClearSiteDataOnExit));
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, ImagesSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_IMAGES,
|
| + CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ imagesEnabledIndex], kContentSettingsEnabledIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_IMAGES,
|
| + CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ imagesEnabledIndex], kContentSettingsDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setImagesEnabledIndex:kContentSettingsEnabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_IMAGES);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setImagesEnabledIndex:kContentSettingsDisabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_IMAGES);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, JavaScriptSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT,
|
| + CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ javaScriptEnabledIndex], kContentSettingsEnabledIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT,
|
| + CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ javaScriptEnabledIndex],
|
| + kContentSettingsDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setJavaScriptEnabledIndex:kContentSettingsEnabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setJavaScriptEnabledIndex:kContentSettingsDisabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, PluginsSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
|
| + CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ pluginsEnabledIndex], kContentSettingsEnabledIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS,
|
| + CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ pluginsEnabledIndex], kContentSettingsDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setPluginsEnabledIndex:kContentSettingsEnabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setPluginsEnabledIndex:kContentSettingsDisabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_PLUGINS);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, PopupsSetting) {
|
| + // Change setting, check dialog property.
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_POPUPS,
|
| + CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ popupsEnabledIndex], kContentSettingsEnabledIndex);
|
| +
|
| + settingsMap_->SetDefaultContentSetting(CONTENT_SETTINGS_TYPE_POPUPS,
|
| + CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ popupsEnabledIndex], kContentSettingsDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setPopupsEnabledIndex:kContentSettingsEnabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_POPUPS);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setPopupsEnabledIndex:kContentSettingsDisabledIndex];
|
| + setting =
|
| + settingsMap_->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_POPUPS);
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| +TEST_F(ContentSettingsDialogControllerTest, GeolocationSetting) {
|
| + // Change setting, check dialog property.
|
| + geoSettingsMap_->SetDefaultContentSetting(CONTENT_SETTING_ALLOW);
|
| + EXPECT_EQ([controller_ geolocationSettingIndex], kGeolocationEnabledIndex);
|
| +
|
| + geoSettingsMap_->SetDefaultContentSetting(CONTENT_SETTING_ASK);
|
| + EXPECT_EQ([controller_ geolocationSettingIndex], kGeolocationAskIndex);
|
| +
|
| + geoSettingsMap_->SetDefaultContentSetting(CONTENT_SETTING_BLOCK);
|
| + EXPECT_EQ([controller_ geolocationSettingIndex], kGeolocationDisabledIndex);
|
| +
|
| + // Change dialog property, check setting.
|
| + NSInteger setting;
|
| + [controller_ setGeolocationSettingIndex:kGeolocationEnabledIndex];
|
| + setting =
|
| + geoSettingsMap_->GetDefaultContentSetting();
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ALLOW);
|
| +
|
| + [controller_ setGeolocationSettingIndex:kGeolocationAskIndex];
|
| + setting =
|
| + geoSettingsMap_->GetDefaultContentSetting();
|
| + EXPECT_EQ(setting, CONTENT_SETTING_ASK);
|
| +
|
| + [controller_ setGeolocationSettingIndex:kGeolocationDisabledIndex];
|
| + setting =
|
| + geoSettingsMap_->GetDefaultContentSetting();
|
| + EXPECT_EQ(setting, CONTENT_SETTING_BLOCK);
|
| +}
|
| +
|
| } // namespace
|
| +
|
|
|