diff options
Diffstat (limited to 'chromium/ash/system/date/date_view_unittest.cc')
-rw-r--r-- | chromium/ash/system/date/date_view_unittest.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/chromium/ash/system/date/date_view_unittest.cc b/chromium/ash/system/date/date_view_unittest.cc new file mode 100644 index 00000000000..931d220694e --- /dev/null +++ b/chromium/ash/system/date/date_view_unittest.cc @@ -0,0 +1,66 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/system/date/date_view.h" + +#include "ash/test/ash_test_base.h" +#include "ui/views/controls/label.h" + +namespace ash { +namespace internal { +namespace tray { + +class TimeViewTest : public ash::test::AshTestBase { + public: + TimeViewTest() {} + virtual ~TimeViewTest() {} + + TimeView* time_view() { return time_view_.get(); } + + // Access to private fields of |time_view_|. + views::Label* horizontal_label() { + return time_view_->horizontal_label_.get(); + } + views::Label* vertical_label_hours() { + return time_view_->vertical_label_hours_.get(); + } + views::Label* vertical_label_minutes() { + return time_view_->vertical_label_minutes_.get(); + } + + // Creates a time view with horizontal or vertical |clock_layout|. + void CreateTimeView(TrayDate::ClockLayout clock_layout) { + time_view_.reset(new TimeView(clock_layout)); + } + + private: + scoped_ptr<TimeView> time_view_; + + DISALLOW_COPY_AND_ASSIGN(TimeViewTest); +}; + +// Test the basics of the time view, mostly to ensure we don't leak memory. +TEST_F(TimeViewTest, Basics) { + // A newly created horizontal clock only has the horizontal label. + CreateTimeView(TrayDate::HORIZONTAL_CLOCK); + EXPECT_EQ(time_view(), horizontal_label()->parent()); + EXPECT_FALSE(vertical_label_hours()->parent()); + EXPECT_FALSE(vertical_label_minutes()->parent()); + + // Switching the clock to vertical updates the labels. + time_view()->UpdateClockLayout(TrayDate::VERTICAL_CLOCK); + EXPECT_FALSE(horizontal_label()->parent()); + EXPECT_EQ(time_view(), vertical_label_hours()->parent()); + EXPECT_EQ(time_view(), vertical_label_minutes()->parent()); + + // Switching back to horizontal updates the labels again. + time_view()->UpdateClockLayout(TrayDate::HORIZONTAL_CLOCK); + EXPECT_EQ(time_view(), horizontal_label()->parent()); + EXPECT_FALSE(vertical_label_hours()->parent()); + EXPECT_FALSE(vertical_label_minutes()->parent()); +} + +} // namespace tray +} // namespace internal +} // namespace ash |