tray_brightness_unittest.cc revision a02191e04bc25c4935f804f2c080ae28663d096d
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"
11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch#include "ash/test/status_area_widget_test_helper.h"
1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "ui/views/view.h"
1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace ash {
1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)class TrayBrightnessTest : public test::AshTestBase {
1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) public:
1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  TrayBrightnessTest() {}
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  virtual ~TrayBrightnessTest() {}
2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) protected:
2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  views::View* CreateDefaultView() {
2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    TrayBrightness tray(NULL);
24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    return tray.CreateDefaultView(
25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch        StatusAreaWidgetTestHelper::GetUserLoginStatus());
2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  }
2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  views::View* CreateDetailedView() {
2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)    TrayBrightness tray(NULL);
30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    return tray.CreateDetailedView(
31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch        StatusAreaWidgetTestHelper::GetUserLoginStatus());
3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  }
3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) private:
3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(TrayBrightnessTest);
3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)};
3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the default view is initially created, that its
3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is created not visible.
4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDefaultView) {
4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDefaultView());
4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_FALSE(tray->visible());
4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests the construction of the default view while MaximizeMode is active.
4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// The BrightnessView should be visible.
4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDefaultViewDuringMaximizeMode) {
4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDefaultView());
5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that the enabling of MaximizeMode affects a previously created
5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView, changing the visibility.
5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, DefaultViewVisibilityChangesDuringMaximizeMode) {
5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDefaultView());
5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_FALSE(tray->visible());
6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the detailed view is initially created that its
6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is created as visible.
6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDetailedView) {
6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDetailedView());
6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that when the detailed view is created during MaximizeMode that its
7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// BrightnessView is visible.
7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, CreateDetailedViewDuringMaximizeMode) {
7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDetailedView());
7723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
7823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
7923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Tests that the enabling of MaximizeMode has no affect on the visibility of a
8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// previously created BrightnessView that belongs to a detailed view.
8323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)TEST_F(TrayBrightnessTest, DetailedViewVisibilityChangesDuringMaximizeMode) {
8423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  scoped_ptr<views::View> tray(CreateDetailedView());
8523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(true);
8623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
8723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  Shell::GetInstance()->EnableMaximizeModeWindowManager(false);
8823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  EXPECT_TRUE(tray->visible());
8923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}
9023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
9123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)}  // namespace ash
9223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)
93