1fcdc6a7d2488defd66bc7e8398c6d8c9a6190a1aKristian Høgsberg// Copyright 2013 The Chromium Authors. All rights reserved. 21b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes// Use of this source code is governed by a BSD-style license that can be 31b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes// found in the LICENSE file. 41b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 55c31f8678b7ad10145c434c00461115449a357e0Brian Paul#include "ash/system/date/date_view.h" 61b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 75c31f8678b7ad10145c434c00461115449a357e0Brian Paul#include "ash/test/ash_test_base.h" 81b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes#include "ui/views/controls/label.h" 91b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 101b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughesnamespace ash { 111b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughesnamespace tray { 121b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 131b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughesclass TimeViewTest : public ash::test::AshTestBase { 141b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes public: 151b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes TimeViewTest() {} 161b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes virtual ~TimeViewTest() {} 171b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 181b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes TimeView* time_view() { return time_view_.get(); } 191b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 201b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes // Access to private fields of |time_view_|. 211b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes views::Label* horizontal_label() { 221b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes return time_view_->horizontal_label_.get(); 231b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes } 241b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes views::Label* vertical_label_hours() { 251b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes return time_view_->vertical_label_hours_.get(); 261b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes } 271b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes views::Label* vertical_label_minutes() { 281b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes return time_view_->vertical_label_minutes_.get(); 291b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes } 301b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 31462183fe4cb6df6d90632d9e2cee881c8d26b1cbAlan Hourihane // Creates a time view with horizontal or vertical |clock_layout|. 32462183fe4cb6df6d90632d9e2cee881c8d26b1cbAlan Hourihane void CreateTimeView(TrayDate::ClockLayout clock_layout) { 331b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes time_view_.reset(new TimeView(clock_layout)); 341b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes } 351b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 361b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes private: 371b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes scoped_ptr<TimeView> time_view_; 381b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 391b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes DISALLOW_COPY_AND_ASSIGN(TimeViewTest); 401b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes}; 411b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 421b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes// Test the basics of the time view, mostly to ensure we don't leak memory. 431b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth HughesTEST_F(TimeViewTest, Basics) { 44932dee87e3002be87dc3bcc49efd8ac9ac3e1fa4Brian Paul // A newly created horizontal clock only has the horizontal label. 451b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes CreateTimeView(TrayDate::HORIZONTAL_CLOCK); 461b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_EQ(time_view(), horizontal_label()->parent()); 47caa5f7e75ecdbfa8bae03acfb9369a77baa7833eAlan Hourihane EXPECT_FALSE(vertical_label_hours()->parent()); 481b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_FALSE(vertical_label_minutes()->parent()); 491b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 501b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes // Switching the clock to vertical updates the labels. 511b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes time_view()->UpdateClockLayout(TrayDate::VERTICAL_CLOCK); 521b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_FALSE(horizontal_label()->parent()); 531b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_EQ(time_view(), vertical_label_hours()->parent()); 541b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_EQ(time_view(), vertical_label_minutes()->parent()); 551b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 56854b4a3b5456e0a381df49de854fdb315899dfc2Daniel Borca // Switching back to horizontal updates the labels again. 57854b4a3b5456e0a381df49de854fdb315899dfc2Daniel Borca time_view()->UpdateClockLayout(TrayDate::HORIZONTAL_CLOCK); 58854b4a3b5456e0a381df49de854fdb315899dfc2Daniel Borca EXPECT_EQ(time_view(), horizontal_label()->parent()); 59854b4a3b5456e0a381df49de854fdb315899dfc2Daniel Borca EXPECT_FALSE(vertical_label_hours()->parent()); 601b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes EXPECT_FALSE(vertical_label_minutes()->parent()); 611b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes} 621b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes 631b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes} // namespace tray 641b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes} // namespace ash 651b2fef5c28a40cd001598071e25b876ad4fccdd1Gareth Hughes