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 "base/debug/leak_annotations.h" | 5 #include "base/debug/leak_annotations.h" |
6 #include "base/strings/string_number_conversions.h" | 6 #include "base/strings/string_number_conversions.h" |
7 #include "chrome/browser/extensions/extension_apitest.h" | 7 #include "chrome/browser/extensions/extension_apitest.h" |
8 #include "chrome/browser/extensions/extension_function_test_utils.h" | 8 #include "chrome/browser/extensions/extension_function_test_utils.h" |
9 #include "extensions/browser/api/system_display/display_info_provider.h" | 9 #include "extensions/browser/api/system_display/display_info_provider.h" |
10 #include "extensions/browser/api/system_display/system_display_api.h" | 10 #include "extensions/browser/api/system_display/system_display_api.h" |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 public: | 62 public: |
63 MockScreen() { | 63 MockScreen() { |
64 for (int i = 0; i < 4; i++) { | 64 for (int i = 0; i < 4; i++) { |
65 gfx::Rect bounds(0, 0, 1280, 720); | 65 gfx::Rect bounds(0, 0, 1280, 720); |
66 gfx::Rect work_area(0, 0, 960, 720); | 66 gfx::Rect work_area(0, 0, 960, 720); |
67 gfx::Display display(i, bounds); | 67 gfx::Display display(i, bounds); |
68 display.set_work_area(work_area); | 68 display.set_work_area(work_area); |
69 displays_.push_back(display); | 69 displays_.push_back(display); |
70 } | 70 } |
71 } | 71 } |
72 virtual ~MockScreen() {} | 72 ~MockScreen() override {} |
73 | 73 |
74 protected: | 74 protected: |
75 // Overridden from gfx::Screen: | 75 // Overridden from gfx::Screen: |
76 virtual bool IsDIPEnabled() override { return true; } | 76 bool IsDIPEnabled() override { return true; } |
77 virtual gfx::Point GetCursorScreenPoint() override { return gfx::Point(); } | 77 gfx::Point GetCursorScreenPoint() override { return gfx::Point(); } |
78 virtual gfx::NativeWindow GetWindowUnderCursor() override { | 78 gfx::NativeWindow GetWindowUnderCursor() override { |
79 return gfx::NativeWindow(); | 79 return gfx::NativeWindow(); |
80 } | 80 } |
81 virtual gfx::NativeWindow GetWindowAtScreenPoint( | 81 gfx::NativeWindow GetWindowAtScreenPoint(const gfx::Point& point) override { |
82 const gfx::Point& point) override { | |
83 return gfx::NativeWindow(); | 82 return gfx::NativeWindow(); |
84 } | 83 } |
85 virtual int GetNumDisplays() const override { | 84 int GetNumDisplays() const override { return displays_.size(); } |
86 return displays_.size(); | 85 std::vector<gfx::Display> GetAllDisplays() const override { |
87 } | |
88 virtual std::vector<gfx::Display> GetAllDisplays() const override { | |
89 return displays_; | 86 return displays_; |
90 } | 87 } |
91 virtual gfx::Display GetDisplayNearestWindow( | 88 gfx::Display GetDisplayNearestWindow(gfx::NativeView window) const override { |
92 gfx::NativeView window) const override { | |
93 return gfx::Display(0); | 89 return gfx::Display(0); |
94 } | 90 } |
95 virtual gfx::Display GetDisplayNearestPoint( | 91 gfx::Display GetDisplayNearestPoint(const gfx::Point& point) const override { |
96 const gfx::Point& point) const override { | |
97 return gfx::Display(0); | 92 return gfx::Display(0); |
98 } | 93 } |
99 virtual gfx::Display GetDisplayMatching( | 94 gfx::Display GetDisplayMatching(const gfx::Rect& match_rect) const override { |
100 const gfx::Rect& match_rect) const override { | |
101 return gfx::Display(0); | 95 return gfx::Display(0); |
102 } | 96 } |
103 virtual gfx::Display GetPrimaryDisplay() const override { | 97 gfx::Display GetPrimaryDisplay() const override { return displays_[0]; } |
104 return displays_[0]; | 98 void AddObserver(gfx::DisplayObserver* observer) override {} |
105 } | 99 void RemoveObserver(gfx::DisplayObserver* observer) override {} |
106 virtual void AddObserver(gfx::DisplayObserver* observer) override {} | |
107 virtual void RemoveObserver(gfx::DisplayObserver* observer) override {} | |
108 | 100 |
109 private: | 101 private: |
110 std::vector<gfx::Display> displays_; | 102 std::vector<gfx::Display> displays_; |
111 | 103 |
112 DISALLOW_COPY_AND_ASSIGN(MockScreen); | 104 DISALLOW_COPY_AND_ASSIGN(MockScreen); |
113 }; | 105 }; |
114 #endif | 106 #endif |
115 | 107 |
116 class MockDisplayInfoProvider : public DisplayInfoProvider { | 108 class MockDisplayInfoProvider : public DisplayInfoProvider { |
117 public: | 109 public: |
118 MockDisplayInfoProvider() {} | 110 MockDisplayInfoProvider() {} |
119 | 111 |
120 virtual ~MockDisplayInfoProvider() {} | 112 ~MockDisplayInfoProvider() override {} |
121 | 113 |
122 virtual bool SetInfo( | 114 bool SetInfo(const std::string& display_id, |
123 const std::string& display_id, | 115 const core_api::system_display::DisplayProperties& params, |
124 const core_api::system_display::DisplayProperties& params, | 116 std::string* error) override { |
125 std::string* error) override { | |
126 // Should get called only once per test case. | 117 // Should get called only once per test case. |
127 EXPECT_FALSE(set_info_value_); | 118 EXPECT_FALSE(set_info_value_); |
128 set_info_value_ = params.ToValue(); | 119 set_info_value_ = params.ToValue(); |
129 set_info_display_id_ = display_id; | 120 set_info_display_id_ = display_id; |
130 return true; | 121 return true; |
131 } | 122 } |
132 | 123 |
133 virtual gfx::Screen* GetActiveScreen() override { return NULL; } | 124 gfx::Screen* GetActiveScreen() override { return NULL; } |
134 | 125 |
135 scoped_ptr<base::DictionaryValue> GetSetInfoValue() { | 126 scoped_ptr<base::DictionaryValue> GetSetInfoValue() { |
136 return set_info_value_.Pass(); | 127 return set_info_value_.Pass(); |
137 } | 128 } |
138 | 129 |
139 std::string GetSetInfoDisplayId() const { | 130 std::string GetSetInfoDisplayId() const { |
140 return set_info_display_id_; | 131 return set_info_display_id_; |
141 } | 132 } |
142 | 133 |
143 private: | 134 private: |
144 // Update the content of the |unit| obtained for |display| using | 135 // Update the content of the |unit| obtained for |display| using |
145 // platform specific method. | 136 // platform specific method. |
146 virtual void UpdateDisplayUnitInfoForPlatform( | 137 void UpdateDisplayUnitInfoForPlatform( |
147 const gfx::Display& display, | 138 const gfx::Display& display, |
148 extensions::core_api::system_display::DisplayUnitInfo* unit) override { | 139 extensions::core_api::system_display::DisplayUnitInfo* unit) override { |
149 int64 id = display.id(); | 140 int64 id = display.id(); |
150 unit->name = "DISPLAY NAME FOR " + base::Int64ToString(id); | 141 unit->name = "DISPLAY NAME FOR " + base::Int64ToString(id); |
151 if (id == 1) | 142 if (id == 1) |
152 unit->mirroring_source_id = "0"; | 143 unit->mirroring_source_id = "0"; |
153 unit->is_primary = id == 0 ? true : false; | 144 unit->is_primary = id == 0 ? true : false; |
154 unit->is_internal = id == 0 ? true : false; | 145 unit->is_internal = id == 0 ? true : false; |
155 unit->is_enabled = true; | 146 unit->is_enabled = true; |
156 unit->rotation = (90 * id) % 360; | 147 unit->rotation = (90 * id) % 360; |
(...skipping 13 matching lines...) Expand all Loading... |
170 DISALLOW_COPY_AND_ASSIGN(MockDisplayInfoProvider); | 161 DISALLOW_COPY_AND_ASSIGN(MockDisplayInfoProvider); |
171 }; | 162 }; |
172 | 163 |
173 class SystemDisplayApiTest: public ExtensionApiTest { | 164 class SystemDisplayApiTest: public ExtensionApiTest { |
174 public: | 165 public: |
175 SystemDisplayApiTest() : provider_(new MockDisplayInfoProvider), | 166 SystemDisplayApiTest() : provider_(new MockDisplayInfoProvider), |
176 screen_(new MockScreen) {} | 167 screen_(new MockScreen) {} |
177 | 168 |
178 virtual ~SystemDisplayApiTest() {} | 169 virtual ~SystemDisplayApiTest() {} |
179 | 170 |
180 virtual void SetUpOnMainThread() override { | 171 void SetUpOnMainThread() override { |
181 ExtensionApiTest::SetUpOnMainThread(); | 172 ExtensionApiTest::SetUpOnMainThread(); |
182 ANNOTATE_LEAKING_OBJECT_PTR( | 173 ANNOTATE_LEAKING_OBJECT_PTR( |
183 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_NATIVE)); | 174 gfx::Screen::GetScreenByType(gfx::SCREEN_TYPE_NATIVE)); |
184 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get()); | 175 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, screen_.get()); |
185 DisplayInfoProvider::InitializeForTesting(provider_.get()); | 176 DisplayInfoProvider::InitializeForTesting(provider_.get()); |
186 } | 177 } |
187 | 178 |
188 virtual void TearDownOnMainThread() override { | 179 void TearDownOnMainThread() override { |
189 #if defined(OS_CHROMEOS) | 180 #if defined(OS_CHROMEOS) |
190 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, | 181 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, |
191 ash::Shell::GetScreen()); | 182 ash::Shell::GetScreen()); |
192 #endif | 183 #endif |
193 ExtensionApiTest::TearDownOnMainThread(); | 184 ExtensionApiTest::TearDownOnMainThread(); |
194 } | 185 } |
195 | 186 |
196 protected: | 187 protected: |
197 scoped_ptr<MockDisplayInfoProvider> provider_; | 188 scoped_ptr<MockDisplayInfoProvider> provider_; |
198 scoped_ptr<gfx::Screen> screen_; | 189 scoped_ptr<gfx::Screen> screen_; |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 EXPECT_EQ(1, utils::GetInteger(overscan, "left")); | 290 EXPECT_EQ(1, utils::GetInteger(overscan, "left")); |
300 EXPECT_EQ(2, utils::GetInteger(overscan, "top")); | 291 EXPECT_EQ(2, utils::GetInteger(overscan, "top")); |
301 EXPECT_EQ(3, utils::GetInteger(overscan, "right")); | 292 EXPECT_EQ(3, utils::GetInteger(overscan, "right")); |
302 EXPECT_EQ(4, utils::GetInteger(overscan, "bottom")); | 293 EXPECT_EQ(4, utils::GetInteger(overscan, "bottom")); |
303 | 294 |
304 EXPECT_EQ("display_id", provider_->GetSetInfoDisplayId()); | 295 EXPECT_EQ("display_id", provider_->GetSetInfoDisplayId()); |
305 } | 296 } |
306 #endif // defined(OS_CHROMEOS) | 297 #endif // defined(OS_CHROMEOS) |
307 | 298 |
308 } // namespace extensions | 299 } // namespace extensions |
OLD | NEW |