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

Unified Diff: chrome/browser/extensions/display_info_provider_chromeos_unittest.cc

Issue 2072633002: Add Get/SetDisplayLayout to chrome.system.display extension API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
diff --git a/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc b/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
index 05f2868de2212f19739827d6be586cbf9945b6d3..447592e0aae01d6a6fe6d9e999e78b19f8da8089 100644
--- a/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
+++ b/chrome/browser/extensions/display_info_provider_chromeos_unittest.cc
@@ -26,6 +26,9 @@
namespace extensions {
namespace {
+using DisplayUnitInfoList = DisplayInfoProvider::DisplayUnitInfoList;
+using DisplayLayoutList = DisplayInfoProvider::DisplayLayoutList;
+
class DisplayInfoProviderChromeosTest : public ash::test::AshTestBase {
public:
DisplayInfoProviderChromeosTest() {}
@@ -434,6 +437,60 @@ TEST_F(DisplayInfoProviderChromeosTest, GetBounds) {
SystemInfoDisplayBoundsToString(result[1].bounds));
}
+TEST_F(DisplayInfoProviderChromeosTest, Layout) {
+ UpdateDisplay("500x400,500x400,500x400");
+
+ DisplayUnitInfoList displays =
+ DisplayInfoProvider::Get()->GetAllDisplaysInfo();
+ std::string primary_id = displays[0].id;
+ ASSERT_EQ(3u, displays.size());
+
+ DisplayLayoutList layout = DisplayInfoProvider::Get()->GetDisplayLayout();
+
+ ASSERT_EQ(2u, layout.size());
+
+ // Confirm layout.
+ EXPECT_EQ(displays[1].id, layout[0].id);
+ EXPECT_EQ(primary_id, layout[0].parent_id);
+ EXPECT_EQ(api::system_display::LAYOUT_POSITION_RIGHT, layout[0].position);
+ EXPECT_EQ(0, layout[0].offset);
+
+ EXPECT_EQ(displays[2].id, layout[1].id);
+ EXPECT_EQ(layout[0].id, layout[1].parent_id);
+ EXPECT_EQ(api::system_display::LAYOUT_POSITION_RIGHT, layout[1].position);
+ EXPECT_EQ(0, layout[1].offset);
+
+ // Modify layout.
+ layout[0].offset = 100;
+ layout[1].parent_id = primary_id;
+ layout[1].position = api::system_display::LAYOUT_POSITION_BOTTOM;
+ layout[1].offset = -100;
+
+ // Update with modified layout.
+ ASSERT_TRUE(DisplayInfoProvider::Get()->SetDisplayLayout(layout));
+
+ // Get updated layout.
+ layout = DisplayInfoProvider::Get()->GetDisplayLayout();
+
+ // Confirm modified layout.
+ EXPECT_EQ(displays[1].id, layout[0].id);
+ EXPECT_EQ(primary_id, layout[0].parent_id);
+ EXPECT_EQ(api::system_display::LAYOUT_POSITION_RIGHT, layout[0].position);
+ EXPECT_EQ(100, layout[0].offset);
+
+ EXPECT_EQ(displays[2].id, layout[1].id);
+ EXPECT_EQ(primary_id, layout[1].parent_id);
+ EXPECT_EQ(api::system_display::LAYOUT_POSITION_BOTTOM, layout[1].position);
+ EXPECT_EQ(-100, layout[1].offset);
+
+ // TODO(stevenjb/oshima): Implement and test illegal layout prevention.
+
+ // Test setting invalid layout fails.
+ layout[0].parent_id = displays[2].id;
+ layout[1].parent_id = displays[1].id;
+ EXPECT_FALSE(DisplayInfoProvider::Get()->SetDisplayLayout(layout));
+}
+
TEST_F(DisplayInfoProviderChromeosTest, SetBoundsOriginLeftExact) {
UpdateDisplay("1200x600,520x400");

Powered by Google App Engine
This is Rietveld 408576698