Index: chrome/browser/ui/website_settings/website_settings_unittest.cc |
diff --git a/chrome/browser/ui/website_settings/website_settings_unittest.cc b/chrome/browser/ui/website_settings/website_settings_unittest.cc |
index 27ebd591b3a051fbad1e2d8d4e6201a14d3a817e..69fdb9456c836ad3cedf48c6cf4de2eb160d19c8 100644 |
--- a/chrome/browser/ui/website_settings/website_settings_unittest.cc |
+++ b/chrome/browser/ui/website_settings/website_settings_unittest.cc |
@@ -10,6 +10,7 @@ |
#include "base/utf_string_conversions.h" |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
+#include "chrome/browser/infobars/infobar_tab_helper.h" |
#include "chrome/browser/ui/website_settings/website_settings_ui.h" |
#include "chrome/common/content_settings.h" |
#include "chrome/common/content_settings_types.h" |
@@ -72,6 +73,7 @@ class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
cert_id_(0), |
browser_thread_(content::BrowserThread::UI, &message_loop_), |
tab_specific_content_settings_(NULL), |
+ infobar_tab_helper_(NULL), |
url_("http://www.example.com") { |
} |
@@ -95,6 +97,7 @@ class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
tab_specific_content_settings_.reset( |
new TabSpecificContentSettings(contents())); |
+ infobar_tab_helper_.reset(new InfoBarTabHelper(contents())); |
// Setup the mock cert store. |
EXPECT_CALL(cert_store_, RetrieveCert(cert_id_, _) ) |
@@ -128,12 +131,13 @@ class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
TabSpecificContentSettings* tab_specific_content_settings() { |
return tab_specific_content_settings_.get(); |
} |
+ InfoBarTabHelper* infobar_tab_helper() { return infobar_tab_helper_.get(); } |
WebsiteSettings* website_settings() { |
if (!website_settings_.get()) { |
website_settings_.reset(new WebsiteSettings( |
- mock_ui(), profile(), tab_specific_content_settings_.get(), url(), |
- ssl(), cert_store())); |
+ mock_ui(), profile(), tab_specific_content_settings_.get(), |
+ infobar_tab_helper_.get(), url(), ssl(), cert_store())); |
} |
return website_settings_.get(); |
} |
@@ -147,6 +151,7 @@ class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
scoped_refptr<net::X509Certificate> cert_; |
content::TestBrowserThread browser_thread_; |
scoped_ptr<TabSpecificContentSettings> tab_specific_content_settings_; |
+ scoped_ptr<InfoBarTabHelper> infobar_tab_helper_; |
MockCertStore cert_store_; |
GURL url_; |
}; |
@@ -319,3 +324,22 @@ TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { |
website_settings()->site_identity_status()); |
EXPECT_EQ(string16(), website_settings()->organization_name()); |
} |
+ |
+TEST_F(WebsiteSettingsTest, NoInfoBar) { |
+ SetDefaultUIExpectations(mock_ui()); |
+ EXPECT_EQ(0u, infobar_tab_helper()->infobar_count()); |
+ website_settings()->OnUIClosing(); |
+ EXPECT_EQ(0u, infobar_tab_helper()->infobar_count()); |
+} |
+ |
+TEST_F(WebsiteSettingsTest, ShowInfoBar) { |
+ SetDefaultUIExpectations(mock_ui()); |
+ EXPECT_EQ(0u, infobar_tab_helper()->infobar_count()); |
+ website_settings()->OnSitePermissionChanged( |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); |
+ website_settings()->OnUIClosing(); |
+ EXPECT_EQ(1u, infobar_tab_helper()->infobar_count()); |
+ |
+ infobar_tab_helper()->RemoveInfoBar( |
+ infobar_tab_helper()->GetInfoBarDelegateAt(0)); |
+} |