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/browser/ui/tab_modal_confirm_dialog_browsertest.h" | 5 #include "chrome/browser/ui/tab_modal_confirm_dialog_browsertest.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "chrome/browser/lifetime/application_lifetime.h" | 9 #include "chrome/browser/lifetime/application_lifetime.h" |
10 #include "chrome/browser/ui/browser.h" | 10 #include "chrome/browser/ui/browser.h" |
11 #include "chrome/browser/ui/browser_dialogs.h" | 11 #include "chrome/browser/ui/browser_dialogs.h" |
12 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 12 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
13 #include "chrome/test/base/ui_test_utils.h" | 13 #include "chrome/test/base/ui_test_utils.h" |
| 14 #include "content/public/browser/page_navigator.h" |
| 15 #include "content/public/browser/web_contents.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
| 17 #include "ui/base/window_open_disposition.h" |
15 | 18 |
16 MockTabModalConfirmDialogDelegate::MockTabModalConfirmDialogDelegate( | 19 MockTabModalConfirmDialogDelegate::MockTabModalConfirmDialogDelegate( |
17 content::WebContents* web_contents, | 20 content::WebContents* web_contents, |
18 Delegate* delegate) | 21 Delegate* delegate) |
19 : TabModalConfirmDialogDelegate(web_contents), | 22 : TabModalConfirmDialogDelegate(web_contents), |
20 delegate_(delegate) { | 23 delegate_(delegate) { |
21 } | 24 } |
22 | 25 |
23 MockTabModalConfirmDialogDelegate::~MockTabModalConfirmDialogDelegate() { | 26 MockTabModalConfirmDialogDelegate::~MockTabModalConfirmDialogDelegate() { |
24 } | 27 } |
25 | 28 |
26 string16 MockTabModalConfirmDialogDelegate::GetTitle() { | 29 string16 MockTabModalConfirmDialogDelegate::GetTitle() { |
27 return string16(); | 30 return string16(); |
28 } | 31 } |
29 | 32 |
30 string16 MockTabModalConfirmDialogDelegate::GetMessage() { | 33 string16 MockTabModalConfirmDialogDelegate::GetMessage() { |
31 return string16(); | 34 return string16(); |
32 } | 35 } |
33 | 36 |
34 void MockTabModalConfirmDialogDelegate::OnAccepted() { | 37 void MockTabModalConfirmDialogDelegate::OnAccepted() { |
35 if (delegate_) | 38 if (delegate_) |
36 delegate_->OnAccepted(); | 39 delegate_->OnAccepted(); |
37 } | 40 } |
38 | 41 |
39 void MockTabModalConfirmDialogDelegate::OnCanceled() { | 42 void MockTabModalConfirmDialogDelegate::OnCanceled() { |
40 if (delegate_) | 43 if (delegate_) |
41 delegate_->OnCanceled(); | 44 delegate_->OnCanceled(); |
42 } | 45 } |
43 | 46 |
| 47 void MockTabModalConfirmDialogDelegate::OnClosed() { |
| 48 if (delegate_) |
| 49 delegate_->OnClosed(); |
| 50 } |
| 51 |
44 TabModalConfirmDialogTest::TabModalConfirmDialogTest() | 52 TabModalConfirmDialogTest::TabModalConfirmDialogTest() |
45 : delegate_(NULL), | 53 : delegate_(NULL), |
46 dialog_(NULL), | 54 dialog_(NULL), |
47 accepted_count_(0), | 55 accepted_count_(0), |
48 canceled_count_(0) { | 56 canceled_count_(0), |
| 57 closed_count_(0) { |
49 } | 58 } |
50 | 59 |
51 void TabModalConfirmDialogTest::SetUpOnMainThread() { | 60 void TabModalConfirmDialogTest::SetUpOnMainThread() { |
52 delegate_ = new MockTabModalConfirmDialogDelegate( | 61 delegate_ = new MockTabModalConfirmDialogDelegate( |
53 browser()->tab_strip_model()->GetActiveWebContents(), this); | 62 browser()->tab_strip_model()->GetActiveWebContents(), this); |
54 dialog_ = TabModalConfirmDialog::Create( | 63 dialog_ = TabModalConfirmDialog::Create( |
55 delegate_, browser()->tab_strip_model()->GetActiveWebContents()); | 64 delegate_, browser()->tab_strip_model()->GetActiveWebContents()); |
56 content::RunAllPendingInMessageLoop(); | 65 content::RunAllPendingInMessageLoop(); |
57 } | 66 } |
58 | 67 |
59 void TabModalConfirmDialogTest::CleanUpOnMainThread() { | 68 void TabModalConfirmDialogTest::CleanUpOnMainThread() { |
60 content::RunAllPendingInMessageLoop(); | 69 content::RunAllPendingInMessageLoop(); |
61 } | 70 } |
62 | 71 |
63 void TabModalConfirmDialogTest::OnAccepted() { | 72 void TabModalConfirmDialogTest::OnAccepted() { |
64 ++accepted_count_; | 73 ++accepted_count_; |
65 } | 74 } |
66 | 75 |
67 void TabModalConfirmDialogTest::OnCanceled() { | 76 void TabModalConfirmDialogTest::OnCanceled() { |
68 ++canceled_count_; | 77 ++canceled_count_; |
69 } | 78 } |
70 | 79 |
| 80 void TabModalConfirmDialogTest::OnClosed() { |
| 81 ++closed_count_; |
| 82 } |
| 83 |
71 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Accept) { | 84 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Accept) { |
72 dialog_->AcceptTabModalDialog(); | 85 dialog_->AcceptTabModalDialog(); |
73 EXPECT_EQ(1, accepted_count_); | 86 EXPECT_EQ(1, accepted_count_); |
74 EXPECT_EQ(0, canceled_count_); | 87 EXPECT_EQ(0, canceled_count_); |
| 88 EXPECT_EQ(0, closed_count_); |
75 } | 89 } |
76 | 90 |
77 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Cancel) { | 91 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Cancel) { |
78 dialog_->CancelTabModalDialog(); | 92 dialog_->CancelTabModalDialog(); |
79 EXPECT_EQ(0, accepted_count_); | 93 EXPECT_EQ(0, accepted_count_); |
80 EXPECT_EQ(1, canceled_count_); | 94 EXPECT_EQ(1, canceled_count_); |
| 95 EXPECT_EQ(0, closed_count_); |
81 } | 96 } |
82 | 97 |
83 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, CancelSelf) { | 98 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, CancelSelf) { |
84 delegate_->Cancel(); | 99 delegate_->Cancel(); |
85 EXPECT_EQ(0, accepted_count_); | 100 EXPECT_EQ(0, accepted_count_); |
86 EXPECT_EQ(1, canceled_count_); | 101 EXPECT_EQ(1, canceled_count_); |
| 102 EXPECT_EQ(0, closed_count_); |
| 103 } |
| 104 |
| 105 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Close) { |
| 106 dialog_->CloseDialog(); |
| 107 EXPECT_EQ(0, accepted_count_); |
| 108 EXPECT_EQ(0, canceled_count_); |
| 109 EXPECT_EQ(1, closed_count_); |
| 110 } |
| 111 |
| 112 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, CloseSelf) { |
| 113 delegate_->Close(); |
| 114 EXPECT_EQ(0, accepted_count_); |
| 115 EXPECT_EQ(0, canceled_count_); |
| 116 EXPECT_EQ(1, closed_count_); |
| 117 } |
| 118 |
| 119 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Navigate) { |
| 120 content::OpenURLParams params(GURL("about:blank"), |
| 121 content::Referrer(), |
| 122 CURRENT_TAB, |
| 123 content::PAGE_TRANSITION_LINK, |
| 124 false); |
| 125 browser()->tab_strip_model()->GetActiveWebContents()->OpenURL(params); |
| 126 |
| 127 EXPECT_EQ(0, accepted_count_); |
| 128 EXPECT_EQ(0, canceled_count_); |
| 129 EXPECT_EQ(1, closed_count_); |
87 } | 130 } |
88 | 131 |
89 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Quit) { | 132 IN_PROC_BROWSER_TEST_F(TabModalConfirmDialogTest, Quit) { |
90 base::MessageLoopForUI::current()->PostTask(FROM_HERE, | 133 base::MessageLoopForUI::current()->PostTask(FROM_HERE, |
91 base::Bind(&chrome::AttemptExit)); | 134 base::Bind(&chrome::AttemptExit)); |
92 content::RunMessageLoop(); | 135 content::RunMessageLoop(); |
93 EXPECT_EQ(0, accepted_count_); | 136 EXPECT_EQ(0, accepted_count_); |
94 EXPECT_EQ(1, canceled_count_); | 137 EXPECT_EQ(0, canceled_count_); |
| 138 EXPECT_EQ(1, closed_count_); |
95 } | 139 } |
OLD | NEW |