Index: chrome/browser/ssl/ssl_browser_tests.cc |
=================================================================== |
--- chrome/browser/ssl/ssl_browser_tests.cc (revision 88546) |
+++ chrome/browser/ssl/ssl_browser_tests.cc (working copy) |
@@ -2,12 +2,14 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include "base/command_line.h" |
#include "base/time.h" |
#include "chrome/app/chrome_command_ids.h" |
#include "chrome/browser/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_navigator.h" |
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
+#include "chrome/common/chrome_switches.h" |
#include "chrome/test/in_process_browser_test.h" |
#include "chrome/test/ui_test_utils.h" |
#include "content/browser/renderer_host/render_view_host.h" |
@@ -34,6 +36,11 @@ |
EnableDOMAutomation(); |
} |
+ // Browser will both run and display insecure content. |
+ virtual void SetUpCommandLine(CommandLine* command_line) { |
+ command_line->AppendSwitch(switches::kAllowRunningInsecureContent); |
+ } |
+ |
void CheckAuthenticatedState(TabContents* tab, |
bool displayed_insecure_content) { |
NavigationEntry* entry = tab->controller().GetActiveEntry(); |
@@ -197,6 +204,16 @@ |
DISALLOW_COPY_AND_ASSIGN(SSLUITest); |
}; |
+class SSLUITestBlock : public SSLUITest { |
+ public: |
+ SSLUITestBlock() : SSLUITest() {} |
+ |
+ // Browser will neither run nor display insecure content. |
+ virtual void SetUpCommandLine(CommandLine* command_line) { |
+ command_line->AppendSwitch(switches::kNoDisplayingInsecureContent); |
+ } |
+}; |
+ |
// Visits a regular page over http. |
IN_PROC_BROWSER_TEST_F(SSLUITest, TestHTTP) { |
ASSERT_TRUE(test_server()->Start()); |
@@ -455,9 +472,8 @@ |
// Visits a page that runs insecure content and tries to suppress the insecure |
// content warnings by randomizing location.hash. |
// Based on http://crbug.com/8706 |
-// Disabled, http://crbug.com/85475. |
IN_PROC_BROWSER_TEST_F(SSLUITest, |
- DISABLED_TestRunsInsecuredContentRandomizeHash) { |
+ TestRunsInsecuredContentRandomizeHash) { |
ASSERT_TRUE(test_server()->Start()); |
ASSERT_TRUE(https_server_.Start()); |
@@ -580,8 +596,7 @@ |
// Visits two pages from the same origin: one that runs insecure content and one |
// that doesn't. The test checks that we propagate the insecure content state |
// from one to the other. |
-// Disabled, http://crbug.com/85475. |
-IN_PROC_BROWSER_TEST_F(SSLUITest, DISABLED_TestRunsInsecureContentTwoTabs) { |
+IN_PROC_BROWSER_TEST_F(SSLUITest, TestRunsInsecureContentTwoTabs) { |
ASSERT_TRUE(test_server()->Start()); |
ASSERT_TRUE(https_server_.Start()); |
@@ -647,9 +662,7 @@ |
#define MAYBE_TestRunsCachedInsecureContent \ |
DISABLED_TestRunsCachedInsecureContent |
#else |
-// Disabled, http://crbug.com/85475. |
-#define MAYBE_TestRunsCachedInsecureContent \ |
- DISABLED_TestRunsCachedInsecureContent |
+#define MAYBE_TestRunsCachedInsecureContent TestRunsCachedInsecureContent |
#endif // defined(OS_CHROMEOS) |
// Visits a page with script over http. Visits another page over https |
@@ -1120,6 +1133,45 @@ |
CheckAuthenticationBrokenState(tab, 0, true, false); |
} |
+// Test that when the browser blocks displaying insecure content, the |
+// indicator shows a secure page, because the blocking made the otherwise |
+// unsafe page safe (the notification of this state is handled by other means). |
+IN_PROC_BROWSER_TEST_F(SSLUITestBlock, TestBlockDisplayingInsecureContent) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ ASSERT_TRUE(https_server_.Start()); |
+ |
+ std::string replacement_path; |
+ ASSERT_TRUE(GetFilePathWithHostAndPortReplacement( |
+ "files/ssl/page_displays_insecure_content.html", |
+ test_server()->host_port_pair(), |
+ &replacement_path)); |
+ |
+ ui_test_utils::NavigateToURL(browser(), |
+ https_server_.GetURL(replacement_path)); |
+ |
+ CheckAuthenticatedState(browser()->GetSelectedTabContents(), false); |
+} |
+ |
+// Test that when the browser blocks running insecure content, the |
+// indicator shows a secure page, because the blocking made the otherwise |
+// unsafe page safe (the notification of this state is handled by other means). |
+IN_PROC_BROWSER_TEST_F(SSLUITestBlock, TestBlockRunningInsecureContent) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ ASSERT_TRUE(https_server_.Start()); |
+ |
+ std::string replacement_path; |
+ ASSERT_TRUE(GetFilePathWithHostAndPortReplacement( |
+ "files/ssl/page_runs_insecure_content.html", |
+ test_server()->host_port_pair(), |
+ &replacement_path)); |
+ |
+ ui_test_utils::NavigateToURL(browser(), |
+ https_server_.GetURL(replacement_path)); |
+ |
+ CheckAuthenticatedState(browser()->GetSelectedTabContents(), false); |
+} |
+ |
+ |
// TODO(jcampan): more tests to do below. |
// Visit a page over https that contains a frame with a redirect. |