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