1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/system/keyboard_brightness/unified_keyboard_brightness_slider_controller.h"
#include "ash/system/unified/unified_system_tray.h"
#include "ash/test/ash_test_base.h"
#include "ui/views/controls/slider.h"
namespace ash {
class UnifiedKeyboardBrightnessSliderControllerTest : public AshTestBase {
public:
UnifiedKeyboardBrightnessSliderControllerTest() = default;
UnifiedKeyboardBrightnessSliderControllerTest(
const UnifiedKeyboardBrightnessSliderControllerTest&) = delete;
UnifiedKeyboardBrightnessSliderControllerTest& operator=(
const UnifiedKeyboardBrightnessSliderControllerTest&) = delete;
~UnifiedKeyboardBrightnessSliderControllerTest() override = default;
void SetUp() override {
AshTestBase::SetUp();
controller_ = std::make_unique<UnifiedKeyboardBrightnessSliderController>(
GetPrimaryUnifiedSystemTray()->model().get());
keyboard_brightness_slider_ = controller_->CreateView();
widget_ = CreateFramelessTestWidget();
widget_->SetFullscreen(true);
widget_->SetContentsView(keyboard_brightness_slider_.get());
}
void TearDown() override {
keyboard_brightness_slider_.reset();
controller_.reset();
widget_.reset();
AshTestBase::TearDown();
}
UnifiedSliderView* unified_keyboard_brightness_slider() {
return keyboard_brightness_slider_.get();
}
views::Slider* slider() { return keyboard_brightness_slider_->slider(); }
private:
std::unique_ptr<views::Widget> widget_;
std::unique_ptr<UnifiedKeyboardBrightnessSliderController> controller_ =
nullptr;
std::unique_ptr<UnifiedSliderView> keyboard_brightness_slider_ = nullptr;
};
// Tests to ensure that the `slider_button` does not handle any events,
// letting them get through to the slider. Effectively the `slider_button` is
// part of the slider in the keyboard brightness view.
TEST_F(UnifiedKeyboardBrightnessSliderControllerTest,
SliderButtonClickThrough) {
slider()->SetValue(1.0);
EXPECT_FLOAT_EQ(slider()->GetValue(), 1.0);
// A click on the `slider_button` for `unified_keyboard_brightness_slider()`
// should go through to the slider and change the value to the minimum.
LeftClickOn(unified_keyboard_brightness_slider()->slider_button());
EXPECT_FLOAT_EQ(slider()->GetValue(), 0.0);
}
} // namespace ash
|