Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Unified Diff: ui/views/window/dialog_delegate_unittest.cc

Issue 21967002: UpdateWindowTitle before SetInitialBounds in Widget::Init. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add a comment and a dialog unit test. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/widget/widget.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/window/dialog_delegate_unittest.cc
diff --git a/ui/views/window/dialog_delegate_unittest.cc b/ui/views/window/dialog_delegate_unittest.cc
index d7471e7972face2c652bfc7eb4eb2482d6ac21b6..ba891f4305578d059f0e8303b8bdb15878429cda 100644
--- a/ui/views/window/dialog_delegate_unittest.cc
+++ b/ui/views/window/dialog_delegate_unittest.cc
@@ -37,8 +37,9 @@ class TestDialog : public DialogDelegateView, public ButtonListener {
return closeable_;
}
- // View override:
+ // DialogDelegateView overrides:
virtual gfx::Size GetPreferredSize() OVERRIDE { return gfx::Size(200, 200); }
+ virtual string16 GetWindowTitle() const OVERRIDE { return title_; }
// ButtonListener override:
virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE {
@@ -73,12 +74,15 @@ class TestDialog : public DialogDelegateView, public ButtonListener {
GetWidget()->Close();
}
+ void set_title(const string16& title) { title_ = title; }
+
private:
bool canceled_;
bool accepted_;
// Prevent the dialog from closing, for repeated ok and cancel button clicks.
bool closeable_;
Button* last_pressed_button_;
+ string16 title_;
DISALLOW_COPY_AND_ASSIGN(TestDialog);
};
@@ -200,31 +204,51 @@ TEST_F(DialogTest, RemoveDefaultButton) {
}
TEST_F(DialogTest, HitTest) {
- const NonClientView* view = dialog()->GetWidget()->non_client_view();
+ if (!DialogDelegate::UseNewStyle())
+ return;
- if (DialogDelegate::UseNewStyle()) {
- // Ensure that the new style's BubbleFrameView hit-tests as expected.
- BubbleFrameView* frame = static_cast<BubbleFrameView*>(view->frame_view());
- const int border = frame->bubble_border()->GetBorderThickness();
-
- struct {
- const int point;
- const int hit;
- } cases[] = {
- { border, HTSYSMENU },
- { border + 10, HTSYSMENU },
- { border + 20, HTCAPTION },
- { border + 40, HTCLIENT },
- { border + 50, HTCLIENT },
- { 1000, HTNOWHERE },
- };
-
- for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
- gfx::Point point(cases[i].point, cases[i].point);
- EXPECT_EQ(cases[i].hit, frame->NonClientHitTest(point))
- << " with border: " << border << ", at point " << cases[i].point;
- }
+ // Ensure that the new style's BubbleFrameView hit-tests as expected.
+ const NonClientView* view = dialog()->GetWidget()->non_client_view();
+ BubbleFrameView* frame = static_cast<BubbleFrameView*>(view->frame_view());
+ const int border = frame->bubble_border()->GetBorderThickness();
+
+ struct {
+ const int point;
+ const int hit;
+ } cases[] = {
+ { border, HTSYSMENU },
+ { border + 10, HTSYSMENU },
+ { border + 20, HTCAPTION },
+ { border + 40, HTCLIENT },
+ { border + 50, HTCLIENT },
+ { 1000, HTNOWHERE },
+ };
+
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
+ gfx::Point point(cases[i].point, cases[i].point);
+ EXPECT_EQ(cases[i].hit, frame->NonClientHitTest(point))
+ << " with border: " << border << ", at point " << cases[i].point;
}
}
+TEST_F(DialogTest, InitialBoundsAccommodateTitle) {
+ if (!DialogDelegate::UseNewStyle())
+ return;
+
+ TestDialog* titled_dialog(new TestDialog());
+ titled_dialog->set_title(ASCIIToUTF16("Title"));
+ DialogDelegate::CreateDialogWidget(titled_dialog, GetContext(), NULL);
+
+ // Titled dialogs have taller initial frame bounds than untitled dialogs.
+ EXPECT_GT(titled_dialog->GetWidget()->GetWindowBoundsInScreen().height(),
+ dialog()->GetWidget()->GetWindowBoundsInScreen().height());
+
+ // Giving the default test dialog a title will make the bounds the same.
+ dialog()->set_title(ASCIIToUTF16("Title"));
+ dialog()->GetWidget()->UpdateWindowTitle();
+ View* frame = dialog()->GetWidget()->non_client_view()->frame_view();
+ EXPECT_EQ(titled_dialog->GetWidget()->GetWindowBoundsInScreen().height(),
+ frame->GetPreferredSize().height());
+}
+
} // namespace views
« no previous file with comments | « ui/views/widget/widget.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698