app_shell: Add version number in user agent
[chromium-blink-merge.git] / chrome / browser / ui / content_settings / content_setting_bubble_model_browsertest.cc
blobdfe2b761c654d285e4041871027654ae5711f3e0
1 // Copyright 2014 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.
5 #include <vector>
7 #include "base/files/file_path.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/ui/browser.h"
10 #include "chrome/browser/ui/browser_content_setting_bubble_model_delegate.h"
11 #include "chrome/browser/ui/content_settings/content_setting_bubble_model.h"
12 #include "chrome/browser/ui/tabs/tab_strip_model.h"
13 #include "chrome/test/base/in_process_browser_test.h"
14 #include "chrome/test/base/ui_test_utils.h"
15 #include "components/content_settings/core/common/content_settings_types.h"
16 #include "content/public/test/test_navigation_observer.h"
17 #include "net/test/spawned_test_server/spawned_test_server.h"
18 #include "testing/gtest/include/gtest/gtest.h"
20 const base::FilePath::CharType kDocRoot[] =
21 FILE_PATH_LITERAL("chrome/test/data");
23 class ContentSettingBubbleModelMixedScriptTest : public InProcessBrowserTest {
24 protected:
25 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
26 https_server_.reset(
27 new net::SpawnedTestServer(
28 net::SpawnedTestServer::TYPE_HTTPS,
29 net::SpawnedTestServer::SSLOptions(
30 net::SpawnedTestServer::SSLOptions::CERT_OK),
31 base::FilePath(kDocRoot)));
32 ASSERT_TRUE(https_server_->Start());
35 TabSpecificContentSettings* GetActiveTabSpecificContentSettings() {
36 return TabSpecificContentSettings::FromWebContents(
37 browser()->tab_strip_model()->GetActiveWebContents());
40 scoped_ptr<net::SpawnedTestServer> https_server_;
43 // Tests that a MIXEDSCRIPT type ContentSettingBubbleModel sends appropriate
44 // IPCs to allow the renderer to load unsafe scripts and refresh the page
45 // automatically.
46 IN_PROC_BROWSER_TEST_F(ContentSettingBubbleModelMixedScriptTest, MainFrame) {
47 GURL url(https_server_->GetURL(
48 "files/content_setting_bubble/mixed_script.html"));
50 // Load a page with mixed content and do quick verification by looking at
51 // the title string.
52 ui_test_utils::NavigateToURL(browser(), url);
54 EXPECT_TRUE(GetActiveTabSpecificContentSettings()->IsContentBlocked(
55 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
57 // Emulate link clicking on the mixed script bubble.
58 scoped_ptr<ContentSettingBubbleModel> model(
59 ContentSettingBubbleModel::CreateContentSettingBubbleModel(
60 browser()->content_setting_bubble_model_delegate(),
61 browser()->tab_strip_model()->GetActiveWebContents(),
62 browser()->profile(),
63 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
64 model->OnCustomLinkClicked();
66 // Wait for reload
67 content::TestNavigationObserver observer(
68 browser()->tab_strip_model()->GetActiveWebContents());
69 observer.Wait();
71 EXPECT_FALSE(GetActiveTabSpecificContentSettings()->IsContentBlocked(
72 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
75 // Tests that a MIXEDSCRIPT type ContentSettingBubbleModel works for an iframe.
76 IN_PROC_BROWSER_TEST_F(ContentSettingBubbleModelMixedScriptTest, Iframe) {
77 GURL url(https_server_->GetURL(
78 "files/content_setting_bubble/mixed_script_in_iframe.html"));
80 ui_test_utils::NavigateToURL(browser(), url);
82 EXPECT_TRUE(GetActiveTabSpecificContentSettings()->IsContentBlocked(
83 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
85 scoped_ptr<ContentSettingBubbleModel> model(
86 ContentSettingBubbleModel::CreateContentSettingBubbleModel(
87 browser()->content_setting_bubble_model_delegate(),
88 browser()->tab_strip_model()->GetActiveWebContents(),
89 browser()->profile(),
90 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));
91 model->OnCustomLinkClicked();
93 content::TestNavigationObserver observer(
94 browser()->tab_strip_model()->GetActiveWebContents());
95 observer.Wait();
97 EXPECT_FALSE(GetActiveTabSpecificContentSettings()->IsContentBlocked(
98 CONTENT_SETTINGS_TYPE_MIXEDSCRIPT));