Chromium Code Reviews| Index: ui/display/fake_display_snapshot_unittests.cc |
| diff --git a/ui/display/fake_display_snapshot_unittests.cc b/ui/display/fake_display_snapshot_unittests.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bdf16e19268a82d78a25bf6aef3903200d1860ea |
| --- /dev/null |
| +++ b/ui/display/fake_display_snapshot_unittests.cc |
| @@ -0,0 +1,114 @@ |
| +// 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 "base/macros.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/display/fake_display_snapshot.h" |
| +#include "ui/display/types/display_snapshot.h" |
| + |
| +namespace display { |
| + |
| +using DisplayModeList = ui::DisplaySnapshot::DisplayModeList; |
| +using DisplaySnapshotPtr = std::unique_ptr<ui::DisplaySnapshot>; |
| + |
| +TEST(FakeDisplaySnapshotTest, InvalidString) { |
| + // Bad spec string should return null. |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1024,768"); |
| + |
| + EXPECT_EQ(nullptr, display); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, SizeOnly) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1024x768"); |
| + |
| + ASSERT_EQ(1u, display->modes().size()); |
| + EXPECT_EQ(1024, display->native_mode()->size().width()); |
| + EXPECT_EQ(768, display->native_mode()->size().height()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, DefaultTypeIsUnknown) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1024x768"); |
| + |
| + ASSERT_EQ(1u, display->modes().size()); |
| + EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_UNKNOWN, display->type()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, FullNativeMode) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1024x768%120"); |
| + |
| + ASSERT_EQ(1u, display->modes().size()); |
| + EXPECT_EQ(1024, display->native_mode()->size().width()); |
| + EXPECT_EQ(768, display->native_mode()->size().height()); |
| + EXPECT_EQ(120.0f, display->native_mode()->refresh_rate()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, FullNativeModeWithDPI) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1000x1000%120^300"); |
| + |
| + ASSERT_EQ(1u, display->modes().size()); |
| + EXPECT_EQ(1000, display->native_mode()->size().width()); |
| + EXPECT_EQ(1000, display->native_mode()->size().height()); |
| + EXPECT_EQ(120.0f, display->native_mode()->refresh_rate()); |
| + EXPECT_EQ(85, display->physical_size().width()); |
| + EXPECT_EQ(85, display->physical_size().height()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, InternalDisplayWithSize) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1600x900/i"); |
| + |
| + ASSERT_EQ(1u, display->modes().size()); |
| + EXPECT_EQ(1600, display->native_mode()->size().width()); |
| + EXPECT_EQ(900, display->native_mode()->size().height()); |
| + EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, MultipleOptions) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1600x900/aci"); |
| + |
| + EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); |
| + EXPECT_TRUE(display->has_color_correction_matrix()); |
| + EXPECT_TRUE(display->is_aspect_preserving_scaling()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, AlternateResolutions) { |
| + DisplaySnapshotPtr display = |
| + FakeDisplaySnapshot::CreateFromSpec(1, "1920x1080#1600x900:1280x720/i"); |
| + const DisplayModeList& modes = display->modes(); |
| + |
| + ASSERT_EQ(3u, modes.size()); |
| + EXPECT_EQ(1920, modes[0]->size().width()); |
| + EXPECT_EQ(1080, modes[0]->size().height()); |
| + EXPECT_EQ(1600, modes[1]->size().width()); |
| + EXPECT_EQ(900, modes[1]->size().height()); |
| + EXPECT_EQ(1280, modes[2]->size().width()); |
| + EXPECT_EQ(720, modes[2]->size().height()); |
| + EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); |
| +} |
| + |
| +TEST(FakeDisplaySnapshotTest, AlternateResolutionsWithRefreshRates) { |
| + DisplaySnapshotPtr display = FakeDisplaySnapshot::CreateFromSpec( |
| + 1, "1920x1080%59.99#1600x900%90:1280x720%120/i"); |
| + const DisplayModeList& modes = display->modes(); |
| + |
| + ASSERT_EQ(3u, display->modes().size()); |
| + EXPECT_EQ(1920, modes[0]->size().width()); |
| + EXPECT_EQ(1080, modes[0]->size().height()); |
| + EXPECT_EQ(59.99f, modes[0]->refresh_rate()); |
| + EXPECT_EQ(1600, modes[1]->size().width()); |
| + EXPECT_EQ(900, modes[1]->size().height()); |
| + EXPECT_EQ(90.0f, modes[1]->refresh_rate()); |
| + EXPECT_EQ(1280, modes[2]->size().width()); |
| + EXPECT_EQ(720, modes[2]->size().height()); |
| + EXPECT_EQ(120.0f, modes[2]->refresh_rate()); |
| + EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); |
| +} |
| + |
|
Daniel Erat
2016/10/05 21:09:46
maybe also test that you return null if things are
kylechar
2016/10/07 16:14:43
Hmm, that's actually brings up a good point and th
|
| +} // namespace display |