| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/permission_bubble_manager.h" | 5 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
| 9 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 9 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 10 #include "chrome/browser/ui/website_settings/mock_permission_bubble_view.h" | 10 #include "chrome/browser/ui/website_settings/mock_permission_bubble_view.h" |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 // Requests before the load event should be bundled into one bubble. | 46 // Requests before the load event should be bundled into one bubble. |
| 47 // http://crbug.com/512849 flaky | 47 // http://crbug.com/512849 flaky |
| 48 #if defined(OS_WIN) | 48 #if defined(OS_WIN) |
| 49 #define MAYBE_RequestsBeforeLoad DISABLED_RequestsBeforeLoad | 49 #define MAYBE_RequestsBeforeLoad DISABLED_RequestsBeforeLoad |
| 50 #else | 50 #else |
| 51 #define MAYBE_RequestsBeforeLoad RequestsBeforeLoad | 51 #define MAYBE_RequestsBeforeLoad RequestsBeforeLoad |
| 52 #endif | 52 #endif |
| 53 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, | 53 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, |
| 54 MAYBE_RequestsBeforeLoad) { | 54 MAYBE_RequestsBeforeLoad) { |
| 55 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 55 ASSERT_TRUE(embedded_test_server()->Start()); |
| 56 | 56 |
| 57 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 57 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 58 browser(), | 58 browser(), |
| 59 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), | 59 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), |
| 60 1); | 60 1); |
| 61 WaitForPermissionBubble(); | 61 WaitForPermissionBubble(); |
| 62 | 62 |
| 63 EXPECT_EQ(1, bubble_view()->show_count()); | 63 EXPECT_EQ(1, bubble_view()->show_count()); |
| 64 EXPECT_EQ(2, bubble_view()->requests_count()); | 64 EXPECT_EQ(2, bubble_view()->requests_count()); |
| 65 } | 65 } |
| 66 | 66 |
| 67 // Requests before the load should not be bundled with a request after the load. | 67 // Requests before the load should not be bundled with a request after the load. |
| 68 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, | 68 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, |
| 69 RequestsBeforeAfterLoad) { | 69 RequestsBeforeAfterLoad) { |
| 70 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 70 ASSERT_TRUE(embedded_test_server()->Start()); |
| 71 | 71 |
| 72 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 72 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 73 browser(), | 73 browser(), |
| 74 embedded_test_server()->GetURL( | 74 embedded_test_server()->GetURL( |
| 75 "/permissions/requests-before-after-load.html"), | 75 "/permissions/requests-before-after-load.html"), |
| 76 1); | 76 1); |
| 77 WaitForPermissionBubble(); | 77 WaitForPermissionBubble(); |
| 78 | 78 |
| 79 EXPECT_EQ(1, bubble_view()->show_count()); | 79 EXPECT_EQ(1, bubble_view()->show_count()); |
| 80 EXPECT_EQ(1, bubble_view()->requests_count()); | 80 EXPECT_EQ(1, bubble_view()->requests_count()); |
| 81 } | 81 } |
| 82 | 82 |
| 83 // Navigating twice to the same URL should be equivalent to refresh. This means | 83 // Navigating twice to the same URL should be equivalent to refresh. This means |
| 84 // showing the bubbles twice. | 84 // showing the bubbles twice. |
| 85 // http://crbug.com/512849 flaky | 85 // http://crbug.com/512849 flaky |
| 86 #if defined(OS_WIN) | 86 #if defined(OS_WIN) |
| 87 #define MAYBE_NavTwice DISABLED_NavTwice | 87 #define MAYBE_NavTwice DISABLED_NavTwice |
| 88 #else | 88 #else |
| 89 #define MAYBE_NavTwice NavTwice | 89 #define MAYBE_NavTwice NavTwice |
| 90 #endif | 90 #endif |
| 91 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, MAYBE_NavTwice) { | 91 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, MAYBE_NavTwice) { |
| 92 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 92 ASSERT_TRUE(embedded_test_server()->Start()); |
| 93 | 93 |
| 94 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 94 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 95 browser(), | 95 browser(), |
| 96 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), | 96 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), |
| 97 1); | 97 1); |
| 98 WaitForPermissionBubble(); | 98 WaitForPermissionBubble(); |
| 99 | 99 |
| 100 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 100 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 101 browser(), | 101 browser(), |
| 102 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), | 102 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), |
| 103 1); | 103 1); |
| 104 WaitForPermissionBubble(); | 104 WaitForPermissionBubble(); |
| 105 | 105 |
| 106 EXPECT_EQ(2, bubble_view()->show_count()); | 106 EXPECT_EQ(2, bubble_view()->show_count()); |
| 107 EXPECT_EQ(4, bubble_view()->requests_count()); | 107 EXPECT_EQ(4, bubble_view()->requests_count()); |
| 108 } | 108 } |
| 109 | 109 |
| 110 // Navigating twice to the same URL with a hash should be navigation within the | 110 // Navigating twice to the same URL with a hash should be navigation within the |
| 111 // page. This means the bubble is only shown once. | 111 // page. This means the bubble is only shown once. |
| 112 // http://crbug.com/512849 flaky | 112 // http://crbug.com/512849 flaky |
| 113 #if defined(OS_WIN) | 113 #if defined(OS_WIN) |
| 114 #define MAYBE_NavTwiceWithHash DISABLED_NavTwiceWithHash | 114 #define MAYBE_NavTwiceWithHash DISABLED_NavTwiceWithHash |
| 115 #else | 115 #else |
| 116 #define MAYBE_NavTwiceWithHash NavTwiceWithHash | 116 #define MAYBE_NavTwiceWithHash NavTwiceWithHash |
| 117 #endif | 117 #endif |
| 118 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, | 118 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, |
| 119 MAYBE_NavTwiceWithHash) { | 119 MAYBE_NavTwiceWithHash) { |
| 120 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 120 ASSERT_TRUE(embedded_test_server()->Start()); |
| 121 | 121 |
| 122 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 122 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 123 browser(), | 123 browser(), |
| 124 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), | 124 embedded_test_server()->GetURL("/permissions/requests-before-load.html"), |
| 125 1); | 125 1); |
| 126 WaitForPermissionBubble(); | 126 WaitForPermissionBubble(); |
| 127 | 127 |
| 128 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 128 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 129 browser(), | 129 browser(), |
| 130 embedded_test_server()->GetURL( | 130 embedded_test_server()->GetURL( |
| 131 "/permissions/requests-before-load.html#0"), | 131 "/permissions/requests-before-load.html#0"), |
| 132 1); | 132 1); |
| 133 WaitForPermissionBubble(); | 133 WaitForPermissionBubble(); |
| 134 | 134 |
| 135 EXPECT_EQ(1, bubble_view()->show_count()); | 135 EXPECT_EQ(1, bubble_view()->show_count()); |
| 136 EXPECT_EQ(2, bubble_view()->requests_count()); | 136 EXPECT_EQ(2, bubble_view()->requests_count()); |
| 137 } | 137 } |
| 138 | 138 |
| 139 // Bubble requests should be shown after in-page navigation. | 139 // Bubble requests should be shown after in-page navigation. |
| 140 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, InPageNavigation) { | 140 IN_PROC_BROWSER_TEST_F(PermissionBubbleManagerBrowserTest, InPageNavigation) { |
| 141 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 141 ASSERT_TRUE(embedded_test_server()->Start()); |
| 142 | 142 |
| 143 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 143 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 144 browser(), | 144 browser(), |
| 145 embedded_test_server()->GetURL("/empty.html"), | 145 embedded_test_server()->GetURL("/empty.html"), |
| 146 1); | 146 1); |
| 147 | 147 |
| 148 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( | 148 ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( |
| 149 browser(), | 149 browser(), |
| 150 embedded_test_server()->GetURL("/empty.html#0"), | 150 embedded_test_server()->GetURL("/empty.html#0"), |
| 151 1); | 151 1); |
| 152 | 152 |
| 153 // Request 'geolocation' permission. | 153 // Request 'geolocation' permission. |
| 154 ExecuteScriptAndGetValue( | 154 ExecuteScriptAndGetValue( |
| 155 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), | 155 browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), |
| 156 "navigator.geolocation.getCurrentPosition(function(){});"); | 156 "navigator.geolocation.getCurrentPosition(function(){});"); |
| 157 WaitForPermissionBubble(); | 157 WaitForPermissionBubble(); |
| 158 | 158 |
| 159 EXPECT_EQ(1, bubble_view()->show_count()); | 159 EXPECT_EQ(1, bubble_view()->show_count()); |
| 160 EXPECT_EQ(1, bubble_view()->requests_count()); | 160 EXPECT_EQ(1, bubble_view()->requests_count()); |
| 161 } | 161 } |
| 162 | 162 |
| 163 } // anonymous namespace | 163 } // anonymous namespace |
| OLD | NEW |