Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Side by Side Diff: ui/display/fake_display_snapshot_unittests.cc

Issue 2395873002: Add more options to --screen-config flag. (Closed)
Patch Set: Move matcher + add epsilon. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/display/fake_display_snapshot.cc ('k') | ui/display/test/display_matchers.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(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
OLDNEW
« no previous file with comments | « ui/display/fake_display_snapshot.cc ('k') | ui/display/test/display_matchers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698