OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/display/display_change_observer_chromeos.h" | 5 #include "ash/display/display_change_observer_chromeos.h" |
6 | 6 |
7 #include "ash/display/display_info.h" | 7 #include "ash/display/display_info.h" |
8 #include "base/memory/scoped_vector.h" | 8 #include "base/memory/scoped_vector.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "ui/display/chromeos/display_configurator.h" | 10 #include "ui/display/chromeos/display_configurator.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 EXPECT_TRUE(display_modes[3].native); | 122 EXPECT_TRUE(display_modes[3].native); |
123 EXPECT_NEAR(display_modes[3].ui_scale, 1.0, 0.01); | 123 EXPECT_NEAR(display_modes[3].ui_scale, 1.0, 0.01); |
124 EXPECT_EQ(display_modes[3].refresh_rate, 60); | 124 EXPECT_EQ(display_modes[3].refresh_rate, 60); |
125 | 125 |
126 EXPECT_EQ("1366x768", display_modes[4].size.ToString()); | 126 EXPECT_EQ("1366x768", display_modes[4].size.ToString()); |
127 EXPECT_FALSE(display_modes[4].native); | 127 EXPECT_FALSE(display_modes[4].native); |
128 EXPECT_NEAR(display_modes[4].ui_scale, 1.125, 0.01); | 128 EXPECT_NEAR(display_modes[4].ui_scale, 1.125, 0.01); |
129 EXPECT_EQ(display_modes[4].refresh_rate, 60); | 129 EXPECT_EQ(display_modes[4].refresh_rate, 60); |
130 } | 130 } |
131 | 131 |
| 132 TEST_F(DisplayChangeObserverTest, GetInternalHiDPIDisplayModeList) { |
| 133 ScopedVector<const ui::DisplayMode> modes; |
| 134 // Data picked from peppy. |
| 135 modes.push_back(new ui::DisplayMode(gfx::Size(2560, 1700), false, 60)); |
| 136 modes.push_back(new ui::DisplayMode(gfx::Size(2048, 1536), false, 60)); |
| 137 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1440), false, 60)); |
| 138 |
| 139 ui::TestDisplaySnapshot display_snapshot; |
| 140 display_snapshot.set_modes(modes.get()); |
| 141 display_snapshot.set_native_mode(modes[0]); |
| 142 DisplayConfigurator::DisplayState output; |
| 143 output.display = &display_snapshot; |
| 144 |
| 145 DisplayInfo info; |
| 146 info.SetBounds(gfx::Rect(0, 0, 2560, 1700)); |
| 147 info.set_device_scale_factor(2.0f); |
| 148 |
| 149 std::vector<DisplayMode> display_modes = |
| 150 DisplayChangeObserver::GetInternalDisplayModeList(info, output); |
| 151 ASSERT_EQ(8u, display_modes.size()); |
| 152 EXPECT_EQ("2560x1700", display_modes[0].size.ToString()); |
| 153 EXPECT_FALSE(display_modes[0].native); |
| 154 EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01); |
| 155 EXPECT_EQ(display_modes[0].refresh_rate, 60); |
| 156 |
| 157 EXPECT_EQ("2560x1700", display_modes[1].size.ToString()); |
| 158 EXPECT_FALSE(display_modes[1].native); |
| 159 EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01); |
| 160 EXPECT_EQ(display_modes[1].refresh_rate, 60); |
| 161 |
| 162 EXPECT_EQ("2560x1700", display_modes[2].size.ToString()); |
| 163 EXPECT_FALSE(display_modes[2].native); |
| 164 EXPECT_NEAR(display_modes[2].ui_scale, 0.8, 0.01); |
| 165 EXPECT_EQ(display_modes[2].refresh_rate, 60); |
| 166 |
| 167 EXPECT_EQ("2560x1700", display_modes[3].size.ToString()); |
| 168 EXPECT_FALSE(display_modes[3].native); |
| 169 EXPECT_NEAR(display_modes[3].ui_scale, 1.0, 0.01); |
| 170 EXPECT_EQ(display_modes[3].refresh_rate, 60); |
| 171 |
| 172 EXPECT_EQ("2560x1700", display_modes[4].size.ToString()); |
| 173 EXPECT_FALSE(display_modes[4].native); |
| 174 EXPECT_NEAR(display_modes[4].ui_scale, 1.125, 0.01); |
| 175 EXPECT_EQ(display_modes[4].refresh_rate, 60); |
| 176 |
| 177 EXPECT_EQ("2560x1700", display_modes[5].size.ToString()); |
| 178 EXPECT_FALSE(display_modes[5].native); |
| 179 EXPECT_NEAR(display_modes[5].ui_scale, 1.25, 0.01); |
| 180 EXPECT_EQ(display_modes[5].refresh_rate, 60); |
| 181 |
| 182 EXPECT_EQ("2560x1700", display_modes[6].size.ToString()); |
| 183 EXPECT_FALSE(display_modes[6].native); |
| 184 EXPECT_NEAR(display_modes[6].ui_scale, 1.5, 0.01); |
| 185 EXPECT_EQ(display_modes[6].refresh_rate, 60); |
| 186 |
| 187 EXPECT_EQ("2560x1700", display_modes[7].size.ToString()); |
| 188 EXPECT_TRUE(display_modes[7].native); |
| 189 EXPECT_NEAR(display_modes[7].ui_scale, 2.0, 0.01); |
| 190 EXPECT_EQ(display_modes[7].refresh_rate, 60); |
| 191 } |
| 192 |
132 TEST_F(DisplayChangeObserverTest, GetExternalDisplayModeList4K) { | 193 TEST_F(DisplayChangeObserverTest, GetExternalDisplayModeList4K) { |
133 ScopedVector<const ui::DisplayMode> modes; | 194 ScopedVector<const ui::DisplayMode> modes; |
134 modes.push_back(new ui::DisplayMode(gfx::Size(3840, 2160), false, 30)); | 195 modes.push_back(new ui::DisplayMode(gfx::Size(3840, 2160), false, 30)); |
135 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1200), false, 60)); | 196 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1200), false, 60)); |
136 | 197 |
137 // All non-interlaced (as would be seen with different refresh rates). | 198 // All non-interlaced (as would be seen with different refresh rates). |
138 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 80)); | 199 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 80)); |
139 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 70)); | 200 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 70)); |
140 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60)); | 201 modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60)); |
141 | 202 |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 // 12.85" 2560x1700 | 293 // 12.85" 2560x1700 |
233 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(239.15f)); | 294 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(239.15f)); |
234 | 295 |
235 // Erroneous values should still work. | 296 // Erroneous values should still work. |
236 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(-100.0f)); | 297 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(-100.0f)); |
237 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(0.0f)); | 298 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(0.0f)); |
238 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(10000.0f)); | 299 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(10000.0f)); |
239 } | 300 } |
240 | 301 |
241 } // namespace ash | 302 } // namespace ash |
OLD | NEW |