blob: 678271fd18cae610dc10e9d1ce4bea41fd3cdf9f [file] [log] [blame]
// Copyright 2014 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 "extensions/shell/browser/shell_screen.h"
#include <memory>
#include "extensions/shell/test/shell_test_base_aura.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/aura/window.h"
#include "ui/aura/window_tree_host.h"
#include "ui/display/display.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
#include "ui/platform_window/platform_window_init_properties.h"
namespace extensions {
using ShellScreenTest = ShellTestBaseAura;
// Basic sanity tests for ShellScreen.
TEST_F(ShellScreenTest, ShellScreen) {
ShellScreen screen(nullptr, gfx::Size(640, 480));
// There is only one display.
EXPECT_EQ(1, screen.GetNumDisplays());
EXPECT_EQ(1u, screen.GetAllDisplays().size());
EXPECT_EQ(0, screen.GetAllDisplays()[0].id());
EXPECT_EQ(0, screen.GetPrimaryDisplay().id());
EXPECT_EQ("640x480", screen.GetPrimaryDisplay().size().ToString());
// Tests that reshaping the host window reshapes the display.
std::unique_ptr<aura::WindowTreeHost> host =
aura::WindowTreeHost::Create(ui::PlatformWindowInitProperties{
gfx::Rect(screen.GetPrimaryDisplay().GetSizeInPixel())});
host->AddObserver(&screen);
host->InitHost();
EXPECT_TRUE(host->window());
host->SetBoundsInPixels(gfx::Rect(0, 0, 800, 600));
EXPECT_EQ("800x600", screen.GetPrimaryDisplay().size().ToString());
host->RemoveObserver(&screen);
}
} // namespace extensions