blob: da47fd8b4bce8bcec294fd4dbf2aac7f591f1678 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chromecast/graphics/cast_screen.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "ui/aura/test/aura_test_base.h"
#include "ui/display/display_observer.h"
using testing::_;
using testing::AllOf;
using testing::Property;
namespace chromecast {
namespace test {
namespace {
constexpr int64_t kMockDisplayId = 0xcafebabe;
}
using CastScreenTest = aura::test::AuraTestBase;
class MockDisplayObserver : public display::DisplayObserver {
public:
MOCK_METHOD2(OnDisplayMetricsChanged,
void(const display::Display& display, uint32_t changed_metrics));
};
TEST_F(CastScreenTest, OverrideAndRestore) {
MockDisplayObserver mock_display_observer;
CastScreen screen;
// Set up initial screen.
screen.OnDisplayChanged(kMockDisplayId, 1.0,
display::Display::Rotation::ROTATE_0,
gfx::Rect(0, 0, 1920, 1080));
EXPECT_CALL(mock_display_observer,
OnDisplayMetricsChanged(
AllOf(Property(&display::Display::id, kMockDisplayId),
Property(&display::Display::device_scale_factor, 2.2),
Property(&display::Display::rotation,
display::Display::Rotation::ROTATE_270)),
_));
EXPECT_CALL(mock_display_observer,
OnDisplayMetricsChanged(
AllOf(Property(&display::Display::id, kMockDisplayId),
Property(&display::Display::device_scale_factor, 1.0),
Property(&display::Display::rotation,
display::Display::Rotation::ROTATE_0)),
_));
screen.AddObserver(&mock_display_observer);
screen.OverridePrimaryDisplaySettings(gfx::Rect(0, 0, 1000, 1000), 2.2,
display::Display::Rotation::ROTATE_270);
screen.RestorePrimaryDisplaySettings();
}
} // namespace test
} // namespace chromecast