| 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 |