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 "base/callback.h" | 5 #include "base/callback.h" |
6 #include "base/location.h" | 6 #include "base/location.h" |
7 #include "base/single_thread_task_runner.h" | 7 #include "base/single_thread_task_runner.h" |
8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "base/threading/thread_task_runner_handle.h" | 10 #include "base/threading/thread_task_runner_handle.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 browser()->tab_strip_model()->GetActiveWebContents(); | 113 browser()->tab_strip_model()->GetActiveWebContents(); |
114 ASSERT_TRUE(web_contents); | 114 ASSERT_TRUE(web_contents); |
115 | 115 |
116 ConstrainedWebDialogDelegate* dialog_delegate = | 116 ConstrainedWebDialogDelegate* dialog_delegate = |
117 ShowConstrainedWebDialog(browser()->profile(), delegate, web_contents); | 117 ShowConstrainedWebDialog(browser()->profile(), delegate, web_contents); |
118 ASSERT_TRUE(dialog_delegate); | 118 ASSERT_TRUE(dialog_delegate); |
119 EXPECT_TRUE(dialog_delegate->GetNativeDialog()); | 119 EXPECT_TRUE(dialog_delegate->GetNativeDialog()); |
120 EXPECT_TRUE(IsShowingWebContentsModalDialog(web_contents)); | 120 EXPECT_TRUE(IsShowingWebContentsModalDialog(web_contents)); |
121 } | 121 } |
122 | 122 |
123 // Tests that ReleaseWebContentsOnDialogClose() works. | 123 // Tests that ReleaseWebContents() works. |
124 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, | 124 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, ReleaseWebContents) { |
125 ReleaseWebContentsOnDialogClose) { | |
126 // The delegate deletes itself. | 125 // The delegate deletes itself. |
127 WebDialogDelegate* delegate = new ui::test::TestWebDialogDelegate( | 126 WebDialogDelegate* delegate = new ui::test::TestWebDialogDelegate( |
128 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); | 127 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); |
129 WebContents* web_contents = | 128 WebContents* web_contents = |
130 browser()->tab_strip_model()->GetActiveWebContents(); | 129 browser()->tab_strip_model()->GetActiveWebContents(); |
131 ASSERT_TRUE(web_contents); | 130 ASSERT_TRUE(web_contents); |
132 | 131 |
133 ConstrainedWebDialogDelegate* dialog_delegate = | 132 ConstrainedWebDialogDelegate* dialog_delegate = |
134 ShowConstrainedWebDialog(browser()->profile(), delegate, web_contents); | 133 ShowConstrainedWebDialog(browser()->profile(), delegate, web_contents); |
135 ASSERT_TRUE(dialog_delegate); | 134 ASSERT_TRUE(dialog_delegate); |
136 std::unique_ptr<WebContents> new_tab(dialog_delegate->GetWebContents()); | 135 WebContents* dialog_contents = dialog_delegate->GetWebContents(); |
137 ASSERT_TRUE(new_tab.get()); | 136 ASSERT_TRUE(dialog_contents); |
138 ASSERT_TRUE(IsShowingWebContentsModalDialog(web_contents)); | 137 ASSERT_TRUE(IsShowingWebContentsModalDialog(web_contents)); |
139 | 138 |
140 ConstrainedWebDialogBrowserTestObserver observer(new_tab.get()); | 139 ConstrainedWebDialogBrowserTestObserver observer(dialog_contents); |
141 dialog_delegate->ReleaseWebContentsOnDialogClose(); | 140 std::unique_ptr<WebContents> dialog_contents_holder = |
| 141 dialog_delegate->ReleaseWebContents(); |
142 dialog_delegate->OnDialogCloseFromWebUI(); | 142 dialog_delegate->OnDialogCloseFromWebUI(); |
143 | 143 |
144 ASSERT_FALSE(observer.contents_destroyed()); | 144 ASSERT_FALSE(observer.contents_destroyed()); |
145 EXPECT_FALSE(IsShowingWebContentsModalDialog(web_contents)); | 145 EXPECT_FALSE(IsShowingWebContentsModalDialog(web_contents)); |
146 new_tab.reset(); | 146 dialog_contents_holder.reset(); |
147 EXPECT_TRUE(observer.contents_destroyed()); | 147 EXPECT_TRUE(observer.contents_destroyed()); |
148 } | 148 } |
149 | 149 |
150 // Tests that dialog autoresizes based on web contents when autoresizing | 150 // Tests that dialog autoresizes based on web contents when autoresizing |
151 // is enabled. | 151 // is enabled. |
152 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, | 152 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, |
153 ContentResizeInAutoResizingDialog) { | 153 ContentResizeInAutoResizingDialog) { |
154 // During auto-resizing, dialogs size to (WebContents size) + 16. | 154 // During auto-resizing, dialogs size to (WebContents size) + 16. |
155 const int dialog_border_space = 16; | 155 const int dialog_border_space = 16; |
156 | 156 |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 dialog_delegate))); | 266 dialog_delegate))); |
267 | 267 |
268 // Resize <body> to dimension larger than dialog. | 268 // Resize <body> to dimension larger than dialog. |
269 EXPECT_TRUE(ExecuteScript(dialog_delegate->GetWebContents(), | 269 EXPECT_TRUE(ExecuteScript(dialog_delegate->GetWebContents(), |
270 GetChangeDimensionsScript(500))); | 270 GetChangeDimensionsScript(500))); |
271 ASSERT_TRUE(RunLoopUntil(base::Bind( | 271 ASSERT_TRUE(RunLoopUntil(base::Bind( |
272 &IsEqualSizes, | 272 &IsEqualSizes, |
273 initial_dialog_size, | 273 initial_dialog_size, |
274 dialog_delegate))); | 274 dialog_delegate))); |
275 } | 275 } |
OLD | NEW |