Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ash / display / display_change_observer_chromeos_unittest.cc
index d274764..7fc9ae1 100644 (file)
@@ -9,7 +9,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "ui/display/chromeos/display_configurator.h"
 #include "ui/display/chromeos/test/test_display_snapshot.h"
-#include "ui/display/types/chromeos/display_mode.h"
+#include "ui/display/types/display_mode.h"
 
 using ui::DisplayConfigurator;
 
@@ -129,6 +129,111 @@ TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList) {
   EXPECT_EQ(display_modes[4].refresh_rate, 60);
 }
 
+TEST_F(DisplayChangeObserverTest, GetInternalHiDPIDisplayModeList) {
+  ScopedVector<const ui::DisplayMode> modes;
+  // Data picked from peppy.
+  modes.push_back(new ui::DisplayMode(gfx::Size(2560, 1700), false, 60));
+  modes.push_back(new ui::DisplayMode(gfx::Size(2048, 1536), false, 60));
+  modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1440), false, 60));
+
+  ui::TestDisplaySnapshot display_snapshot;
+  display_snapshot.set_modes(modes.get());
+  display_snapshot.set_native_mode(modes[0]);
+  DisplayConfigurator::DisplayState output;
+  output.display = &display_snapshot;
+
+  DisplayInfo info;
+  info.SetBounds(gfx::Rect(0, 0, 2560, 1700));
+  info.set_device_scale_factor(2.0f);
+
+  std::vector<DisplayMode> display_modes =
+      DisplayChangeObserver::GetInternalDisplayModeList(info, output);
+  ASSERT_EQ(8u, display_modes.size());
+  EXPECT_EQ("2560x1700", display_modes[0].size.ToString());
+  EXPECT_FALSE(display_modes[0].native);
+  EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01);
+  EXPECT_EQ(display_modes[0].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[1].size.ToString());
+  EXPECT_FALSE(display_modes[1].native);
+  EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01);
+  EXPECT_EQ(display_modes[1].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[2].size.ToString());
+  EXPECT_FALSE(display_modes[2].native);
+  EXPECT_NEAR(display_modes[2].ui_scale, 0.8, 0.01);
+  EXPECT_EQ(display_modes[2].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[3].size.ToString());
+  EXPECT_FALSE(display_modes[3].native);
+  EXPECT_NEAR(display_modes[3].ui_scale, 1.0, 0.01);
+  EXPECT_EQ(display_modes[3].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[4].size.ToString());
+  EXPECT_FALSE(display_modes[4].native);
+  EXPECT_NEAR(display_modes[4].ui_scale, 1.125, 0.01);
+  EXPECT_EQ(display_modes[4].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[5].size.ToString());
+  EXPECT_FALSE(display_modes[5].native);
+  EXPECT_NEAR(display_modes[5].ui_scale, 1.25, 0.01);
+  EXPECT_EQ(display_modes[5].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[6].size.ToString());
+  EXPECT_FALSE(display_modes[6].native);
+  EXPECT_NEAR(display_modes[6].ui_scale, 1.5, 0.01);
+  EXPECT_EQ(display_modes[6].refresh_rate, 60);
+
+  EXPECT_EQ("2560x1700", display_modes[7].size.ToString());
+  EXPECT_TRUE(display_modes[7].native);
+  EXPECT_NEAR(display_modes[7].ui_scale, 2.0, 0.01);
+  EXPECT_EQ(display_modes[7].refresh_rate, 60);
+}
+
+TEST_F(DisplayChangeObserverTest, GetInternalDisplayModeList1_25) {
+  ScopedVector<const ui::DisplayMode> modes;
+  // Data picked from peppy.
+  modes.push_back(new ui::DisplayMode(gfx::Size(1920, 1080), false, 60));
+
+  ui::TestDisplaySnapshot display_snapshot;
+  display_snapshot.set_modes(modes.get());
+  display_snapshot.set_native_mode(modes[0]);
+  DisplayConfigurator::DisplayState output;
+  output.display = &display_snapshot;
+
+  DisplayInfo info;
+  info.SetBounds(gfx::Rect(0, 0, 1920, 1080));
+  info.set_device_scale_factor(1.25);
+
+  std::vector<DisplayMode> display_modes =
+      DisplayChangeObserver::GetInternalDisplayModeList(info, output);
+  ASSERT_EQ(5u, display_modes.size());
+  EXPECT_EQ("1920x1080", display_modes[0].size.ToString());
+  EXPECT_FALSE(display_modes[0].native);
+  EXPECT_NEAR(display_modes[0].ui_scale, 0.5, 0.01);
+  EXPECT_EQ(display_modes[0].refresh_rate, 60);
+
+  EXPECT_EQ("1920x1080", display_modes[1].size.ToString());
+  EXPECT_FALSE(display_modes[1].native);
+  EXPECT_NEAR(display_modes[1].ui_scale, 0.625, 0.01);
+  EXPECT_EQ(display_modes[1].refresh_rate, 60);
+
+  EXPECT_EQ("1920x1080", display_modes[2].size.ToString());
+  EXPECT_FALSE(display_modes[2].native);
+  EXPECT_NEAR(display_modes[2].ui_scale, 0.8, 0.01);
+  EXPECT_EQ(display_modes[2].refresh_rate, 60);
+
+  EXPECT_EQ("1920x1080", display_modes[3].size.ToString());
+  EXPECT_FALSE(display_modes[3].native);
+  EXPECT_NEAR(display_modes[3].ui_scale, 1.0, 0.01);
+  EXPECT_EQ(display_modes[3].refresh_rate, 60);
+
+  EXPECT_EQ("1920x1080", display_modes[4].size.ToString());
+  EXPECT_TRUE(display_modes[4].native);
+  EXPECT_NEAR(display_modes[4].ui_scale, 1.25, 0.01);
+  EXPECT_EQ(display_modes[4].refresh_rate, 60);
+}
+
 TEST_F(DisplayChangeObserverTest, GetExternalDisplayModeList4K) {
   ScopedVector<const ui::DisplayMode> modes;
   modes.push_back(new ui::DisplayMode(gfx::Size(3840, 2160), false, 30));