| 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 "ui/display/chromeos/display_configurator.h" |     5 #include "ui/display/chromeos/display_configurator.h" | 
|     6  |     6  | 
|     7 #include "base/memory/scoped_vector.h" |     7 #include "base/memory/scoped_vector.h" | 
|     8 #include "base/message_loop/message_loop.h" |     8 #include "base/message_loop/message_loop.h" | 
|     9 #include "testing/gtest/include/gtest/gtest.h" |     9 #include "testing/gtest/include/gtest/gtest.h" | 
|    10 #include "ui/display/chromeos/test/action_logger_util.h" |    10 #include "ui/display/chromeos/test/action_logger_util.h" | 
| (...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   847   state_controller_.set_state(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR); |   847   state_controller_.set_state(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR); | 
|   848   configurator_.ForceInitialConfigure(0); |   848   configurator_.ForceInitialConfigure(0); | 
|   849   EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, configurator_.display_state()); |   849   EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR, configurator_.display_state()); | 
|   850 } |   850 } | 
|   851  |   851  | 
|   852 TEST_F(DisplayConfiguratorTest, UpdateCachedOutputsEvenAfterFailure) { |   852 TEST_F(DisplayConfiguratorTest, UpdateCachedOutputsEvenAfterFailure) { | 
|   853   InitWithSingleOutput(); |   853   InitWithSingleOutput(); | 
|   854   const DisplayConfigurator::DisplayStateList* cached = |   854   const DisplayConfigurator::DisplayStateList* cached = | 
|   855       &configurator_.cached_displays(); |   855       &configurator_.cached_displays(); | 
|   856   ASSERT_EQ(static_cast<size_t>(1), cached->size()); |   856   ASSERT_EQ(static_cast<size_t>(1), cached->size()); | 
|   857   EXPECT_EQ(outputs_[0].current_mode(), (*cached)[0].display->current_mode()); |   857   EXPECT_EQ(outputs_[0].current_mode(), (*cached)[0]->current_mode()); | 
|   858  |   858  | 
|   859   // After connecting a second output, check that it shows up in |   859   // After connecting a second output, check that it shows up in | 
|   860   // |cached_displays_| even if an invalid state is requested. |   860   // |cached_displays_| even if an invalid state is requested. | 
|   861   state_controller_.set_state(MULTIPLE_DISPLAY_STATE_SINGLE); |   861   state_controller_.set_state(MULTIPLE_DISPLAY_STATE_SINGLE); | 
|   862   UpdateOutputs(2, true); |   862   UpdateOutputs(2, true); | 
|   863   cached = &configurator_.cached_displays(); |   863   cached = &configurator_.cached_displays(); | 
|   864   ASSERT_EQ(static_cast<size_t>(2), cached->size()); |   864   ASSERT_EQ(static_cast<size_t>(2), cached->size()); | 
|   865   EXPECT_EQ(outputs_[0].current_mode(), (*cached)[0].display->current_mode()); |   865   EXPECT_EQ(outputs_[0].current_mode(), (*cached)[0]->current_mode()); | 
|   866   EXPECT_EQ(outputs_[1].current_mode(), (*cached)[1].display->current_mode()); |   866   EXPECT_EQ(outputs_[1].current_mode(), (*cached)[1]->current_mode()); | 
|   867 } |   867 } | 
|   868  |   868  | 
|   869 TEST_F(DisplayConfiguratorTest, PanelFitting) { |   869 TEST_F(DisplayConfiguratorTest, PanelFitting) { | 
|   870   // Configure the internal display to support only the big mode and the |   870   // Configure the internal display to support only the big mode and the | 
|   871   // external display to support only the small mode. |   871   // external display to support only the small mode. | 
|   872   outputs_[0].set_current_mode(&big_mode_); |   872   outputs_[0].set_current_mode(&big_mode_); | 
|   873   outputs_[0].set_native_mode(&big_mode_); |   873   outputs_[0].set_native_mode(&big_mode_); | 
|   874   outputs_[0].set_modes(std::vector<const DisplayMode*>(1, &big_mode_)); |   874   outputs_[0].set_modes(std::vector<const DisplayMode*>(1, &big_mode_)); | 
|   875  |   875  | 
|   876   outputs_[1].set_current_mode(&small_mode_); |   876   outputs_[1].set_current_mode(&small_mode_); | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|   891           GetFramebufferAction(small_mode_.size(), &outputs_[0], &outputs_[1]) |   891           GetFramebufferAction(small_mode_.size(), &outputs_[0], &outputs_[1]) | 
|   892               .c_str(), |   892               .c_str(), | 
|   893           GetCrtcAction(outputs_[0], &small_mode_, gfx::Point(0, 0)).c_str(), |   893           GetCrtcAction(outputs_[0], &small_mode_, gfx::Point(0, 0)).c_str(), | 
|   894           GetCrtcAction(outputs_[1], &small_mode_, gfx::Point(0, 0)).c_str(), |   894           GetCrtcAction(outputs_[1], &small_mode_, gfx::Point(0, 0)).c_str(), | 
|   895           kForceDPMS, kUngrab, NULL), |   895           kForceDPMS, kUngrab, NULL), | 
|   896       log_->GetActionsAndClear()); |   896       log_->GetActionsAndClear()); | 
|   897  |   897  | 
|   898   // Both outputs should be using the small mode. |   898   // Both outputs should be using the small mode. | 
|   899   ASSERT_EQ(1, observer_.num_changes()); |   899   ASSERT_EQ(1, observer_.num_changes()); | 
|   900   ASSERT_EQ(static_cast<size_t>(2), observer_.latest_outputs().size()); |   900   ASSERT_EQ(static_cast<size_t>(2), observer_.latest_outputs().size()); | 
|   901   EXPECT_EQ(&small_mode_, observer_.latest_outputs()[0].mirror_mode); |   901   EXPECT_EQ(&small_mode_, observer_.latest_outputs()[0]->current_mode()); | 
|   902   EXPECT_EQ(&small_mode_, |   902   EXPECT_EQ(&small_mode_, observer_.latest_outputs()[1]->current_mode()); | 
|   903             observer_.latest_outputs()[0].display->current_mode()); |  | 
|   904   EXPECT_EQ(&small_mode_, observer_.latest_outputs()[1].mirror_mode); |  | 
|   905   EXPECT_EQ(&small_mode_, |  | 
|   906             observer_.latest_outputs()[1].display->current_mode()); |  | 
|   907  |   903  | 
|   908   // Also check that the newly-added small mode is present in the internal |   904   // Also check that the newly-added small mode is present in the internal | 
|   909   // snapshot that was passed to the observer (http://crbug.com/289159). |   905   // snapshot that was passed to the observer (http://crbug.com/289159). | 
|   910   const DisplayConfigurator::DisplayState& state = |   906   DisplaySnapshot* state = observer_.latest_outputs()[0]; | 
|   911       observer_.latest_outputs()[0]; |   907   ASSERT_NE( | 
|   912   ASSERT_NE(state.display->modes().end(), |   908       state->modes().end(), | 
|   913             std::find(state.display->modes().begin(), |   909       std::find(state->modes().begin(), state->modes().end(), &small_mode_)); | 
|   914                       state.display->modes().end(), |  | 
|   915                       &small_mode_)); |  | 
|   916 } |   910 } | 
|   917  |   911  | 
|   918 TEST_F(DisplayConfiguratorTest, ContentProtection) { |   912 TEST_F(DisplayConfiguratorTest, ContentProtection) { | 
|   919   configurator_.Init(false); |   913   configurator_.Init(false); | 
|   920   configurator_.ForceInitialConfigure(0); |   914   configurator_.ForceInitialConfigure(0); | 
|   921   EXPECT_NE(kNoActions, log_->GetActionsAndClear()); |   915   EXPECT_NE(kNoActions, log_->GetActionsAndClear()); | 
|   922  |   916  | 
|   923   DisplayConfigurator::ContentProtectionClientId id = |   917   DisplayConfigurator::ContentProtectionClientId id = | 
|   924       configurator_.RegisterContentProtectionClient(); |   918       configurator_.RegisterContentProtectionClient(); | 
|   925   EXPECT_NE(0u, id); |   919   EXPECT_NE(0u, id); | 
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1348                         GetFramebufferAction(small_mode_.size(), &outputs_[0], |  1342                         GetFramebufferAction(small_mode_.size(), &outputs_[0], | 
|  1349                                              nullptr).c_str(), |  1343                                              nullptr).c_str(), | 
|  1350                         GetCrtcAction(outputs_[0], &small_mode_, |  1344                         GetCrtcAction(outputs_[0], &small_mode_, | 
|  1351                                       gfx::Point(0, 0)).c_str(), |  1345                                       gfx::Point(0, 0)).c_str(), | 
|  1352                         kUngrab, NULL), |  1346                         kUngrab, NULL), | 
|  1353             log_->GetActionsAndClear()); |  1347             log_->GetActionsAndClear()); | 
|  1354 } |  1348 } | 
|  1355  |  1349  | 
|  1356 }  // namespace test |  1350 }  // namespace test | 
|  1357 }  // namespace ui |  1351 }  // namespace ui | 
| OLD | NEW |