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 <memory> | |
6 | |
7 #include "base/macros.h" | |
8 #include "testing/gmock/include/gmock/gmock.h" | |
9 #include "testing/gtest/include/gtest/gtest.h" | |
10 #include "ui/display/fake_display_snapshot.h" | |
tfarina
2016/10/13 13:15:42
We usually put this as the first include like we d
kylechar
2016/10/13 13:32:29
It doesn't seem to be clearly specified if that ru
| |
11 #include "ui/display/test/display_matchers.h" | |
12 #include "ui/display/types/display_snapshot.h" | |
13 | |
14 using DisplayModeList = ui::DisplaySnapshot::DisplayModeList; | |
15 using testing::SizeIs; | |
16 | |
17 namespace display { | |
18 | |
19 namespace { | |
20 | |
21 std::unique_ptr<ui::DisplaySnapshot> CreateSnapshot(const std::string& str) { | |
22 return FakeDisplaySnapshot::CreateFromSpec(1, str); | |
23 } | |
24 | |
25 } // namespace | |
26 | |
27 TEST(FakeDisplaySnapshotTest, SizeOnly) { | |
28 auto display = CreateSnapshot("1024x768"); | |
29 | |
30 ASSERT_THAT(display->modes(), SizeIs(1)); | |
31 EXPECT_THAT(*display->native_mode(), IsDisplayMode(1024, 768)); | |
32 } | |
33 | |
34 TEST(FakeDisplaySnapshotTest, DefaultTypeIsUnknown) { | |
35 auto display = CreateSnapshot("1024x768"); | |
36 | |
37 ASSERT_THAT(display->modes(), SizeIs(1)); | |
38 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_UNKNOWN, display->type()); | |
39 } | |
40 | |
41 TEST(FakeDisplaySnapshotTest, FullNativeMode) { | |
42 auto display = CreateSnapshot("1024x778%120"); | |
43 | |
44 ASSERT_THAT(display->modes(), SizeIs(1)); | |
45 EXPECT_THAT(*display->native_mode(), IsDisplayMode(1024, 768, 120.0f)); | |
46 } | |
47 | |
48 TEST(FakeDisplaySnapshotTest, FullNativeModeWithDPI) { | |
49 auto display = CreateSnapshot("1000x1000%120^300"); | |
50 | |
51 ASSERT_THAT(display->modes(), SizeIs(1)); | |
52 EXPECT_THAT(*display->native_mode(), IsDisplayMode(1000, 1000, 120.0f)); | |
53 EXPECT_EQ(85, display->physical_size().width()); | |
54 EXPECT_EQ(85, display->physical_size().height()); | |
55 } | |
56 | |
57 TEST(FakeDisplaySnapshotTest, InternalDisplayWithSize) { | |
58 auto display = CreateSnapshot("1600x900/i"); | |
59 | |
60 ASSERT_THAT(display->modes(), SizeIs(1)); | |
61 EXPECT_THAT(*display->native_mode(), IsDisplayMode(1600, 900)); | |
62 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
63 } | |
64 | |
65 TEST(FakeDisplaySnapshotTest, MultipleOptions) { | |
66 auto display = CreateSnapshot("1600x900/aci"); | |
67 | |
68 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
69 EXPECT_TRUE(display->has_color_correction_matrix()); | |
70 EXPECT_TRUE(display->is_aspect_preserving_scaling()); | |
71 } | |
72 | |
73 TEST(FakeDisplaySnapshotTest, AlternateDisplayModes) { | |
74 auto display = CreateSnapshot("1920x1080#1600x900:1280x720/i"); | |
75 const DisplayModeList& modes = display->modes(); | |
76 | |
77 ASSERT_THAT(display->modes(), SizeIs(3)); | |
78 EXPECT_THAT(*modes[0], IsDisplayMode(1920, 1080)); | |
79 EXPECT_THAT(*modes[1], IsDisplayMode(1600, 900)); | |
80 EXPECT_THAT(*modes[2], IsDisplayMode(1280, 720)); | |
81 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
82 } | |
83 | |
84 TEST(FakeDisplaySnapshotTest, ComplicatedSpecString) { | |
85 auto display = | |
86 CreateSnapshot("1920x1080%59.99#1600x900%90:1280x720%120^300/i"); | |
87 const DisplayModeList& modes = display->modes(); | |
88 | |
89 ASSERT_THAT(display->modes(), SizeIs(3)); | |
90 EXPECT_THAT(*modes[0], IsDisplayMode(1920, 1080, 59.99f)); | |
91 EXPECT_THAT(*modes[1], IsDisplayMode(1600, 900, 90.0f)); | |
92 EXPECT_THAT(*modes[2], IsDisplayMode(1280, 720, 120.0f)); | |
93 EXPECT_EQ(163, display->physical_size().width()); | |
94 EXPECT_EQ(91, display->physical_size().height()); | |
95 EXPECT_EQ(ui::DISPLAY_CONNECTION_TYPE_INTERNAL, display->type()); | |
96 } | |
97 | |
98 TEST(FakeDisplaySnapshotTest, BadDisplayMode) { | |
99 // Need width and height. | |
100 EXPECT_EQ(nullptr, CreateSnapshot("1024")); | |
101 // Display height and width should be separated by 'x' not ','. | |
102 EXPECT_EQ(nullptr, CreateSnapshot("1024,768")); | |
103 // Random 'a' before spec starts. | |
104 EXPECT_EQ(nullptr, CreateSnapshot("a1024,768")); | |
105 // Need to provide a refresh rate after '%'. | |
106 EXPECT_EQ(nullptr, CreateSnapshot("1024,768%")); | |
107 EXPECT_EQ(nullptr, CreateSnapshot("1024,768%a")); | |
108 // Refresh rate should come before DPI. | |
109 EXPECT_EQ(nullptr, CreateSnapshot("1000x1000^300%120")); | |
110 } | |
111 | |
112 TEST(FakeDisplaySnapshotTest, BadDPI) { | |
113 // DPI should be an integer value. | |
114 EXPECT_EQ(nullptr, CreateSnapshot("1024x768^a")); | |
115 EXPECT_EQ(nullptr, CreateSnapshot("1024x768^300d")); | |
116 } | |
117 | |
118 TEST(FakeDisplaySnapshotTest, BadOptions) { | |
119 // Need a '/' before options. | |
120 EXPECT_EQ(nullptr, CreateSnapshot("1024x768i")); | |
121 // Character 'z' is not a valid option. | |
122 EXPECT_EQ(nullptr, CreateSnapshot("1600x900/z")); | |
123 EXPECT_EQ(nullptr, CreateSnapshot("1600x900/iz")); | |
124 // DPI should come before options. | |
125 EXPECT_EQ(nullptr, CreateSnapshot("1600x900/i^300")); | |
126 } | |
127 | |
128 TEST(FakeDisplaySnapshotTest, BadOrderOptionsAndModes) { | |
129 // Options should come after alternate display modes. | |
130 auto display = CreateSnapshot("1920x1080/i#1600x900:1280x720"); | |
131 EXPECT_EQ(nullptr, display); | |
132 } | |
133 | |
134 TEST(FakeDisplaySnapshotTest, BadOrderModeSeparator) { | |
135 // Reverse the '#' and ':' delimiters for alternate display modes. | |
136 auto display = CreateSnapshot("1920x1080:1600x900#1280x720"); | |
137 EXPECT_EQ(nullptr, display); | |
138 } | |
139 | |
140 } // namespace display | |
OLD | NEW |