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/test/ui/ui_test.h" | 5 #include "chrome/test/ui/ui_test.h" |
6 | 6 |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
9 #include "chrome/browser/ui/constrained_window_tab_helper.h" | 9 #include "chrome/browser/ui/constrained_window_tab_helper.h" |
10 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 10 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
11 #include "chrome/browser/ui/webui/constrained_html_ui.h" | 11 #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" |
12 #include "chrome/browser/ui/webui/test_html_dialog_ui_delegate.h" | 12 #include "chrome/browser/ui/webui/test_web_dialog_delegate.h" |
13 #include "chrome/common/url_constants.h" | 13 #include "chrome/common/url_constants.h" |
14 #include "chrome/test/base/in_process_browser_test.h" | 14 #include "chrome/test/base/in_process_browser_test.h" |
15 #include "chrome/test/base/ui_test_utils.h" | 15 #include "chrome/test/base/ui_test_utils.h" |
16 #include "content/public/browser/web_contents.h" | 16 #include "content/public/browser/web_contents.h" |
17 #include "content/public/browser/web_contents_observer.h" | 17 #include "content/public/browser/web_contents_observer.h" |
18 | 18 |
19 using content::WebContents; | 19 using content::WebContents; |
20 | 20 |
21 namespace { | 21 namespace { |
22 | 22 |
23 class ConstrainedHtmlDialogBrowserTestObserver | 23 class ConstrainedWebDialogBrowserTestObserver |
24 : public content::WebContentsObserver { | 24 : public content::WebContentsObserver { |
25 public: | 25 public: |
26 explicit ConstrainedHtmlDialogBrowserTestObserver(WebContents* contents) | 26 explicit ConstrainedWebDialogBrowserTestObserver(WebContents* contents) |
27 : content::WebContentsObserver(contents), | 27 : content::WebContentsObserver(contents), |
28 tab_destroyed_(false) { | 28 tab_destroyed_(false) { |
29 } | 29 } |
30 virtual ~ConstrainedHtmlDialogBrowserTestObserver() {} | 30 virtual ~ConstrainedWebDialogBrowserTestObserver() {} |
31 | 31 |
32 bool tab_destroyed() { return tab_destroyed_; } | 32 bool tab_destroyed() { return tab_destroyed_; } |
33 | 33 |
34 private: | 34 private: |
35 virtual void WebContentsDestroyed(WebContents* tab) OVERRIDE { | 35 virtual void WebContentsDestroyed(WebContents* tab) OVERRIDE { |
36 tab_destroyed_ = true; | 36 tab_destroyed_ = true; |
37 } | 37 } |
38 | 38 |
39 bool tab_destroyed_; | 39 bool tab_destroyed_; |
40 }; | 40 }; |
41 | 41 |
42 } // namespace | 42 } // namespace |
43 | 43 |
44 class ConstrainedHtmlDialogBrowserTest : public InProcessBrowserTest { | 44 class ConstrainedWebDialogBrowserTest : public InProcessBrowserTest { |
45 public: | 45 public: |
46 ConstrainedHtmlDialogBrowserTest() {} | 46 ConstrainedWebDialogBrowserTest() {} |
47 | 47 |
48 protected: | 48 protected: |
49 size_t GetConstrainedWindowCount(TabContentsWrapper* wrapper) const { | 49 size_t GetConstrainedWindowCount(TabContentsWrapper* wrapper) const { |
50 return wrapper->constrained_window_tab_helper()->constrained_window_count(); | 50 return wrapper->constrained_window_tab_helper()->constrained_window_count(); |
51 } | 51 } |
52 }; | 52 }; |
53 | 53 |
54 // Tests that opening/closing the constrained window won't crash it. | 54 // Tests that opening/closing the constrained window won't crash it. |
55 IN_PROC_BROWSER_TEST_F(ConstrainedHtmlDialogBrowserTest, BasicTest) { | 55 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, BasicTest) { |
56 // The delegate deletes itself. | 56 // The delegate deletes itself. |
57 HtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( | 57 WebDialogDelegate* delegate = new test::TestWebDialogDelegate( |
58 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); | 58 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); |
59 TabContentsWrapper* wrapper = browser()->GetSelectedTabContentsWrapper(); | 59 TabContentsWrapper* wrapper = browser()->GetSelectedTabContentsWrapper(); |
60 ASSERT_TRUE(wrapper); | 60 ASSERT_TRUE(wrapper); |
61 | 61 |
62 ConstrainedHtmlUIDelegate* html_ui_delegate = | 62 ConstrainedWebDialogDelegate* dialog_delegate = |
63 ConstrainedHtmlUI::CreateConstrainedHtmlDialog(browser()->profile(), | 63 ConstrainedWebDialogUI::CreateConstrainedWebDialog(browser()->profile(), |
64 delegate, | 64 delegate, |
65 NULL, | 65 NULL, |
66 wrapper); | 66 wrapper); |
67 ASSERT_TRUE(html_ui_delegate); | 67 ASSERT_TRUE(dialog_delegate); |
68 EXPECT_TRUE(html_ui_delegate->window()); | 68 EXPECT_TRUE(dialog_delegate->window()); |
69 EXPECT_EQ(1U, GetConstrainedWindowCount(wrapper)); | 69 EXPECT_EQ(1U, GetConstrainedWindowCount(wrapper)); |
70 } | 70 } |
71 | 71 |
72 // Tests that ReleaseTabContentsOnDialogClose() works. | 72 // Tests that ReleaseTabContentsOnDialogClose() works. |
73 IN_PROC_BROWSER_TEST_F(ConstrainedHtmlDialogBrowserTest, | 73 IN_PROC_BROWSER_TEST_F(ConstrainedWebDialogBrowserTest, |
74 ReleaseTabContentsOnDialogClose) { | 74 ReleaseTabContentsOnDialogClose) { |
75 // The delegate deletes itself. | 75 // The delegate deletes itself. |
76 HtmlDialogUIDelegate* delegate = new test::TestHtmlDialogUIDelegate( | 76 WebDialogDelegate* delegate = new test::TestWebDialogDelegate( |
77 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); | 77 GURL(chrome::kChromeUIConstrainedHTMLTestURL)); |
78 TabContentsWrapper* wrapper = browser()->GetSelectedTabContentsWrapper(); | 78 TabContentsWrapper* wrapper = browser()->GetSelectedTabContentsWrapper(); |
79 ASSERT_TRUE(wrapper); | 79 ASSERT_TRUE(wrapper); |
80 | 80 |
81 ConstrainedHtmlUIDelegate* html_ui_delegate = | 81 ConstrainedWebDialogDelegate* dialog_delegate = |
82 ConstrainedHtmlUI::CreateConstrainedHtmlDialog(browser()->profile(), | 82 ConstrainedWebDialogUI::CreateConstrainedWebDialog(browser()->profile(), |
83 delegate, | 83 delegate, |
84 NULL, | 84 NULL, |
85 wrapper); | 85 wrapper); |
86 ASSERT_TRUE(html_ui_delegate); | 86 ASSERT_TRUE(dialog_delegate); |
87 scoped_ptr<TabContentsWrapper> new_tab(html_ui_delegate->tab()); | 87 scoped_ptr<TabContentsWrapper> new_tab(dialog_delegate->tab()); |
88 ASSERT_TRUE(new_tab.get()); | 88 ASSERT_TRUE(new_tab.get()); |
89 ASSERT_EQ(1U, GetConstrainedWindowCount(wrapper)); | 89 ASSERT_EQ(1U, GetConstrainedWindowCount(wrapper)); |
90 | 90 |
91 ConstrainedHtmlDialogBrowserTestObserver observer(new_tab->web_contents()); | 91 ConstrainedWebDialogBrowserTestObserver observer(new_tab->web_contents()); |
92 html_ui_delegate->ReleaseTabContentsOnDialogClose(); | 92 dialog_delegate->ReleaseTabContentsOnDialogClose(); |
93 html_ui_delegate->OnDialogCloseFromWebUI(); | 93 dialog_delegate->OnDialogCloseFromWebUI(); |
94 | 94 |
95 ASSERT_FALSE(observer.tab_destroyed()); | 95 ASSERT_FALSE(observer.tab_destroyed()); |
96 EXPECT_EQ(0U, GetConstrainedWindowCount(wrapper)); | 96 EXPECT_EQ(0U, GetConstrainedWindowCount(wrapper)); |
97 new_tab.reset(); | 97 new_tab.reset(); |
98 EXPECT_TRUE(observer.tab_destroyed()); | 98 EXPECT_TRUE(observer.tab_destroyed()); |
99 } | 99 } |
OLD | NEW |