OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/macros.h" | |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 #include "ui/display/fake_display_snapshot.h" | |
8 #include "ui/display/types/display_snapshot.h" | |
9 | |
10 namespace display { | |
11 | |
12 using DisplayModeList = ui::DisplaySnapshot::DisplayModeList; | |
13 using DisplaySnapshotPtr = std::unique_ptr<ui::DisplaySnapshot>; | |
14 | |
15 TEST(FakeDisplaySnapshotTest, InvalidString) { | |
16 // Bad spec string should return null. | |
17 DisplaySnapshotPtr display = | |
18 FakeDisplaySnapshot::CreateFromSpec(1, "1024,768"); | |
19 | |
20 EXPECT_EQ(nullptr, display); | |
21 } | |
22 | |
23 TEST(FakeDisplaySnapshotTest, SizeOnly) { | |
24 DisplaySnapshotPtr display = | |
25 FakeDisplaySnapshot::CreateFromSpec(1, "1024x768"); | |
26 | |
27 ASSERT_EQ(1u, display->modes().size()); | |
28 EXPECT_EQ(1024, display->native_mode()->size().width()); | |
29 EXPECT_EQ(768, display->native_mode()->size().height()); | |
30 } | |
31 | |
32 TEST(FakeDisplaySnapshotTest, DefaultTypeIsUnknown) { | |
33 DisplaySnapshotPtr display = | |
34 FakeDisplaySnapshot::CreateFromSpec(1, "1024x768"); | |
35 | |
36 ASSERT_EQ(1u, display->modes().size()); | |
37 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_UNKNOWN, display->type()); | |
38 } | |
39 | |
40 TEST(FakeDisplaySnapshotTest, FullNativeMode) { | |
41 DisplaySnapshotPtr display = | |
42 FakeDisplaySnapshot::CreateFromSpec(1, "1024x768%120"); | |
43 | |
44 ASSERT_EQ(1u, display->modes().size()); | |
45 EXPECT_EQ(1024, display->native_mode()->size().width()); | |
46 EXPECT_EQ(768, display->native_mode()->size().height()); | |
47 EXPECT_EQ(120.0f, display->native_mode()->refresh_rate()); | |
48 } | |
49 | |
50 TEST(FakeDisplaySnapshotTest, FullNativeModeWithDPI) { | |
51 DisplaySnapshotPtr display = | |
52 FakeDisplaySnapshot::CreateFromSpec(1, "1000x1000%120^300"); | |
53 | |
54 ASSERT_EQ(1u, display->modes().size()); | |
55 EXPECT_EQ(1000, display->native_mode()->size().width()); | |
56 EXPECT_EQ(1000, display->native_mode()->size().height()); | |
57 EXPECT_EQ(120.0f, display->native_mode()->refresh_rate()); | |
58 EXPECT_EQ(85, display->physical_size().width()); | |
59 EXPECT_EQ(85, display->physical_size().height()); | |
60 } | |
61 | |
62 TEST(FakeDisplaySnapshotTest, InternalDisplayWithSize) { | |
63 DisplaySnapshotPtr display = | |
64 FakeDisplaySnapshot::CreateFromSpec(1, "1600x900/i"); | |
65 | |
66 ASSERT_EQ(1u, display->modes().size()); | |
67 EXPECT_EQ(1600, display->native_mode()->size().width()); | |
68 EXPECT_EQ(900, display->native_mode()->size().height()); | |
69 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
70 } | |
71 | |
72 TEST(FakeDisplaySnapshotTest, MultipleOptions) { | |
73 DisplaySnapshotPtr display = | |
74 FakeDisplaySnapshot::CreateFromSpec(1, "1600x900/aci"); | |
75 | |
76 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
77 EXPECT_TRUE(display->has_color_correction_matrix()); | |
78 EXPECT_TRUE(display->is_aspect_preserving_scaling()); | |
79 } | |
80 | |
81 TEST(FakeDisplaySnapshotTest, AlternateResolutions) { | |
82 DisplaySnapshotPtr display = | |
83 FakeDisplaySnapshot::CreateFromSpec(1, "1920x1080#1600x900:1280x720/i"); | |
84 const DisplayModeList& modes = display->modes(); | |
85 | |
86 ASSERT_EQ(3u, modes.size()); | |
87 EXPECT_EQ(1920, modes[0]->size().width()); | |
88 EXPECT_EQ(1080, modes[0]->size().height()); | |
89 EXPECT_EQ(1600, modes[1]->size().width()); | |
90 EXPECT_EQ(900, modes[1]->size().height()); | |
91 EXPECT_EQ(1280, modes[2]->size().width()); | |
92 EXPECT_EQ(720, modes[2]->size().height()); | |
93 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
94 } | |
95 | |
96 TEST(FakeDisplaySnapshotTest, AlternateResolutionsWithRefreshRates) { | |
97 DisplaySnapshotPtr display = FakeDisplaySnapshot::CreateFromSpec( | |
98 1, "1920x1080%59.99#1600x900%90:1280x720%120/i"); | |
99 const DisplayModeList& modes = display->modes(); | |
100 | |
101 ASSERT_EQ(3u, display->modes().size()); | |
102 EXPECT_EQ(1920, modes[0]->size().width()); | |
103 EXPECT_EQ(1080, modes[0]->size().height()); | |
104 EXPECT_EQ(59.99f, modes[0]->refresh_rate()); | |
105 EXPECT_EQ(1600, modes[1]->size().width()); | |
106 EXPECT_EQ(900, modes[1]->size().height()); | |
107 EXPECT_EQ(90.0f, modes[1]->refresh_rate()); | |
108 EXPECT_EQ(1280, modes[2]->size().width()); | |
109 EXPECT_EQ(720, modes[2]->size().height()); | |
110 EXPECT_EQ(120.0f, modes[2]->refresh_rate()); | |
111 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
112 } | |
113 | |
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
| |
114 } // namespace display | |
OLD | NEW |