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

Side by Side Diff: chromeos/display/output_configurator_unittest.cc

Issue 21297003: Add ability to set resolution on external display (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: adraddressed comment, adjusted test Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « chromeos/display/output_configurator.cc ('k') | chromeos/display/output_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chromeos/display/output_configurator.h" 5 #include "chromeos/display/output_configurator.h"
6 6
7 #include <cstdarg> 7 #include <cstdarg>
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 } 120 }
121 virtual void UpdateXRandRConfiguration( 121 virtual void UpdateXRandRConfiguration(
122 const base::NativeEvent& event) OVERRIDE { AppendAction(kUpdateXRandR); } 122 const base::NativeEvent& event) OVERRIDE { AppendAction(kUpdateXRandR); }
123 virtual void GrabServer() OVERRIDE { AppendAction(kGrab); } 123 virtual void GrabServer() OVERRIDE { AppendAction(kGrab); }
124 virtual void UngrabServer() OVERRIDE { AppendAction(kUngrab); } 124 virtual void UngrabServer() OVERRIDE { AppendAction(kUngrab); }
125 virtual void SyncWithServer() OVERRIDE { AppendAction(kSync); } 125 virtual void SyncWithServer() OVERRIDE { AppendAction(kSync); }
126 virtual void SetBackgroundColor(uint32 color_argb) OVERRIDE { 126 virtual void SetBackgroundColor(uint32 color_argb) OVERRIDE {
127 AppendAction(GetBackgroundAction(color_argb)); 127 AppendAction(GetBackgroundAction(color_argb));
128 } 128 }
129 virtual void ForceDPMSOn() OVERRIDE { AppendAction(kForceDPMS); } 129 virtual void ForceDPMSOn() OVERRIDE { AppendAction(kForceDPMS); }
130 virtual std::vector<OutputConfigurator::OutputSnapshot> GetOutputs() 130 virtual std::vector<OutputConfigurator::OutputSnapshot> GetOutputs(
131 OVERRIDE { 131 const OutputConfigurator::StateController* controller) OVERRIDE {
132 return outputs_; 132 return outputs_;
133 } 133 }
134 virtual bool GetModeDetails( 134 virtual bool GetModeDetails(
135 RRMode mode, 135 RRMode mode,
136 int* width, 136 int* width,
137 int* height, 137 int* height,
138 bool* interlaced) OVERRIDE { 138 bool* interlaced) OVERRIDE {
139 std::map<RRMode, ModeDetails>::const_iterator it = modes_.find(mode); 139 std::map<RRMode, ModeDetails>::const_iterator it = modes_.find(mode);
140 if (it == modes_.end()) 140 if (it == modes_.end())
141 return false; 141 return false;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 class TestStateController : public OutputConfigurator::StateController { 203 class TestStateController : public OutputConfigurator::StateController {
204 public: 204 public:
205 TestStateController() : state_(STATE_DUAL_EXTENDED) {} 205 TestStateController() : state_(STATE_DUAL_EXTENDED) {}
206 virtual ~TestStateController() {} 206 virtual ~TestStateController() {}
207 207
208 void set_state(OutputState state) { state_ = state; } 208 void set_state(OutputState state) { state_ = state; }
209 209
210 // OutputConfigurator::StateController overrides: 210 // OutputConfigurator::StateController overrides:
211 virtual OutputState GetStateForDisplayIds( 211 virtual OutputState GetStateForDisplayIds(
212 const std::vector<int64>& outputs) const OVERRIDE { return state_; } 212 const std::vector<int64>& outputs) const OVERRIDE { return state_; }
213 virtual bool GetResolutionForDisplayId(
214 int64 display_id,
215 int *width,
216 int *height) const OVERRIDE {
217 return false;
218 }
213 219
214 private: 220 private:
215 OutputState state_; 221 OutputState state_;
216 222
217 DISALLOW_COPY_AND_ASSIGN(TestStateController); 223 DISALLOW_COPY_AND_ASSIGN(TestStateController);
218 }; 224 };
219 225
220 class TestMirroringController 226 class TestMirroringController
221 : public OutputConfigurator::SoftwareMirroringController { 227 : public OutputConfigurator::SoftwareMirroringController {
222 public: 228 public:
(...skipping 25 matching lines...) Expand all
248 configurator_.SetDelegateForTesting( 254 configurator_.SetDelegateForTesting(
249 scoped_ptr<OutputConfigurator::Delegate>(delegate_)); 255 scoped_ptr<OutputConfigurator::Delegate>(delegate_));
250 configurator_.set_state_controller(&state_controller_); 256 configurator_.set_state_controller(&state_controller_);
251 configurator_.set_mirroring_controller(&mirroring_controller_); 257 configurator_.set_mirroring_controller(&mirroring_controller_);
252 258
253 OutputConfigurator::OutputSnapshot* o = &outputs_[0]; 259 OutputConfigurator::OutputSnapshot* o = &outputs_[0];
254 o->output = 1; 260 o->output = 1;
255 o->crtc = 10; 261 o->crtc = 10;
256 o->current_mode = kSmallModeId; 262 o->current_mode = kSmallModeId;
257 o->native_mode = kSmallModeId; 263 o->native_mode = kSmallModeId;
264 o->selected_mode = kSmallModeId;
258 o->mirror_mode = kSmallModeId; 265 o->mirror_mode = kSmallModeId;
259 o->y = 0; 266 o->y = 0;
260 o->height = kSmallModeHeight; 267 o->height = kSmallModeHeight;
261 o->is_internal = true; 268 o->is_internal = true;
262 o->is_aspect_preserving_scaling = true; 269 o->is_aspect_preserving_scaling = true;
263 o->touch_device_id = 0; 270 o->touch_device_id = 0;
264 o->has_display_id = true; 271 o->has_display_id = true;
265 272
266 o = &outputs_[1]; 273 o = &outputs_[1];
267 o->output = 2; 274 o->output = 2;
268 o->crtc = 11; 275 o->crtc = 11;
269 o->current_mode = kBigModeId; 276 o->current_mode = kBigModeId;
270 o->native_mode = kBigModeId; 277 o->native_mode = kBigModeId;
278 o->selected_mode = kBigModeId;
271 o->mirror_mode = kSmallModeId; 279 o->mirror_mode = kSmallModeId;
272 o->y = 0; 280 o->y = 0;
273 o->height = kBigModeHeight; 281 o->height = kBigModeHeight;
274 o->is_internal = false; 282 o->is_internal = false;
275 o->is_aspect_preserving_scaling = true; 283 o->is_aspect_preserving_scaling = true;
276 o->touch_device_id = 0; 284 o->touch_device_id = 0;
277 o->has_display_id = true; 285 o->has_display_id = true;
278 286
279 UpdateOutputs(2); 287 UpdateOutputs(2);
280 delegate_->AddMode(kSmallModeId, kSmallModeWidth, kSmallModeHeight, false); 288 delegate_->AddMode(kSmallModeId, kSmallModeWidth, kSmallModeHeight, false);
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 OutputConfigurator::kSetDisplayPowerNoFlags); 682 OutputConfigurator::kSetDisplayPowerNoFlags);
675 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), delegate_->GetActionsAndClear()); 683 EXPECT_EQ(JoinActions(kGrab, kUngrab, NULL), delegate_->GetActionsAndClear());
676 configurator_.SetDisplayPower(DISPLAY_POWER_ALL_ON, 684 configurator_.SetDisplayPower(DISPLAY_POWER_ALL_ON,
677 OutputConfigurator::kSetDisplayPowerNoFlags); 685 OutputConfigurator::kSetDisplayPowerNoFlags);
678 EXPECT_EQ(JoinActions(kGrab, kForceDPMS, kUngrab, NULL), 686 EXPECT_EQ(JoinActions(kGrab, kForceDPMS, kUngrab, NULL),
679 delegate_->GetActionsAndClear()); 687 delegate_->GetActionsAndClear());
680 688
681 // Connect an external display and check that it's configured correctly. 689 // Connect an external display and check that it's configured correctly.
682 outputs_[0].is_internal = false; 690 outputs_[0].is_internal = false;
683 outputs_[0].native_mode = kBigModeId; 691 outputs_[0].native_mode = kBigModeId;
692 outputs_[0].selected_mode = kBigModeId;
684 UpdateOutputs(1); 693 UpdateOutputs(1);
685 EXPECT_TRUE(test_api_.SendOutputChangeEvents(true)); 694 EXPECT_TRUE(test_api_.SendOutputChangeEvents(true));
686 EXPECT_EQ(JoinActions(kUpdateXRandR, kGrab, 695 EXPECT_EQ(JoinActions(kUpdateXRandR, kGrab,
687 GetFramebufferAction(kBigModeWidth, kBigModeHeight, 696 GetFramebufferAction(kBigModeWidth, kBigModeHeight,
688 outputs_[0].crtc, 0).c_str(), 697 outputs_[0].crtc, 0).c_str(),
689 GetCrtcAction(outputs_[0].crtc, 0, 0, kBigModeId, 698 GetCrtcAction(outputs_[0].crtc, 0, 0, kBigModeId,
690 outputs_[0].output).c_str(), 699 outputs_[0].output).c_str(),
691 kUngrab, kProjectingOff, NULL), 700 kUngrab, kProjectingOff, NULL),
692 delegate_->GetActionsAndClear()); 701 delegate_->GetActionsAndClear());
693 } 702 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
748 test_api_.SendOutputChangeEvents(true); 757 test_api_.SendOutputChangeEvents(true);
749 EXPECT_EQ(STATE_DUAL_EXTENDED, configurator_.output_state()); 758 EXPECT_EQ(STATE_DUAL_EXTENDED, configurator_.output_state());
750 759
751 outputs_[0].has_display_id = true; 760 outputs_[0].has_display_id = true;
752 UpdateOutputs(2); 761 UpdateOutputs(2);
753 test_api_.SendOutputChangeEvents(true); 762 test_api_.SendOutputChangeEvents(true);
754 EXPECT_EQ(STATE_DUAL_MIRROR, configurator_.output_state()); 763 EXPECT_EQ(STATE_DUAL_MIRROR, configurator_.output_state());
755 } 764 }
756 765
757 } // namespace chromeos 766 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/display/output_configurator.cc ('k') | chromeos/display/output_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698