tray_brightness_unittest.cc revision 23730a6e56a168d1879203e4b3819bb36e3d8f1f
123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ash/system/chromeos/brightness/tray_brightness.h" 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ash/shell.h" 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ash/system/tray/system_tray_delegate.h" 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ash/system/tray/system_tray_item.h" 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ash/test/ash_test_base.h" 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ui/views/view.h" 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ash { 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace { 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)user::LoginStatus GetUserLoginStatus() { 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return Shell::GetInstance()->system_tray_delegate()->GetUserLoginStatus(); 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace internal { 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class TrayBrightnessTest : public test::AshTestBase { 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) public: 2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) TrayBrightnessTest() {} 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) virtual ~TrayBrightnessTest() {} 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) protected: 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) views::View* CreateDefaultView() { 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) TrayBrightness tray(NULL); 3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return tray.CreateDefaultView(GetUserLoginStatus()); 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) views::View* CreateDetailedView() { 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) TrayBrightness tray(NULL); 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return tray.CreateDetailedView(GetUserLoginStatus()); 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) private: 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(TrayBrightnessTest); 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}; 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the default view is initially created, that its 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is created not visible. 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDefaultView) { 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDefaultView()); 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_FALSE(tray->visible()); 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests the construction of the default view while MaximizeMode is active. 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// The BrightnessView should be visible. 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDefaultViewDuringMaximizeMode) { 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(true); 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDefaultView()); 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(false); 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that the enabling of MaximizeMode affects a previously created 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView, changing the visibility. 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, DefaultViewVisibilityChangesDuringMaximizeMode) { 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDefaultView()); 6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(true); 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(false); 6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_FALSE(tray->visible()); 6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the detailed view is initially created that its 7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is created as visible. 7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDetailedView) { 7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDetailedView()); 7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 7723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the detailed view is created during MaximizeMode that its 8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is visible. 8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDetailedViewDuringMaximizeMode) { 8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(true); 8323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDetailedView()); 8423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 8523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(false); 8623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 8723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 8823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that the enabling of MaximizeMode has no affect on the visibility of a 8923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// previously created BrightnessView that belongs to a detailed view. 9023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, DetailedViewVisibilityChangesDuringMaximizeMode) { 9123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) scoped_ptr<views::View> tray(CreateDetailedView()); 9223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(true); 9323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 9423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) Shell::GetInstance()->EnableMaximizeModeWindowManager(false); 9523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) EXPECT_TRUE(tray->visible()); 9623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 9723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 9823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace internal 9923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 10023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace ash 10123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 102