| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/website_settings/website_settings.h" | 5 #include "chrome/browser/ui/website_settings/website_settings.h" |
| 6 | 6 |
| 7 #include "base/at_exit.h" | 7 #include "base/at_exit.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/string16.h" | 9 #include "base/string16.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 }; | 58 }; |
| 59 | 59 |
| 60 class MockWebsiteSettingsUI : public WebsiteSettingsUI { | 60 class MockWebsiteSettingsUI : public WebsiteSettingsUI { |
| 61 public: | 61 public: |
| 62 virtual ~MockWebsiteSettingsUI() {} | 62 virtual ~MockWebsiteSettingsUI() {} |
| 63 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); | 63 MOCK_METHOD1(SetCookieInfo, void(const CookieInfoList& cookie_info_list)); |
| 64 MOCK_METHOD1(SetPermissionInfo, | 64 MOCK_METHOD1(SetPermissionInfo, |
| 65 void(const PermissionInfoList& permission_info_list)); | 65 void(const PermissionInfoList& permission_info_list)); |
| 66 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); | 66 MOCK_METHOD1(SetIdentityInfo, void(const IdentityInfo& identity_info)); |
| 67 MOCK_METHOD1(SetFirstVisit, void(const string16& first_visit)); | 67 MOCK_METHOD1(SetFirstVisit, void(const string16& first_visit)); |
| 68 MOCK_METHOD1(SetSelectedTab, void(TabId tab_id)); |
| 68 }; | 69 }; |
| 69 | 70 |
| 70 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { | 71 class WebsiteSettingsTest : public ChromeRenderViewHostTestHarness { |
| 71 public: | 72 public: |
| 72 WebsiteSettingsTest() | 73 WebsiteSettingsTest() |
| 73 : website_settings_(NULL), | 74 : website_settings_(NULL), |
| 74 mock_ui_(NULL), | 75 mock_ui_(NULL), |
| 75 cert_id_(0), | 76 cert_id_(0), |
| 76 browser_thread_(content::BrowserThread::UI, &message_loop_), | 77 browser_thread_(content::BrowserThread::UI, &message_loop_), |
| 77 tab_specific_content_settings_(NULL), | 78 tab_specific_content_settings_(NULL), |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); | 183 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); |
| 183 | 184 |
| 184 // SetPermissionInfo() is called once initially, and then again every time | 185 // SetPermissionInfo() is called once initially, and then again every time |
| 185 // OnSitePermissionChanged() is called. | 186 // OnSitePermissionChanged() is called. |
| 186 // TODO(markusheintz): This is a temporary hack to fix issue: http://crbug.com/1
44203. | 187 // TODO(markusheintz): This is a temporary hack to fix issue: http://crbug.com/1
44203. |
| 187 #if defined(OS_MACOSX) | 188 #if defined(OS_MACOSX) |
| 188 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(5); | 189 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(5); |
| 189 #else | 190 #else |
| 190 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(1); | 191 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(1); |
| 191 #endif | 192 #endif |
| 193 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 194 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 192 | 195 |
| 193 // Execute code under tests. | 196 // Execute code under tests. |
| 194 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_POPUPS, | 197 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_POPUPS, |
| 195 CONTENT_SETTING_ALLOW); | 198 CONTENT_SETTING_ALLOW); |
| 196 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_PLUGINS, | 199 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_PLUGINS, |
| 197 CONTENT_SETTING_BLOCK); | 200 CONTENT_SETTING_BLOCK); |
| 198 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_GEOLOCATION, | 201 website_settings()->OnSitePermissionChanged(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 199 CONTENT_SETTING_ALLOW); | 202 CONTENT_SETTING_ALLOW); |
| 200 website_settings()->OnSitePermissionChanged( | 203 website_settings()->OnSitePermissionChanged( |
| 201 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); | 204 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 213 setting = content_settings->GetContentSetting( | 216 setting = content_settings->GetContentSetting( |
| 214 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); | 217 url(), url(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS, ""); |
| 215 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); | 218 EXPECT_EQ(setting, CONTENT_SETTING_ALLOW); |
| 216 } | 219 } |
| 217 | 220 |
| 218 TEST_F(WebsiteSettingsTest, OnSiteDataAccessed) { | 221 TEST_F(WebsiteSettingsTest, OnSiteDataAccessed) { |
| 219 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)); | 222 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)); |
| 220 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); | 223 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); |
| 221 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); | 224 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); |
| 222 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)).Times(2); | 225 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)).Times(2); |
| 226 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 227 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 223 | 228 |
| 224 website_settings()->OnSiteDataAccessed(); | 229 website_settings()->OnSiteDataAccessed(); |
| 225 } | 230 } |
| 226 | 231 |
| 227 TEST_F(WebsiteSettingsTest, HTTPConnection) { | 232 TEST_F(WebsiteSettingsTest, HTTPConnection) { |
| 228 SetDefaultUIExpectations(mock_ui()); | 233 SetDefaultUIExpectations(mock_ui()); |
| 234 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 235 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 229 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, | 236 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_UNENCRYPTED, |
| 230 website_settings()->site_connection_status()); | 237 website_settings()->site_connection_status()); |
| 231 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, | 238 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_NO_CERT, |
| 232 website_settings()->site_identity_status()); | 239 website_settings()->site_identity_status()); |
| 233 EXPECT_EQ(string16(), website_settings()->organization_name()); | 240 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 234 } | 241 } |
| 235 | 242 |
| 236 TEST_F(WebsiteSettingsTest, HTTPSConnection) { | 243 TEST_F(WebsiteSettingsTest, HTTPSConnection) { |
| 237 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 244 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 238 ssl_.cert_id = cert_id(); | 245 ssl_.cert_id = cert_id(); |
| 239 ssl_.cert_status = 0; | 246 ssl_.cert_status = 0; |
| 240 ssl_.security_bits = 81; // No error if > 80. | 247 ssl_.security_bits = 81; // No error if > 80. |
| 241 int status = 0; | 248 int status = 0; |
| 242 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 249 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 243 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 250 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 244 ssl_.connection_status = status; | 251 ssl_.connection_status = status; |
| 245 | 252 |
| 246 SetDefaultUIExpectations(mock_ui()); | 253 SetDefaultUIExpectations(mock_ui()); |
| 254 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 255 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 247 | 256 |
| 248 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 257 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 249 website_settings()->site_connection_status()); | 258 website_settings()->site_connection_status()); |
| 250 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 259 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 251 website_settings()->site_identity_status()); | 260 website_settings()->site_identity_status()); |
| 252 EXPECT_EQ(string16(), website_settings()->organization_name()); | 261 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 253 } | 262 } |
| 254 | 263 |
| 255 TEST_F(WebsiteSettingsTest, HTTPSMixedContent) { | 264 TEST_F(WebsiteSettingsTest, HTTPSMixedContent) { |
| 256 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 265 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 257 ssl_.cert_id = cert_id(); | 266 ssl_.cert_id = cert_id(); |
| 258 ssl_.cert_status = 0; | 267 ssl_.cert_status = 0; |
| 259 ssl_.security_bits = 81; // No error if > 80. | 268 ssl_.security_bits = 81; // No error if > 80. |
| 260 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; | 269 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; |
| 261 int status = 0; | 270 int status = 0; |
| 262 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 271 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 263 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 272 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 264 ssl_.connection_status = status; | 273 ssl_.connection_status = status; |
| 265 | 274 |
| 266 SetDefaultUIExpectations(mock_ui()); | 275 SetDefaultUIExpectations(mock_ui()); |
| 276 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 267 | 277 |
| 268 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, | 278 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, |
| 269 website_settings()->site_connection_status()); | 279 website_settings()->site_connection_status()); |
| 270 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 280 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 271 website_settings()->site_identity_status()); | 281 website_settings()->site_identity_status()); |
| 272 EXPECT_EQ(string16(), website_settings()->organization_name()); | 282 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 273 } | 283 } |
| 274 | 284 |
| 275 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { | 285 TEST_F(WebsiteSettingsTest, HTTPSEVCert) { |
| 276 scoped_refptr<net::X509Certificate> ev_cert = | 286 scoped_refptr<net::X509Certificate> ev_cert = |
| 277 net::X509Certificate::CreateFromBytes( | 287 net::X509Certificate::CreateFromBytes( |
| 278 reinterpret_cast<const char*>(google_der), | 288 reinterpret_cast<const char*>(google_der), |
| 279 sizeof(google_der)); | 289 sizeof(google_der)); |
| 280 int ev_cert_id = 1; | 290 int ev_cert_id = 1; |
| 281 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( | 291 EXPECT_CALL(*cert_store(), RetrieveCert(ev_cert_id, _)).WillRepeatedly( |
| 282 DoAll(SetArgPointee<1>(ev_cert), Return(true))); | 292 DoAll(SetArgPointee<1>(ev_cert), Return(true))); |
| 283 | 293 |
| 284 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 294 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 285 ssl_.cert_id = ev_cert_id; | 295 ssl_.cert_id = ev_cert_id; |
| 286 ssl_.cert_status = net::CERT_STATUS_IS_EV; | 296 ssl_.cert_status = net::CERT_STATUS_IS_EV; |
| 287 ssl_.security_bits = 81; // No error if > 80. | 297 ssl_.security_bits = 81; // No error if > 80. |
| 288 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; | 298 ssl_.content_status = SSLStatus::DISPLAYED_INSECURE_CONTENT; |
| 289 int status = 0; | 299 int status = 0; |
| 290 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 300 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 291 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 301 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 292 ssl_.connection_status = status; | 302 ssl_.connection_status = status; |
| 293 | 303 |
| 294 SetDefaultUIExpectations(mock_ui()); | 304 SetDefaultUIExpectations(mock_ui()); |
| 305 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 295 | 306 |
| 296 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, | 307 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_MIXED_CONTENT, |
| 297 website_settings()->site_connection_status()); | 308 website_settings()->site_connection_status()); |
| 298 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, | 309 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_EV_CERT, |
| 299 website_settings()->site_identity_status()); | 310 website_settings()->site_identity_status()); |
| 300 EXPECT_EQ(UTF8ToUTF16("Google Inc"), website_settings()->organization_name()); | 311 EXPECT_EQ(UTF8ToUTF16("Google Inc"), website_settings()->organization_name()); |
| 301 } | 312 } |
| 302 | 313 |
| 303 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { | 314 TEST_F(WebsiteSettingsTest, HTTPSRevocationError) { |
| 304 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 315 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 305 ssl_.cert_id = cert_id(); | 316 ssl_.cert_id = cert_id(); |
| 306 ssl_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; | 317 ssl_.cert_status = net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION; |
| 307 ssl_.security_bits = 81; // No error if > 80. | 318 ssl_.security_bits = 81; // No error if > 80. |
| 308 int status = 0; | 319 int status = 0; |
| 309 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 320 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 310 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 321 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 311 ssl_.connection_status = status; | 322 ssl_.connection_status = status; |
| 312 | 323 |
| 313 SetDefaultUIExpectations(mock_ui()); | 324 SetDefaultUIExpectations(mock_ui()); |
| 325 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 314 | 326 |
| 315 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, | 327 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED, |
| 316 website_settings()->site_connection_status()); | 328 website_settings()->site_connection_status()); |
| 317 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, | 329 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT_REVOCATION_UNKNOWN, |
| 318 website_settings()->site_identity_status()); | 330 website_settings()->site_identity_status()); |
| 319 EXPECT_EQ(string16(), website_settings()->organization_name()); | 331 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 320 } | 332 } |
| 321 | 333 |
| 322 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { | 334 TEST_F(WebsiteSettingsTest, HTTPSConnectionError) { |
| 323 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; | 335 ssl_.security_style = content::SECURITY_STYLE_AUTHENTICATED; |
| 324 ssl_.cert_id = cert_id(); | 336 ssl_.cert_id = cert_id(); |
| 325 ssl_.cert_status = 0; | 337 ssl_.cert_status = 0; |
| 326 ssl_.security_bits = 1; | 338 ssl_.security_bits = 1; |
| 327 int status = 0; | 339 int status = 0; |
| 328 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); | 340 status = SetSSLVersion(status, net::SSL_CONNECTION_VERSION_TLS1); |
| 329 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); | 341 status = SetSSLCipherSuite(status, CR_TLS_RSA_WITH_AES_256_CBC_SHA256); |
| 330 ssl_.connection_status = status; | 342 ssl_.connection_status = status; |
| 331 | 343 |
| 332 SetDefaultUIExpectations(mock_ui()); | 344 SetDefaultUIExpectations(mock_ui()); |
| 345 EXPECT_CALL(*mock_ui(), SetSelectedTab(WebsiteSettingsUI::TAB_ID_CONNECTION)); |
| 333 | 346 |
| 334 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, | 347 EXPECT_EQ(WebsiteSettings::SITE_CONNECTION_STATUS_ENCRYPTED_ERROR, |
| 335 website_settings()->site_connection_status()); | 348 website_settings()->site_connection_status()); |
| 336 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, | 349 EXPECT_EQ(WebsiteSettings::SITE_IDENTITY_STATUS_CERT, |
| 337 website_settings()->site_identity_status()); | 350 website_settings()->site_identity_status()); |
| 338 EXPECT_EQ(string16(), website_settings()->organization_name()); | 351 EXPECT_EQ(string16(), website_settings()->organization_name()); |
| 339 } | 352 } |
| 340 | 353 |
| 341 TEST_F(WebsiteSettingsTest, NoInfoBar) { | 354 TEST_F(WebsiteSettingsTest, NoInfoBar) { |
| 342 SetDefaultUIExpectations(mock_ui()); | 355 SetDefaultUIExpectations(mock_ui()); |
| 356 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 357 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 343 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 358 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 344 website_settings()->OnUIClosing(); | 359 website_settings()->OnUIClosing(); |
| 345 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 360 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 346 } | 361 } |
| 347 | 362 |
| 348 TEST_F(WebsiteSettingsTest, ShowInfoBar) { | 363 TEST_F(WebsiteSettingsTest, ShowInfoBar) { |
| 349 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); | 364 EXPECT_CALL(*mock_ui(), SetIdentityInfo(_)); |
| 350 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)); | 365 EXPECT_CALL(*mock_ui(), SetCookieInfo(_)); |
| 351 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); | 366 EXPECT_CALL(*mock_ui(), SetFirstVisit(string16())); |
| 352 | 367 |
| 353 // SetPermissionInfo() is called once initially, and then again every time | 368 // SetPermissionInfo() is called once initially, and then again every time |
| 354 // OnSitePermissionChanged() is called. | 369 // OnSitePermissionChanged() is called. |
| 355 // TODO(markusheintz): This is a temporary hack to fix issue: http://crbug.com/1
44203. | 370 // TODO(markusheintz): This is a temporary hack to fix issue: http://crbug.com/1
44203. |
| 356 #if defined(OS_MACOSX) | 371 #if defined(OS_MACOSX) |
| 357 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(2); | 372 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(2); |
| 358 #else | 373 #else |
| 359 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(1); | 374 EXPECT_CALL(*mock_ui(), SetPermissionInfo(_)).Times(1); |
| 360 #endif | 375 #endif |
| 361 | 376 |
| 377 EXPECT_CALL(*mock_ui(), SetSelectedTab( |
| 378 WebsiteSettingsUI::TAB_ID_PERMISSIONS)); |
| 362 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); | 379 EXPECT_EQ(0u, infobar_tab_helper()->GetInfoBarCount()); |
| 363 website_settings()->OnSitePermissionChanged( | 380 website_settings()->OnSitePermissionChanged( |
| 364 CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); | 381 CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); |
| 365 website_settings()->OnUIClosing(); | 382 website_settings()->OnUIClosing(); |
| 366 EXPECT_EQ(1u, infobar_tab_helper()->GetInfoBarCount()); | 383 EXPECT_EQ(1u, infobar_tab_helper()->GetInfoBarCount()); |
| 367 | 384 |
| 368 // Removing an |InfoBarDelegate| from the |InfoBarTabHelper| does not delete | 385 // Removing an |InfoBarDelegate| from the |InfoBarTabHelper| does not delete |
| 369 // it. Hence the |delegate| must be cleaned up after it was removed from the | 386 // it. Hence the |delegate| must be cleaned up after it was removed from the |
| 370 // |infobar_tab_helper|. | 387 // |infobar_tab_helper|. |
| 371 scoped_ptr<InfoBarDelegate> delegate( | 388 scoped_ptr<InfoBarDelegate> delegate( |
| 372 infobar_tab_helper()->GetInfoBarDelegateAt(0)); | 389 infobar_tab_helper()->GetInfoBarDelegateAt(0)); |
| 373 infobar_tab_helper()->RemoveInfoBar(delegate.get()); | 390 infobar_tab_helper()->RemoveInfoBar(delegate.get()); |
| 374 // Right now InfoBarDelegates delete themselves via | 391 // Right now InfoBarDelegates delete themselves via |
| 375 // InfoBarClosed(); once InfoBars own their delegates, this can become a | 392 // InfoBarClosed(); once InfoBars own their delegates, this can become a |
| 376 // simple reset() call | 393 // simple reset() call |
| 377 delegate.release()->InfoBarClosed(); | 394 delegate.release()->InfoBarClosed(); |
| 378 } | 395 } |
| OLD | NEW |