| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 #include "ui/ozone/platform/dri/dri_buffer.h" | 6 #include "ui/ozone/platform/dri/dri_buffer.h" |
| 7 #include "ui/ozone/platform/dri/hardware_display_controller.h" | 7 #include "ui/ozone/platform/dri/hardware_display_controller.h" |
| 8 #include "ui/ozone/platform/dri/screen_manager.h" | 8 #include "ui/ozone/platform/dri/screen_manager.h" |
| 9 #include "ui/ozone/platform/dri/test/mock_dri_wrapper.h" | 9 #include "ui/ozone/platform/dri/test/mock_dri_wrapper.h" |
| 10 | 10 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 | 68 |
| 69 private: | 69 private: |
| 70 DISALLOW_COPY_AND_ASSIGN(ScreenManagerTest); | 70 DISALLOW_COPY_AND_ASSIGN(ScreenManagerTest); |
| 71 }; | 71 }; |
| 72 | 72 |
| 73 TEST_F(ScreenManagerTest, CheckWithNoControllers) { | 73 TEST_F(ScreenManagerTest, CheckWithNoControllers) { |
| 74 EXPECT_FALSE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 74 EXPECT_FALSE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 75 } | 75 } |
| 76 | 76 |
| 77 TEST_F(ScreenManagerTest, CheckWithValidController) { | 77 TEST_F(ScreenManagerTest, CheckWithValidController) { |
| 78 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 79 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 78 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 80 kPrimaryConnector, | 79 kPrimaryConnector, |
| 81 GetPrimaryBounds().origin(), | 80 GetPrimaryBounds().origin(), |
| 82 kDefaultMode); | 81 kDefaultMode); |
| 83 base::WeakPtr<ui::HardwareDisplayController> controller = | 82 base::WeakPtr<ui::HardwareDisplayController> controller = |
| 84 screen_manager_->GetDisplayController(GetPrimaryBounds()); | 83 screen_manager_->GetDisplayController(GetPrimaryBounds()); |
| 85 | 84 |
| 86 EXPECT_TRUE(controller); | 85 EXPECT_TRUE(controller); |
| 87 EXPECT_TRUE(controller->HasCrtc(kPrimaryCrtc)); | 86 EXPECT_TRUE(controller->HasCrtc(kPrimaryCrtc)); |
| 88 } | 87 } |
| 89 | 88 |
| 90 TEST_F(ScreenManagerTest, CheckWithInvalidBounds) { | 89 TEST_F(ScreenManagerTest, CheckWithInvalidBounds) { |
| 91 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 92 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 90 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 93 kPrimaryConnector, | 91 kPrimaryConnector, |
| 94 GetPrimaryBounds().origin(), | 92 GetPrimaryBounds().origin(), |
| 95 kDefaultMode); | 93 kDefaultMode); |
| 96 | 94 |
| 97 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 95 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 98 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 96 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 99 } | 97 } |
| 100 | 98 |
| 101 TEST_F(ScreenManagerTest, CheckForSecondValidController) { | 99 TEST_F(ScreenManagerTest, CheckForSecondValidController) { |
| 102 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 103 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 100 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 104 kPrimaryConnector, | 101 kPrimaryConnector, |
| 105 GetPrimaryBounds().origin(), | 102 GetPrimaryBounds().origin(), |
| 106 kDefaultMode); | 103 kDefaultMode); |
| 107 screen_manager_->AddDisplayController(kSecondaryCrtc, kSecondaryConnector); | 104 screen_manager_->ConfigureDisplayController( |
| 108 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, | 105 3, 4, GetSecondaryBounds().origin(), kDefaultMode); |
| 109 kSecondaryConnector, | |
| 110 GetSecondaryBounds().origin(), | |
| 111 kDefaultMode); | |
| 112 | 106 |
| 113 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 107 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 114 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 108 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 115 } | 109 } |
| 116 | 110 |
| 117 TEST_F(ScreenManagerTest, CheckControllerAfterItIsRemoved) { | 111 TEST_F(ScreenManagerTest, CheckControllerAfterItIsRemoved) { |
| 118 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 119 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 112 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 120 kPrimaryConnector, | 113 kPrimaryConnector, |
| 121 GetPrimaryBounds().origin(), | 114 GetPrimaryBounds().origin(), |
| 122 kDefaultMode); | 115 kDefaultMode); |
| 123 base::WeakPtr<ui::HardwareDisplayController> controller = | 116 base::WeakPtr<ui::HardwareDisplayController> controller = |
| 124 screen_manager_->GetDisplayController(GetPrimaryBounds()); | 117 screen_manager_->GetDisplayController(GetPrimaryBounds()); |
| 125 | 118 |
| 126 EXPECT_TRUE(controller); | 119 EXPECT_TRUE(controller); |
| 127 screen_manager_->RemoveDisplayController(kPrimaryCrtc); | 120 screen_manager_->RemoveDisplayController(kPrimaryCrtc); |
| 128 EXPECT_FALSE(controller); | 121 EXPECT_FALSE(controller); |
| 129 } | 122 } |
| 130 | 123 |
| 131 TEST_F(ScreenManagerTest, CheckDuplicateConfiguration) { | 124 TEST_F(ScreenManagerTest, CheckDuplicateConfiguration) { |
| 132 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 133 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 125 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 134 kPrimaryConnector, | 126 kPrimaryConnector, |
| 135 GetPrimaryBounds().origin(), | 127 GetPrimaryBounds().origin(), |
| 136 kDefaultMode); | 128 kDefaultMode); |
| 137 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 129 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 138 kPrimaryConnector, | 130 kPrimaryConnector, |
| 139 GetPrimaryBounds().origin(), | 131 GetPrimaryBounds().origin(), |
| 140 kDefaultMode); | 132 kDefaultMode); |
| 141 | 133 |
| 142 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 134 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 143 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 135 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 144 } | 136 } |
| 145 | 137 |
| 146 TEST_F(ScreenManagerTest, CheckChangingMode) { | 138 TEST_F(ScreenManagerTest, CheckChangingMode) { |
| 147 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 148 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 139 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 149 kPrimaryConnector, | 140 kPrimaryConnector, |
| 150 GetPrimaryBounds().origin(), | 141 GetPrimaryBounds().origin(), |
| 151 kDefaultMode); | 142 kDefaultMode); |
| 152 drmModeModeInfo new_mode = kDefaultMode; | 143 drmModeModeInfo new_mode = kDefaultMode; |
| 153 new_mode.vdisplay = 10; | 144 new_mode.vdisplay = 10; |
| 154 screen_manager_->ConfigureDisplayController( | 145 screen_manager_->ConfigureDisplayController( |
| 155 kPrimaryCrtc, kPrimaryConnector, GetPrimaryBounds().origin(), new_mode); | 146 kPrimaryCrtc, kPrimaryConnector, GetPrimaryBounds().origin(), new_mode); |
| 156 | 147 |
| 157 gfx::Rect new_bounds(0, 0, new_mode.hdisplay, new_mode.vdisplay); | 148 gfx::Rect new_bounds(0, 0, new_mode.hdisplay, new_mode.vdisplay); |
| 158 EXPECT_TRUE(screen_manager_->GetDisplayController(new_bounds)); | 149 EXPECT_TRUE(screen_manager_->GetDisplayController(new_bounds)); |
| 159 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 150 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 160 drmModeModeInfo mode = | 151 drmModeModeInfo mode = |
| 161 screen_manager_->GetDisplayController(new_bounds)->get_mode(); | 152 screen_manager_->GetDisplayController(new_bounds)->get_mode(); |
| 162 EXPECT_EQ(new_mode.vdisplay, mode.vdisplay); | 153 EXPECT_EQ(new_mode.vdisplay, mode.vdisplay); |
| 163 EXPECT_EQ(new_mode.hdisplay, mode.hdisplay); | 154 EXPECT_EQ(new_mode.hdisplay, mode.hdisplay); |
| 164 } | 155 } |
| 165 | 156 |
| 166 TEST_F(ScreenManagerTest, CheckForControllersInMirroredMode) { | 157 TEST_F(ScreenManagerTest, CheckForControllersInMirroredMode) { |
| 167 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 168 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 158 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 169 kPrimaryConnector, | 159 kPrimaryConnector, |
| 170 GetPrimaryBounds().origin(), | 160 GetPrimaryBounds().origin(), |
| 171 kDefaultMode); | 161 kDefaultMode); |
| 172 screen_manager_->AddDisplayController(kSecondaryCrtc, kSecondaryConnector); | |
| 173 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, | 162 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, |
| 174 kSecondaryConnector, | 163 kSecondaryConnector, |
| 175 GetPrimaryBounds().origin(), | 164 GetPrimaryBounds().origin(), |
| 176 kDefaultMode); | 165 kDefaultMode); |
| 177 | 166 |
| 178 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 167 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 179 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 168 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 180 } | 169 } |
| 181 | 170 |
| 182 TEST_F(ScreenManagerTest, CheckMirrorModeTransitions) { | 171 TEST_F(ScreenManagerTest, CheckMirrorModeTransitions) { |
| 183 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 184 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 172 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 185 kPrimaryConnector, | 173 kPrimaryConnector, |
| 186 GetPrimaryBounds().origin(), | 174 GetPrimaryBounds().origin(), |
| 187 kDefaultMode); | 175 kDefaultMode); |
| 188 screen_manager_->AddDisplayController(kSecondaryCrtc, kSecondaryConnector); | |
| 189 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, | 176 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, |
| 190 kSecondaryConnector, | 177 kSecondaryConnector, |
| 191 GetSecondaryBounds().origin(), | 178 GetSecondaryBounds().origin(), |
| 192 kDefaultMode); | 179 kDefaultMode); |
| 193 | 180 |
| 194 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 181 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 195 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 182 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 196 | 183 |
| 197 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 184 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 198 kPrimaryConnector, | 185 kPrimaryConnector, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 211 kDefaultMode); | 198 kDefaultMode); |
| 212 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, | 199 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, |
| 213 kSecondaryConnector, | 200 kSecondaryConnector, |
| 214 GetPrimaryBounds().origin(), | 201 GetPrimaryBounds().origin(), |
| 215 kDefaultMode); | 202 kDefaultMode); |
| 216 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 203 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 217 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 204 EXPECT_TRUE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 218 } | 205 } |
| 219 | 206 |
| 220 TEST_F(ScreenManagerTest, MonitorGoneInMirrorMode) { | 207 TEST_F(ScreenManagerTest, MonitorGoneInMirrorMode) { |
| 221 screen_manager_->AddDisplayController(kPrimaryCrtc, kPrimaryConnector); | |
| 222 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 208 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 223 kPrimaryConnector, | 209 kPrimaryConnector, |
| 224 GetPrimaryBounds().origin(), | 210 GetPrimaryBounds().origin(), |
| 225 kDefaultMode); | 211 kDefaultMode); |
| 226 screen_manager_->AddDisplayController(kSecondaryCrtc, kSecondaryConnector); | |
| 227 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, | 212 screen_manager_->ConfigureDisplayController(kSecondaryCrtc, |
| 228 kSecondaryConnector, | 213 kSecondaryConnector, |
| 229 GetPrimaryBounds().origin(), | 214 GetPrimaryBounds().origin(), |
| 230 kDefaultMode); | 215 kDefaultMode); |
| 231 | 216 |
| 232 screen_manager_->RemoveDisplayController(kSecondaryCrtc); | 217 screen_manager_->RemoveDisplayController(kSecondaryCrtc); |
| 233 EXPECT_TRUE( | 218 EXPECT_TRUE( |
| 234 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, | 219 screen_manager_->ConfigureDisplayController(kPrimaryCrtc, |
| 235 kPrimaryConnector, | 220 kPrimaryConnector, |
| 236 GetPrimaryBounds().origin(), | 221 GetPrimaryBounds().origin(), |
| 237 kDefaultMode)); | 222 kDefaultMode)); |
| 238 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); | 223 EXPECT_TRUE(screen_manager_->GetDisplayController(GetPrimaryBounds())); |
| 239 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); | 224 EXPECT_FALSE(screen_manager_->GetDisplayController(GetSecondaryBounds())); |
| 240 } | 225 } |
| OLD | NEW |