| Index: ui/views/widget/desktop_aura/desktop_screen_unittest.cc
|
| diff --git a/ui/views/widget/desktop_aura/desktop_screen_unittest.cc b/ui/views/widget/desktop_aura/desktop_screen_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ee2ff04294ed3540656c3a6e7ff7bf4af8023bd5
|
| --- /dev/null
|
| +++ b/ui/views/widget/desktop_aura/desktop_screen_unittest.cc
|
| @@ -0,0 +1,80 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "ui/views/widget/desktop_aura/desktop_screen.h"
|
| +
|
| +#include "ui/aura/window.h"
|
| +#include "ui/compositor/layer.h"
|
| +#include "ui/compositor/layer_delegate.h"
|
| +#include "ui/display/screen.h"
|
| +#include "ui/views/test/views_test_base.h"
|
| +#include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h"
|
| +#include "ui/views/widget/widget.h"
|
| +
|
| +namespace views {
|
| +
|
| +class DesktopScreenTest : public ViewsTestBase {
|
| + public:
|
| + DesktopScreenTest() {}
|
| + ~DesktopScreenTest() override {}
|
| +
|
| + // VIewsTestBase::
|
| + void SetUp() override {
|
| + display::Screen::SetScreenInstance(views::CreateDesktopScreen());
|
| + ViewsTestBase::SetUp();
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DesktopScreenTest);
|
| +};
|
| +
|
| +namespace {
|
| +class TestLayerDelegate : public ui::LayerDelegate {
|
| + public:
|
| + TestLayerDelegate() {}
|
| + ~TestLayerDelegate() override {}
|
| +
|
| + // ui::LayerDelegate:
|
| + void OnPaintLayer(const ui::PaintContext& context) override {}
|
| + void OnDelegatedFrameDamage(const gfx::Rect& damage_rect_in_dip) override {}
|
| + void OnDeviceScaleFactorChanged(float device_scale_factor) override {
|
| + changed_device_scale_factor_ = device_scale_factor;
|
| + }
|
| + base::Closure PrepareForLayerBoundsChange() override {
|
| + return base::Closure();
|
| + }
|
| +
|
| + float changed_device_scale_factor() const {
|
| + return changed_device_scale_factor_;
|
| + }
|
| +
|
| + private:
|
| + float changed_device_scale_factor_ = 0.0;
|
| + DISALLOW_COPY_AND_ASSIGN(TestLayerDelegate);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| +TEST_F(DesktopScreenTest, SetDeviceScaleFactorForTest) {
|
| + Widget widget;
|
| + Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_WINDOW);
|
| + params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| + params.native_widget = new DesktopNativeWidgetAura(&widget);
|
| + params.bounds = gfx::Rect(200, 100);
|
| + widget.Init(params);
|
| + widget.Show();
|
| + ui::Layer* widget_layer = widget.GetNativeWindow()->layer();
|
| + EXPECT_EQ(1.0f, widget_layer->GetCompositor()->device_scale_factor());
|
| +
|
| + TestLayerDelegate delegate;
|
| + ui::Layer layer;
|
| + layer.set_delegate(&delegate);
|
| + widget_layer->Add(&layer);
|
| +
|
| + display::Screen::GetScreen()->SetDeviceScaleFactorForTest(2.0);
|
| + EXPECT_EQ(2.0f, widget_layer->GetCompositor()->device_scale_factor());
|
| + EXPECT_EQ(2.0f, delegate.changed_device_scale_factor());
|
| +}
|
| +
|
| +} // namespace views
|
|
|