| 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 "ui/display/chromeos/display_change_observer.h" |
| 6 |
| 7 #include <string> |
| 6 | 8 |
| 7 #include "base/memory/ptr_util.h" | 9 #include "base/memory/ptr_util.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "ui/display/chromeos/display_configurator.h" | 11 #include "ui/display/chromeos/display_configurator.h" |
| 10 #include "ui/display/fake_display_snapshot.h" | 12 #include "ui/display/fake_display_snapshot.h" |
| 11 #include "ui/display/manager/managed_display_info.h" | 13 #include "ui/display/manager/managed_display_info.h" |
| 12 #include "ui/display/types/display_mode.h" | 14 #include "ui/display/types/display_mode.h" |
| 15 #include "ui/gfx/geometry/rect.h" |
| 16 #include "ui/gfx/geometry/size.h" |
| 13 | 17 |
| 14 using ui::DisplayConfigurator; | 18 using ui::DisplayConfigurator; |
| 15 | 19 |
| 16 namespace ash { | 20 namespace display { |
| 17 | 21 |
| 18 namespace { | 22 namespace { |
| 19 | 23 |
| 20 float ComputeDeviceScaleFactor(float diagonal_inch, | 24 float ComputeDeviceScaleFactor(float diagonal_inch, |
| 21 const gfx::Rect& resolution) { | 25 const gfx::Rect& resolution) { |
| 22 // We assume that displays have square pixel. | 26 // We assume that displays have square pixel. |
| 23 float diagonal_pixel = std::sqrt(std::pow(resolution.width(), 2) + | 27 float diagonal_pixel = std::sqrt(std::pow(resolution.width(), 2) + |
| 24 std::pow(resolution.height(), 2)); | 28 std::pow(resolution.height(), 2)); |
| 25 float dpi = diagonal_pixel / diagonal_inch; | 29 float dpi = diagonal_pixel / diagonal_inch; |
| 26 return DisplayChangeObserver::FindDeviceScaleFactor(dpi); | 30 return DisplayChangeObserver::FindDeviceScaleFactor(dpi); |
| 27 } | 31 } |
| 28 | 32 |
| 29 std::unique_ptr<ui::DisplayMode> MakeDisplayMode(int width, | 33 std::unique_ptr<ui::DisplayMode> MakeDisplayMode(int width, |
| 30 int height, | 34 int height, |
| 31 bool is_interlaced, | 35 bool is_interlaced, |
| 32 float refresh_rate) { | 36 float refresh_rate) { |
| 33 return base::MakeUnique<ui::DisplayMode>(gfx::Size(width, height), | 37 return base::MakeUnique<ui::DisplayMode>(gfx::Size(width, height), |
| 34 is_interlaced, refresh_rate); | 38 is_interlaced, refresh_rate); |
| 35 } | 39 } |
| 36 | 40 |
| 37 } // namespace | 41 } // namespace |
| 38 | 42 |
| 39 TEST(DisplayChangeObserverTest, GetExternalManagedDisplayModeList) { | 43 TEST(DisplayChangeObserverTest, GetExternalManagedDisplayModeList) { |
| 40 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 44 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 41 display::FakeDisplaySnapshot::Builder() | 45 FakeDisplaySnapshot::Builder() |
| 42 .SetId(123) | 46 .SetId(123) |
| 43 .SetNativeMode(MakeDisplayMode(1920, 1200, false, 60)) | 47 .SetNativeMode(MakeDisplayMode(1920, 1200, false, 60)) |
| 44 // All non-interlaced (as would be seen with different refresh rates). | 48 // All non-interlaced (as would be seen with different refresh rates). |
| 45 .AddMode(MakeDisplayMode(1920, 1080, false, 80)) | 49 .AddMode(MakeDisplayMode(1920, 1080, false, 80)) |
| 46 .AddMode(MakeDisplayMode(1920, 1080, false, 70)) | 50 .AddMode(MakeDisplayMode(1920, 1080, false, 70)) |
| 47 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) | 51 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) |
| 48 // Interlaced vs non-interlaced. | 52 // Interlaced vs non-interlaced. |
| 49 .AddMode(MakeDisplayMode(1280, 720, true, 60)) | 53 .AddMode(MakeDisplayMode(1280, 720, true, 60)) |
| 50 .AddMode(MakeDisplayMode(1280, 720, false, 60)) | 54 .AddMode(MakeDisplayMode(1280, 720, false, 60)) |
| 51 // Interlaced only. | 55 // Interlaced only. |
| 52 .AddMode(MakeDisplayMode(1024, 768, true, 70)) | 56 .AddMode(MakeDisplayMode(1024, 768, true, 70)) |
| 53 .AddMode(MakeDisplayMode(1024, 768, true, 60)) | 57 .AddMode(MakeDisplayMode(1024, 768, true, 60)) |
| 54 // Mixed. | 58 // Mixed. |
| 55 .AddMode(MakeDisplayMode(1024, 600, true, 60)) | 59 .AddMode(MakeDisplayMode(1024, 600, true, 60)) |
| 56 .AddMode(MakeDisplayMode(1024, 600, false, 70)) | 60 .AddMode(MakeDisplayMode(1024, 600, false, 70)) |
| 57 .AddMode(MakeDisplayMode(1024, 600, false, 60)) | 61 .AddMode(MakeDisplayMode(1024, 600, false, 60)) |
| 58 // Just one interlaced mode. | 62 // Just one interlaced mode. |
| 59 .AddMode(MakeDisplayMode(640, 480, true, 60)) | 63 .AddMode(MakeDisplayMode(640, 480, true, 60)) |
| 60 .Build(); | 64 .Build(); |
| 61 | 65 |
| 62 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 66 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 63 DisplayChangeObserver::GetExternalManagedDisplayModeList( | 67 DisplayChangeObserver::GetExternalManagedDisplayModeList( |
| 64 *display_snapshot); | 68 *display_snapshot); |
| 65 ASSERT_EQ(6u, display_modes.size()); | 69 ASSERT_EQ(6u, display_modes.size()); |
| 66 EXPECT_EQ("640x480", display_modes[0]->size().ToString()); | 70 EXPECT_EQ("640x480", display_modes[0]->size().ToString()); |
| 67 EXPECT_TRUE(display_modes[0]->is_interlaced()); | 71 EXPECT_TRUE(display_modes[0]->is_interlaced()); |
| 68 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 72 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 69 | 73 |
| 70 EXPECT_EQ("1024x600", display_modes[1]->size().ToString()); | 74 EXPECT_EQ("1024x600", display_modes[1]->size().ToString()); |
| 71 EXPECT_FALSE(display_modes[1]->is_interlaced()); | 75 EXPECT_FALSE(display_modes[1]->is_interlaced()); |
| 72 EXPECT_EQ(display_modes[1]->refresh_rate(), 70); | 76 EXPECT_EQ(display_modes[1]->refresh_rate(), 70); |
| 73 | 77 |
| 74 EXPECT_EQ("1024x768", display_modes[2]->size().ToString()); | 78 EXPECT_EQ("1024x768", display_modes[2]->size().ToString()); |
| 75 EXPECT_TRUE(display_modes[2]->is_interlaced()); | 79 EXPECT_TRUE(display_modes[2]->is_interlaced()); |
| 76 EXPECT_EQ(display_modes[2]->refresh_rate(), 70); | 80 EXPECT_EQ(display_modes[2]->refresh_rate(), 70); |
| 77 | 81 |
| 78 EXPECT_EQ("1280x720", display_modes[3]->size().ToString()); | 82 EXPECT_EQ("1280x720", display_modes[3]->size().ToString()); |
| 79 EXPECT_FALSE(display_modes[3]->is_interlaced()); | 83 EXPECT_FALSE(display_modes[3]->is_interlaced()); |
| 80 EXPECT_EQ(display_modes[3]->refresh_rate(), 60); | 84 EXPECT_EQ(display_modes[3]->refresh_rate(), 60); |
| 81 | 85 |
| 82 EXPECT_EQ("1920x1080", display_modes[4]->size().ToString()); | 86 EXPECT_EQ("1920x1080", display_modes[4]->size().ToString()); |
| 83 EXPECT_FALSE(display_modes[4]->is_interlaced()); | 87 EXPECT_FALSE(display_modes[4]->is_interlaced()); |
| 84 EXPECT_EQ(display_modes[4]->refresh_rate(), 80); | 88 EXPECT_EQ(display_modes[4]->refresh_rate(), 80); |
| 85 | 89 |
| 86 EXPECT_EQ("1920x1200", display_modes[5]->size().ToString()); | 90 EXPECT_EQ("1920x1200", display_modes[5]->size().ToString()); |
| 87 EXPECT_FALSE(display_modes[5]->is_interlaced()); | 91 EXPECT_FALSE(display_modes[5]->is_interlaced()); |
| 88 EXPECT_EQ(display_modes[5]->refresh_rate(), 60); | 92 EXPECT_EQ(display_modes[5]->refresh_rate(), 60); |
| 89 } | 93 } |
| 90 | 94 |
| 91 TEST(DisplayChangeObserverTest, GetEmptyExternalManagedDisplayModeList) { | 95 TEST(DisplayChangeObserverTest, GetEmptyExternalManagedDisplayModeList) { |
| 92 display::FakeDisplaySnapshot display_snapshot( | 96 FakeDisplaySnapshot display_snapshot( |
| 93 123, gfx::Point(), gfx::Size(), ui::DISPLAY_CONNECTION_TYPE_UNKNOWN, | 97 123, gfx::Point(), gfx::Size(), ui::DISPLAY_CONNECTION_TYPE_UNKNOWN, |
| 94 false, false, false, std::string(), 0, | 98 false, false, false, std::string(), 0, |
| 95 std::vector<std::unique_ptr<const ui::DisplayMode>>(), nullptr, nullptr); | 99 std::vector<std::unique_ptr<const ui::DisplayMode>>(), nullptr, nullptr); |
| 96 | 100 |
| 97 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 101 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 98 DisplayChangeObserver::GetExternalManagedDisplayModeList( | 102 DisplayChangeObserver::GetExternalManagedDisplayModeList( |
| 99 display_snapshot); | 103 display_snapshot); |
| 100 EXPECT_EQ(0u, display_modes.size()); | 104 EXPECT_EQ(0u, display_modes.size()); |
| 101 } | 105 } |
| 102 | 106 |
| 103 TEST(DisplayChangeObserverTest, GetInternalManagedDisplayModeList) { | 107 TEST(DisplayChangeObserverTest, GetInternalManagedDisplayModeList) { |
| 104 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 108 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 105 display::FakeDisplaySnapshot::Builder() | 109 FakeDisplaySnapshot::Builder() |
| 106 .SetId(123) | 110 .SetId(123) |
| 107 .SetNativeMode(MakeDisplayMode(1366, 768, false, 60)) | 111 .SetNativeMode(MakeDisplayMode(1366, 768, false, 60)) |
| 108 .AddMode(MakeDisplayMode(1024, 768, false, 60)) | 112 .AddMode(MakeDisplayMode(1024, 768, false, 60)) |
| 109 .AddMode(MakeDisplayMode(800, 600, false, 60)) | 113 .AddMode(MakeDisplayMode(800, 600, false, 60)) |
| 110 .AddMode(MakeDisplayMode(600, 600, false, 56.2)) | 114 .AddMode(MakeDisplayMode(600, 600, false, 56.2)) |
| 111 .AddMode(MakeDisplayMode(640, 480, false, 59.9)) | 115 .AddMode(MakeDisplayMode(640, 480, false, 59.9)) |
| 112 .Build(); | 116 .Build(); |
| 113 | 117 |
| 114 display::ManagedDisplayInfo info(1, "", false); | 118 ManagedDisplayInfo info(1, "", false); |
| 115 info.SetBounds(gfx::Rect(0, 0, 1366, 768)); | 119 info.SetBounds(gfx::Rect(0, 0, 1366, 768)); |
| 116 | 120 |
| 117 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 121 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 118 DisplayChangeObserver::GetInternalManagedDisplayModeList( | 122 DisplayChangeObserver::GetInternalManagedDisplayModeList( |
| 119 info, *display_snapshot); | 123 info, *display_snapshot); |
| 120 ASSERT_EQ(5u, display_modes.size()); | 124 ASSERT_EQ(5u, display_modes.size()); |
| 121 EXPECT_EQ("1366x768", display_modes[0]->size().ToString()); | 125 EXPECT_EQ("1366x768", display_modes[0]->size().ToString()); |
| 122 EXPECT_FALSE(display_modes[0]->native()); | 126 EXPECT_FALSE(display_modes[0]->native()); |
| 123 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); | 127 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); |
| 124 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 128 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 125 | 129 |
| 126 EXPECT_EQ("1366x768", display_modes[1]->size().ToString()); | 130 EXPECT_EQ("1366x768", display_modes[1]->size().ToString()); |
| 127 EXPECT_FALSE(display_modes[1]->native()); | 131 EXPECT_FALSE(display_modes[1]->native()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 140 | 144 |
| 141 EXPECT_EQ("1366x768", display_modes[4]->size().ToString()); | 145 EXPECT_EQ("1366x768", display_modes[4]->size().ToString()); |
| 142 EXPECT_FALSE(display_modes[4]->native()); | 146 EXPECT_FALSE(display_modes[4]->native()); |
| 143 EXPECT_NEAR(display_modes[4]->ui_scale(), 1.125, 0.01); | 147 EXPECT_NEAR(display_modes[4]->ui_scale(), 1.125, 0.01); |
| 144 EXPECT_EQ(display_modes[4]->refresh_rate(), 60); | 148 EXPECT_EQ(display_modes[4]->refresh_rate(), 60); |
| 145 } | 149 } |
| 146 | 150 |
| 147 TEST(DisplayChangeObserverTest, GetInternalHiDPIManagedDisplayModeList) { | 151 TEST(DisplayChangeObserverTest, GetInternalHiDPIManagedDisplayModeList) { |
| 148 // Data picked from peppy. | 152 // Data picked from peppy. |
| 149 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 153 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 150 display::FakeDisplaySnapshot::Builder() | 154 FakeDisplaySnapshot::Builder() |
| 151 .SetId(123) | 155 .SetId(123) |
| 152 .SetNativeMode(MakeDisplayMode(2560, 1700, false, 60)) | 156 .SetNativeMode(MakeDisplayMode(2560, 1700, false, 60)) |
| 153 .AddMode(MakeDisplayMode(2048, 1536, false, 60)) | 157 .AddMode(MakeDisplayMode(2048, 1536, false, 60)) |
| 154 .AddMode(MakeDisplayMode(1920, 1440, false, 60)) | 158 .AddMode(MakeDisplayMode(1920, 1440, false, 60)) |
| 155 .Build(); | 159 .Build(); |
| 156 | 160 |
| 157 display::ManagedDisplayInfo info(1, "", false); | 161 ManagedDisplayInfo info(1, "", false); |
| 158 info.SetBounds(gfx::Rect(0, 0, 2560, 1700)); | 162 info.SetBounds(gfx::Rect(0, 0, 2560, 1700)); |
| 159 info.set_device_scale_factor(2.0f); | 163 info.set_device_scale_factor(2.0f); |
| 160 | 164 |
| 161 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 165 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 162 DisplayChangeObserver::GetInternalManagedDisplayModeList( | 166 DisplayChangeObserver::GetInternalManagedDisplayModeList( |
| 163 info, *display_snapshot); | 167 info, *display_snapshot); |
| 164 ASSERT_EQ(8u, display_modes.size()); | 168 ASSERT_EQ(8u, display_modes.size()); |
| 165 EXPECT_EQ("2560x1700", display_modes[0]->size().ToString()); | 169 EXPECT_EQ("2560x1700", display_modes[0]->size().ToString()); |
| 166 EXPECT_FALSE(display_modes[0]->native()); | 170 EXPECT_FALSE(display_modes[0]->native()); |
| 167 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); | 171 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); |
| 168 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 172 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 169 | 173 |
| 170 EXPECT_EQ("2560x1700", display_modes[1]->size().ToString()); | 174 EXPECT_EQ("2560x1700", display_modes[1]->size().ToString()); |
| 171 EXPECT_FALSE(display_modes[1]->native()); | 175 EXPECT_FALSE(display_modes[1]->native()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 199 | 203 |
| 200 EXPECT_EQ("2560x1700", display_modes[7]->size().ToString()); | 204 EXPECT_EQ("2560x1700", display_modes[7]->size().ToString()); |
| 201 EXPECT_TRUE(display_modes[7]->native()); | 205 EXPECT_TRUE(display_modes[7]->native()); |
| 202 EXPECT_NEAR(display_modes[7]->ui_scale(), 2.0, 0.01); | 206 EXPECT_NEAR(display_modes[7]->ui_scale(), 2.0, 0.01); |
| 203 EXPECT_EQ(display_modes[7]->refresh_rate(), 60); | 207 EXPECT_EQ(display_modes[7]->refresh_rate(), 60); |
| 204 } | 208 } |
| 205 | 209 |
| 206 TEST(DisplayChangeObserverTest, GetInternalManagedDisplayModeList1_25) { | 210 TEST(DisplayChangeObserverTest, GetInternalManagedDisplayModeList1_25) { |
| 207 // Data picked from peppy. | 211 // Data picked from peppy. |
| 208 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 212 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 209 display::FakeDisplaySnapshot::Builder() | 213 FakeDisplaySnapshot::Builder() |
| 210 .SetId(123) | 214 .SetId(123) |
| 211 .SetNativeMode(MakeDisplayMode(1920, 1080, false, 60)) | 215 .SetNativeMode(MakeDisplayMode(1920, 1080, false, 60)) |
| 212 .Build(); | 216 .Build(); |
| 213 | 217 |
| 214 display::ManagedDisplayInfo info(1, "", false); | 218 ManagedDisplayInfo info(1, "", false); |
| 215 info.SetBounds(gfx::Rect(0, 0, 1920, 1080)); | 219 info.SetBounds(gfx::Rect(0, 0, 1920, 1080)); |
| 216 info.set_device_scale_factor(1.25); | 220 info.set_device_scale_factor(1.25); |
| 217 | 221 |
| 218 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 222 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 219 DisplayChangeObserver::GetInternalManagedDisplayModeList( | 223 DisplayChangeObserver::GetInternalManagedDisplayModeList( |
| 220 info, *display_snapshot); | 224 info, *display_snapshot); |
| 221 ASSERT_EQ(5u, display_modes.size()); | 225 ASSERT_EQ(5u, display_modes.size()); |
| 222 EXPECT_EQ("1920x1080", display_modes[0]->size().ToString()); | 226 EXPECT_EQ("1920x1080", display_modes[0]->size().ToString()); |
| 223 EXPECT_FALSE(display_modes[0]->native()); | 227 EXPECT_FALSE(display_modes[0]->native()); |
| 224 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); | 228 EXPECT_NEAR(display_modes[0]->ui_scale(), 0.5, 0.01); |
| 225 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 229 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 226 | 230 |
| 227 EXPECT_EQ("1920x1080", display_modes[1]->size().ToString()); | 231 EXPECT_EQ("1920x1080", display_modes[1]->size().ToString()); |
| 228 EXPECT_FALSE(display_modes[1]->native()); | 232 EXPECT_FALSE(display_modes[1]->native()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 240 EXPECT_EQ(display_modes[3]->refresh_rate(), 60); | 244 EXPECT_EQ(display_modes[3]->refresh_rate(), 60); |
| 241 | 245 |
| 242 EXPECT_EQ("1920x1080", display_modes[4]->size().ToString()); | 246 EXPECT_EQ("1920x1080", display_modes[4]->size().ToString()); |
| 243 EXPECT_FALSE(display_modes[4]->native()); | 247 EXPECT_FALSE(display_modes[4]->native()); |
| 244 EXPECT_NEAR(display_modes[4]->ui_scale(), 1.25, 0.01); | 248 EXPECT_NEAR(display_modes[4]->ui_scale(), 1.25, 0.01); |
| 245 EXPECT_EQ(display_modes[4]->refresh_rate(), 60); | 249 EXPECT_EQ(display_modes[4]->refresh_rate(), 60); |
| 246 } | 250 } |
| 247 | 251 |
| 248 TEST(DisplayChangeObserverTest, GetExternalManagedDisplayModeList4K) { | 252 TEST(DisplayChangeObserverTest, GetExternalManagedDisplayModeList4K) { |
| 249 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 253 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 250 display::FakeDisplaySnapshot::Builder() | 254 FakeDisplaySnapshot::Builder() |
| 251 .SetId(123) | 255 .SetId(123) |
| 252 .SetNativeMode(MakeDisplayMode(3840, 2160, false, 30)) | 256 .SetNativeMode(MakeDisplayMode(3840, 2160, false, 30)) |
| 253 .AddMode(MakeDisplayMode(1920, 1200, false, 60)) | 257 .AddMode(MakeDisplayMode(1920, 1200, false, 60)) |
| 254 // All non-interlaced (as would be seen with different refresh rates). | 258 // All non-interlaced (as would be seen with different refresh rates). |
| 255 .AddMode(MakeDisplayMode(1920, 1080, false, 80)) | 259 .AddMode(MakeDisplayMode(1920, 1080, false, 80)) |
| 256 .AddMode(MakeDisplayMode(1920, 1080, false, 70)) | 260 .AddMode(MakeDisplayMode(1920, 1080, false, 70)) |
| 257 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) | 261 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) |
| 258 // Interlaced vs non-interlaced. | 262 // Interlaced vs non-interlaced. |
| 259 .AddMode(MakeDisplayMode(1280, 720, true, 60)) | 263 .AddMode(MakeDisplayMode(1280, 720, true, 60)) |
| 260 .AddMode(MakeDisplayMode(1280, 720, false, 60)) | 264 .AddMode(MakeDisplayMode(1280, 720, false, 60)) |
| 261 // Interlaced only. | 265 // Interlaced only. |
| 262 .AddMode(MakeDisplayMode(1024, 768, true, 70)) | 266 .AddMode(MakeDisplayMode(1024, 768, true, 70)) |
| 263 .AddMode(MakeDisplayMode(1024, 768, true, 60)) | 267 .AddMode(MakeDisplayMode(1024, 768, true, 60)) |
| 264 // Mixed. | 268 // Mixed. |
| 265 .AddMode(MakeDisplayMode(1024, 600, true, 60)) | 269 .AddMode(MakeDisplayMode(1024, 600, true, 60)) |
| 266 .AddMode(MakeDisplayMode(1024, 600, false, 70)) | 270 .AddMode(MakeDisplayMode(1024, 600, false, 70)) |
| 267 .AddMode(MakeDisplayMode(1024, 600, false, 60)) | 271 .AddMode(MakeDisplayMode(1024, 600, false, 60)) |
| 268 // Just one interlaced mode. | 272 // Just one interlaced mode. |
| 269 .AddMode(MakeDisplayMode(640, 480, true, 60)) | 273 .AddMode(MakeDisplayMode(640, 480, true, 60)) |
| 270 .Build(); | 274 .Build(); |
| 271 | 275 |
| 272 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 276 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 273 DisplayChangeObserver::GetExternalManagedDisplayModeList( | 277 DisplayChangeObserver::GetExternalManagedDisplayModeList( |
| 274 *display_snapshot); | 278 *display_snapshot); |
| 275 display::ManagedDisplayInfo info(1, "", false); | 279 ManagedDisplayInfo info(1, "", false); |
| 276 info.SetManagedDisplayModes(display_modes); // Sort as external display. | 280 info.SetManagedDisplayModes(display_modes); // Sort as external display. |
| 277 display_modes = info.display_modes(); | 281 display_modes = info.display_modes(); |
| 278 | 282 |
| 279 ASSERT_EQ(9u, display_modes.size()); | 283 ASSERT_EQ(9u, display_modes.size()); |
| 280 EXPECT_EQ("640x480", display_modes[0]->size().ToString()); | 284 EXPECT_EQ("640x480", display_modes[0]->size().ToString()); |
| 281 EXPECT_TRUE(display_modes[0]->is_interlaced()); | 285 EXPECT_TRUE(display_modes[0]->is_interlaced()); |
| 282 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 286 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 283 | 287 |
| 284 EXPECT_EQ("1024x600", display_modes[1]->size().ToString()); | 288 EXPECT_EQ("1024x600", display_modes[1]->size().ToString()); |
| 285 EXPECT_FALSE(display_modes[1]->is_interlaced()); | 289 EXPECT_FALSE(display_modes[1]->is_interlaced()); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 EXPECT_EQ(2.0f, ComputeDeviceScaleFactor(12.85f, gfx::Rect(2560, 1700))); | 345 EXPECT_EQ(2.0f, ComputeDeviceScaleFactor(12.85f, gfx::Rect(2560, 1700))); |
| 342 | 346 |
| 343 // Erroneous values should still work. | 347 // Erroneous values should still work. |
| 344 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(-100.0f)); | 348 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(-100.0f)); |
| 345 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(0.0f)); | 349 EXPECT_EQ(1.0f, DisplayChangeObserver::FindDeviceScaleFactor(0.0f)); |
| 346 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(10000.0f)); | 350 EXPECT_EQ(2.0f, DisplayChangeObserver::FindDeviceScaleFactor(10000.0f)); |
| 347 } | 351 } |
| 348 | 352 |
| 349 TEST(DisplayChangeObserverTest, FindExternalDisplayNativeModeWhenOverwritten) { | 353 TEST(DisplayChangeObserverTest, FindExternalDisplayNativeModeWhenOverwritten) { |
| 350 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = | 354 std::unique_ptr<ui::DisplaySnapshot> display_snapshot = |
| 351 display::FakeDisplaySnapshot::Builder() | 355 FakeDisplaySnapshot::Builder() |
| 352 .SetId(123) | 356 .SetId(123) |
| 353 .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) | 357 .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60)) |
| 354 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) | 358 .AddMode(MakeDisplayMode(1920, 1080, false, 60)) |
| 355 .Build(); | 359 .Build(); |
| 356 | 360 |
| 357 display::ManagedDisplayInfo::ManagedDisplayModeList display_modes = | 361 ManagedDisplayInfo::ManagedDisplayModeList display_modes = |
| 358 DisplayChangeObserver::GetExternalManagedDisplayModeList( | 362 DisplayChangeObserver::GetExternalManagedDisplayModeList( |
| 359 *display_snapshot); | 363 *display_snapshot); |
| 360 ASSERT_EQ(2u, display_modes.size()); | 364 ASSERT_EQ(2u, display_modes.size()); |
| 361 EXPECT_EQ("1920x1080", display_modes[0]->size().ToString()); | 365 EXPECT_EQ("1920x1080", display_modes[0]->size().ToString()); |
| 362 EXPECT_FALSE(display_modes[0]->is_interlaced()); | 366 EXPECT_FALSE(display_modes[0]->is_interlaced()); |
| 363 EXPECT_FALSE(display_modes[0]->native()); | 367 EXPECT_FALSE(display_modes[0]->native()); |
| 364 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); | 368 EXPECT_EQ(display_modes[0]->refresh_rate(), 60); |
| 365 | 369 |
| 366 EXPECT_EQ("1920x1080", display_modes[1]->size().ToString()); | 370 EXPECT_EQ("1920x1080", display_modes[1]->size().ToString()); |
| 367 EXPECT_TRUE(display_modes[1]->is_interlaced()); | 371 EXPECT_TRUE(display_modes[1]->is_interlaced()); |
| 368 EXPECT_TRUE(display_modes[1]->native()); | 372 EXPECT_TRUE(display_modes[1]->native()); |
| 369 EXPECT_EQ(display_modes[1]->refresh_rate(), 60); | 373 EXPECT_EQ(display_modes[1]->refresh_rate(), 60); |
| 370 } | 374 } |
| 371 | 375 |
| 372 } // namespace ash | 376 } // namespace display |
| OLD | NEW |