| OLD | NEW |
| 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 "chrome/browser/chromeos/display/display_preferences.h" | 5 #include "chrome/browser/chromeos/display/display_preferences.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" | 13 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" |
| 14 #include "ash/common/wm_shell.h" | 14 #include "ash/common/wm_shell.h" |
| 15 #include "ash/display/display_util.h" | 15 #include "ash/display/display_util.h" |
| 16 #include "ash/display/json_converter.h" | |
| 17 #include "ash/display/resolution_notification_controller.h" | 16 #include "ash/display/resolution_notification_controller.h" |
| 18 #include "ash/display/screen_orientation_controller_chromeos.h" | 17 #include "ash/display/screen_orientation_controller_chromeos.h" |
| 19 #include "ash/display/window_tree_host_manager.h" | 18 #include "ash/display/window_tree_host_manager.h" |
| 20 #include "ash/shell.h" | 19 #include "ash/shell.h" |
| 21 #include "ash/test/ash_test_base.h" | 20 #include "ash/test/ash_test_base.h" |
| 22 #include "base/macros.h" | 21 #include "base/macros.h" |
| 23 #include "base/memory/ptr_util.h" | 22 #include "base/memory/ptr_util.h" |
| 24 #include "base/memory/ref_counted.h" | 23 #include "base/memory/ref_counted.h" |
| 25 #include "base/strings/string_number_conversions.h" | 24 #include "base/strings/string_number_conversions.h" |
| 26 #include "base/values.h" | 25 #include "base/values.h" |
| 27 #include "chrome/browser/chromeos/display/display_configuration_observer.h" | 26 #include "chrome/browser/chromeos/display/display_configuration_observer.h" |
| 28 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" | 27 #include "chrome/browser/chromeos/login/users/mock_user_manager.h" |
| 29 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" | 28 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
| 30 #include "chrome/common/pref_names.h" | 29 #include "chrome/common/pref_names.h" |
| 31 #include "chrome/test/base/testing_browser_process.h" | 30 #include "chrome/test/base/testing_browser_process.h" |
| 32 #include "components/prefs/scoped_user_pref_update.h" | 31 #include "components/prefs/scoped_user_pref_update.h" |
| 33 #include "components/prefs/testing_pref_service.h" | 32 #include "components/prefs/testing_pref_service.h" |
| 34 #include "ui/display/display_layout_builder.h" | 33 #include "ui/display/display_layout_builder.h" |
| 35 #include "ui/display/manager/chromeos/display_configurator.h" | 34 #include "ui/display/manager/chromeos/display_configurator.h" |
| 36 #include "ui/display/manager/display_layout_store.h" | 35 #include "ui/display/manager/display_layout_store.h" |
| 37 #include "ui/display/manager/display_manager.h" | 36 #include "ui/display/manager/display_manager.h" |
| 38 #include "ui/display/manager/display_manager_utilities.h" | 37 #include "ui/display/manager/display_manager_utilities.h" |
| 38 #include "ui/display/manager/json_converter.h" |
| 39 #include "ui/display/screen.h" | 39 #include "ui/display/screen.h" |
| 40 #include "ui/display/test/display_manager_test_api.h" | 40 #include "ui/display/test/display_manager_test_api.h" |
| 41 #include "ui/gfx/geometry/vector3d_f.h" | 41 #include "ui/gfx/geometry/vector3d_f.h" |
| 42 #include "ui/message_center/message_center.h" | 42 #include "ui/message_center/message_center.h" |
| 43 | 43 |
| 44 using ash::ResolutionNotificationController; | 44 using ash::ResolutionNotificationController; |
| 45 | 45 |
| 46 namespace chromeos { | 46 namespace chromeos { |
| 47 namespace { | 47 namespace { |
| 48 const char kPrimaryIdKey[] = "primary-id"; | 48 const char kPrimaryIdKey[] = "primary-id"; |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 | 120 |
| 121 DCHECK(!name.empty()); | 121 DCHECK(!name.empty()); |
| 122 | 122 |
| 123 base::DictionaryValue* pref_data = update.Get(); | 123 base::DictionaryValue* pref_data = update.Get(); |
| 124 std::unique_ptr<base::Value> layout_value(new base::DictionaryValue()); | 124 std::unique_ptr<base::Value> layout_value(new base::DictionaryValue()); |
| 125 if (pref_data->HasKey(name)) { | 125 if (pref_data->HasKey(name)) { |
| 126 base::Value* value = nullptr; | 126 base::Value* value = nullptr; |
| 127 if (pref_data->Get(name, &value) && value != nullptr) | 127 if (pref_data->Get(name, &value) && value != nullptr) |
| 128 layout_value.reset(value->DeepCopy()); | 128 layout_value.reset(value->DeepCopy()); |
| 129 } | 129 } |
| 130 if (ash::DisplayLayoutToJson(display_layout, layout_value.get())) | 130 if (display::DisplayLayoutToJson(display_layout, layout_value.get())) |
| 131 pref_data->Set(name, layout_value.release()); | 131 pref_data->Set(name, layout_value.release()); |
| 132 } | 132 } |
| 133 | 133 |
| 134 void StoreDisplayPropertyForList(const display::DisplayIdList& list, | 134 void StoreDisplayPropertyForList(const display::DisplayIdList& list, |
| 135 std::string key, | 135 std::string key, |
| 136 std::unique_ptr<base::Value> value) { | 136 std::unique_ptr<base::Value> value) { |
| 137 std::string name = display::DisplayIdListToString(list); | 137 std::string name = display::DisplayIdListToString(list); |
| 138 | 138 |
| 139 DictionaryPrefUpdate update(&local_state_, prefs::kSecondaryDisplays); | 139 DictionaryPrefUpdate update(&local_state_, prefs::kSecondaryDisplays); |
| 140 base::DictionaryValue* pref_data = update.Get(); | 140 base::DictionaryValue* pref_data = update.Get(); |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 | 323 |
| 324 const base::DictionaryValue* displays = | 324 const base::DictionaryValue* displays = |
| 325 local_state()->GetDictionary(prefs::kSecondaryDisplays); | 325 local_state()->GetDictionary(prefs::kSecondaryDisplays); |
| 326 const base::DictionaryValue* layout_value = nullptr; | 326 const base::DictionaryValue* layout_value = nullptr; |
| 327 std::string key = base::Int64ToString(id1) + "," + base::Int64ToString(id2); | 327 std::string key = base::Int64ToString(id1) + "," + base::Int64ToString(id2); |
| 328 std::string dummy_key = | 328 std::string dummy_key = |
| 329 base::Int64ToString(id1) + "," + base::Int64ToString(dummy_id); | 329 base::Int64ToString(id1) + "," + base::Int64ToString(dummy_id); |
| 330 EXPECT_TRUE(displays->GetDictionary(dummy_key, &layout_value)); | 330 EXPECT_TRUE(displays->GetDictionary(dummy_key, &layout_value)); |
| 331 | 331 |
| 332 display::DisplayLayout stored_layout; | 332 display::DisplayLayout stored_layout; |
| 333 EXPECT_TRUE(ash::JsonToDisplayLayout(*layout_value, &stored_layout)); | 333 EXPECT_TRUE(display::JsonToDisplayLayout(*layout_value, &stored_layout)); |
| 334 ASSERT_EQ(1u, stored_layout.placement_list.size()); | 334 ASSERT_EQ(1u, stored_layout.placement_list.size()); |
| 335 | 335 |
| 336 EXPECT_EQ(dummy_layout->placement_list[0].position, | 336 EXPECT_EQ(dummy_layout->placement_list[0].position, |
| 337 stored_layout.placement_list[0].position); | 337 stored_layout.placement_list[0].position); |
| 338 EXPECT_EQ(dummy_layout->placement_list[0].offset, | 338 EXPECT_EQ(dummy_layout->placement_list[0].offset, |
| 339 stored_layout.placement_list[0].offset); | 339 stored_layout.placement_list[0].offset); |
| 340 | 340 |
| 341 bool mirrored = true; | 341 bool mirrored = true; |
| 342 EXPECT_TRUE(layout_value->GetBoolean(kMirroredKey, &mirrored)); | 342 EXPECT_TRUE(layout_value->GetBoolean(kMirroredKey, &mirrored)); |
| 343 EXPECT_FALSE(mirrored); | 343 EXPECT_FALSE(mirrored); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 EXPECT_TRUE(property->GetInteger("height", &height)); | 443 EXPECT_TRUE(property->GetInteger("height", &height)); |
| 444 EXPECT_TRUE(property->GetInteger( | 444 EXPECT_TRUE(property->GetInteger( |
| 445 "device-scale-factor", &device_scale_factor)); | 445 "device-scale-factor", &device_scale_factor)); |
| 446 EXPECT_EQ(300, width); | 446 EXPECT_EQ(300, width); |
| 447 EXPECT_EQ(200, height); | 447 EXPECT_EQ(200, height); |
| 448 EXPECT_EQ(1250, device_scale_factor); | 448 EXPECT_EQ(1250, device_scale_factor); |
| 449 | 449 |
| 450 // The layout is swapped. | 450 // The layout is swapped. |
| 451 EXPECT_TRUE(displays->GetDictionary(key, &layout_value)); | 451 EXPECT_TRUE(displays->GetDictionary(key, &layout_value)); |
| 452 | 452 |
| 453 EXPECT_TRUE(ash::JsonToDisplayLayout(*layout_value, &stored_layout)); | 453 EXPECT_TRUE(display::JsonToDisplayLayout(*layout_value, &stored_layout)); |
| 454 ASSERT_EQ(1u, stored_layout.placement_list.size()); | 454 ASSERT_EQ(1u, stored_layout.placement_list.size()); |
| 455 const display::DisplayPlacement& stored_placement = | 455 const display::DisplayPlacement& stored_placement = |
| 456 stored_layout.placement_list[0]; | 456 stored_layout.placement_list[0]; |
| 457 EXPECT_EQ(display::DisplayPlacement::BOTTOM, stored_placement.position); | 457 EXPECT_EQ(display::DisplayPlacement::BOTTOM, stored_placement.position); |
| 458 EXPECT_EQ(-10, stored_placement.offset); | 458 EXPECT_EQ(-10, stored_placement.offset); |
| 459 EXPECT_EQ(id1, stored_placement.display_id); | 459 EXPECT_EQ(id1, stored_placement.display_id); |
| 460 EXPECT_EQ(id2, stored_placement.parent_display_id); | 460 EXPECT_EQ(id2, stored_placement.parent_display_id); |
| 461 EXPECT_EQ(id2, stored_layout.primary_id); | 461 EXPECT_EQ(id2, stored_layout.primary_id); |
| 462 | 462 |
| 463 if (true) | 463 if (true) |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 624 ASSERT_EQ(id1, display_manager()->GetSecondaryDisplay().id()); | 624 ASSERT_EQ(id1, display_manager()->GetSecondaryDisplay().id()); |
| 625 | 625 |
| 626 std::string key = base::Int64ToString(id1) + "," + base::Int64ToString(id2); | 626 std::string key = base::Int64ToString(id1) + "," + base::Int64ToString(id2); |
| 627 const base::DictionaryValue* displays = | 627 const base::DictionaryValue* displays = |
| 628 local_state()->GetDictionary(prefs::kSecondaryDisplays); | 628 local_state()->GetDictionary(prefs::kSecondaryDisplays); |
| 629 // Initial saved value is swapped. | 629 // Initial saved value is swapped. |
| 630 { | 630 { |
| 631 const base::DictionaryValue* new_value = nullptr; | 631 const base::DictionaryValue* new_value = nullptr; |
| 632 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); | 632 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); |
| 633 display::DisplayLayout stored_layout; | 633 display::DisplayLayout stored_layout; |
| 634 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 634 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 635 ASSERT_EQ(1u, stored_layout.placement_list.size()); | 635 ASSERT_EQ(1u, stored_layout.placement_list.size()); |
| 636 const display::DisplayPlacement& stored_placement = | 636 const display::DisplayPlacement& stored_placement = |
| 637 stored_layout.placement_list[0]; | 637 stored_layout.placement_list[0]; |
| 638 EXPECT_EQ(display::DisplayPlacement::LEFT, stored_placement.position); | 638 EXPECT_EQ(display::DisplayPlacement::LEFT, stored_placement.position); |
| 639 EXPECT_EQ(0, stored_placement.offset); | 639 EXPECT_EQ(0, stored_placement.offset); |
| 640 EXPECT_EQ(id1, stored_placement.display_id); | 640 EXPECT_EQ(id1, stored_placement.display_id); |
| 641 EXPECT_EQ(id2, stored_placement.parent_display_id); | 641 EXPECT_EQ(id2, stored_placement.parent_display_id); |
| 642 EXPECT_EQ(id2, stored_layout.primary_id); | 642 EXPECT_EQ(id2, stored_layout.primary_id); |
| 643 } | 643 } |
| 644 | 644 |
| 645 // Updating layout with primary swapped should save the correct value. | 645 // Updating layout with primary swapped should save the correct value. |
| 646 { | 646 { |
| 647 display_manager()->SetLayoutForCurrentDisplays( | 647 display_manager()->SetLayoutForCurrentDisplays( |
| 648 display::test::CreateDisplayLayout(display_manager(), | 648 display::test::CreateDisplayLayout(display_manager(), |
| 649 display::DisplayPlacement::TOP, 10)); | 649 display::DisplayPlacement::TOP, 10)); |
| 650 const base::DictionaryValue* new_value = nullptr; | 650 const base::DictionaryValue* new_value = nullptr; |
| 651 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); | 651 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); |
| 652 display::DisplayLayout stored_layout; | 652 display::DisplayLayout stored_layout; |
| 653 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 653 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 654 ASSERT_EQ(1u, stored_layout.placement_list.size()); | 654 ASSERT_EQ(1u, stored_layout.placement_list.size()); |
| 655 const display::DisplayPlacement& stored_placement = | 655 const display::DisplayPlacement& stored_placement = |
| 656 stored_layout.placement_list[0]; | 656 stored_layout.placement_list[0]; |
| 657 EXPECT_EQ(display::DisplayPlacement::TOP, stored_placement.position); | 657 EXPECT_EQ(display::DisplayPlacement::TOP, stored_placement.position); |
| 658 EXPECT_EQ(10, stored_placement.offset); | 658 EXPECT_EQ(10, stored_placement.offset); |
| 659 EXPECT_EQ(id1, stored_placement.display_id); | 659 EXPECT_EQ(id1, stored_placement.display_id); |
| 660 EXPECT_EQ(id2, stored_placement.parent_display_id); | 660 EXPECT_EQ(id2, stored_placement.parent_display_id); |
| 661 EXPECT_EQ(id2, stored_layout.primary_id); | 661 EXPECT_EQ(id2, stored_layout.primary_id); |
| 662 } | 662 } |
| 663 | 663 |
| 664 // Swapping primary will save the swapped value. | 664 // Swapping primary will save the swapped value. |
| 665 { | 665 { |
| 666 SwapPrimaryDisplay(); | 666 SwapPrimaryDisplay(); |
| 667 const base::DictionaryValue* new_value = nullptr; | 667 const base::DictionaryValue* new_value = nullptr; |
| 668 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); | 668 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); |
| 669 display::DisplayLayout stored_layout; | 669 display::DisplayLayout stored_layout; |
| 670 | 670 |
| 671 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); | 671 EXPECT_TRUE(displays->GetDictionary(key, &new_value)); |
| 672 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 672 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 673 ASSERT_EQ(1u, stored_layout.placement_list.size()); | 673 ASSERT_EQ(1u, stored_layout.placement_list.size()); |
| 674 const display::DisplayPlacement& stored_placement = | 674 const display::DisplayPlacement& stored_placement = |
| 675 stored_layout.placement_list[0]; | 675 stored_layout.placement_list[0]; |
| 676 EXPECT_EQ(display::DisplayPlacement::BOTTOM, stored_placement.position); | 676 EXPECT_EQ(display::DisplayPlacement::BOTTOM, stored_placement.position); |
| 677 EXPECT_EQ(-10, stored_placement.offset); | 677 EXPECT_EQ(-10, stored_placement.offset); |
| 678 EXPECT_EQ(id2, stored_placement.display_id); | 678 EXPECT_EQ(id2, stored_placement.display_id); |
| 679 EXPECT_EQ(id1, stored_placement.parent_display_id); | 679 EXPECT_EQ(id1, stored_placement.parent_display_id); |
| 680 EXPECT_EQ(id1, stored_layout.primary_id); | 680 EXPECT_EQ(id1, stored_layout.primary_id); |
| 681 } | 681 } |
| 682 } | 682 } |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1021 "400x200", | 1021 "400x200", |
| 1022 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1022 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
| 1023 | 1023 |
| 1024 const base::DictionaryValue* secondary_displays = | 1024 const base::DictionaryValue* secondary_displays = |
| 1025 local_state()->GetDictionary(prefs::kSecondaryDisplays); | 1025 local_state()->GetDictionary(prefs::kSecondaryDisplays); |
| 1026 const base::DictionaryValue* new_value = nullptr; | 1026 const base::DictionaryValue* new_value = nullptr; |
| 1027 EXPECT_TRUE(secondary_displays->GetDictionary( | 1027 EXPECT_TRUE(secondary_displays->GetDictionary( |
| 1028 display::DisplayIdListToString(list), &new_value)); | 1028 display::DisplayIdListToString(list), &new_value)); |
| 1029 | 1029 |
| 1030 display::DisplayLayout stored_layout; | 1030 display::DisplayLayout stored_layout; |
| 1031 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 1031 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 1032 EXPECT_TRUE(stored_layout.default_unified); | 1032 EXPECT_TRUE(stored_layout.default_unified); |
| 1033 EXPECT_FALSE(stored_layout.mirrored); | 1033 EXPECT_FALSE(stored_layout.mirrored); |
| 1034 | 1034 |
| 1035 const base::DictionaryValue* displays = | 1035 const base::DictionaryValue* displays = |
| 1036 local_state()->GetDictionary(prefs::kDisplayProperties); | 1036 local_state()->GetDictionary(prefs::kDisplayProperties); |
| 1037 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1037 int64_t unified_id = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1038 EXPECT_FALSE( | 1038 EXPECT_FALSE( |
| 1039 displays->GetDictionary(base::Int64ToString(unified_id), &new_value)); | 1039 displays->GetDictionary(base::Int64ToString(unified_id), &new_value)); |
| 1040 | 1040 |
| 1041 display::test::SetDisplayResolution(display_manager(), unified_id, | 1041 display::test::SetDisplayResolution(display_manager(), unified_id, |
| 1042 gfx::Size(200, 100)); | 1042 gfx::Size(200, 100)); |
| 1043 EXPECT_EQ( | 1043 EXPECT_EQ( |
| 1044 "200x100", | 1044 "200x100", |
| 1045 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); | 1045 display::Screen::GetScreen()->GetPrimaryDisplay().size().ToString()); |
| 1046 EXPECT_FALSE( | 1046 EXPECT_FALSE( |
| 1047 displays->GetDictionary(base::Int64ToString(unified_id), &new_value)); | 1047 displays->GetDictionary(base::Int64ToString(unified_id), &new_value)); |
| 1048 | 1048 |
| 1049 // Mirror mode should remember if the default mode was unified. | 1049 // Mirror mode should remember if the default mode was unified. |
| 1050 display_manager()->SetMirrorMode(true); | 1050 display_manager()->SetMirrorMode(true); |
| 1051 ASSERT_TRUE(secondary_displays->GetDictionary( | 1051 ASSERT_TRUE(secondary_displays->GetDictionary( |
| 1052 display::DisplayIdListToString(list), &new_value)); | 1052 display::DisplayIdListToString(list), &new_value)); |
| 1053 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 1053 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 1054 EXPECT_TRUE(stored_layout.default_unified); | 1054 EXPECT_TRUE(stored_layout.default_unified); |
| 1055 EXPECT_TRUE(stored_layout.mirrored); | 1055 EXPECT_TRUE(stored_layout.mirrored); |
| 1056 | 1056 |
| 1057 display_manager()->SetMirrorMode(false); | 1057 display_manager()->SetMirrorMode(false); |
| 1058 ASSERT_TRUE(secondary_displays->GetDictionary( | 1058 ASSERT_TRUE(secondary_displays->GetDictionary( |
| 1059 display::DisplayIdListToString(list), &new_value)); | 1059 display::DisplayIdListToString(list), &new_value)); |
| 1060 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 1060 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 1061 EXPECT_TRUE(stored_layout.default_unified); | 1061 EXPECT_TRUE(stored_layout.default_unified); |
| 1062 EXPECT_FALSE(stored_layout.mirrored); | 1062 EXPECT_FALSE(stored_layout.mirrored); |
| 1063 | 1063 |
| 1064 // Exit unified mode. | 1064 // Exit unified mode. |
| 1065 display_manager()->SetDefaultMultiDisplayModeForCurrentDisplays( | 1065 display_manager()->SetDefaultMultiDisplayModeForCurrentDisplays( |
| 1066 display::DisplayManager::EXTENDED); | 1066 display::DisplayManager::EXTENDED); |
| 1067 ASSERT_TRUE(secondary_displays->GetDictionary( | 1067 ASSERT_TRUE(secondary_displays->GetDictionary( |
| 1068 display::DisplayIdListToString(list), &new_value)); | 1068 display::DisplayIdListToString(list), &new_value)); |
| 1069 EXPECT_TRUE(ash::JsonToDisplayLayout(*new_value, &stored_layout)); | 1069 EXPECT_TRUE(display::JsonToDisplayLayout(*new_value, &stored_layout)); |
| 1070 EXPECT_FALSE(stored_layout.default_unified); | 1070 EXPECT_FALSE(stored_layout.default_unified); |
| 1071 EXPECT_FALSE(stored_layout.mirrored); | 1071 EXPECT_FALSE(stored_layout.mirrored); |
| 1072 } | 1072 } |
| 1073 | 1073 |
| 1074 TEST_F(DisplayPreferencesTest, RestoreUnifiedMode) { | 1074 TEST_F(DisplayPreferencesTest, RestoreUnifiedMode) { |
| 1075 int64_t id1 = display::Screen::GetScreen()->GetPrimaryDisplay().id(); | 1075 int64_t id1 = display::Screen::GetScreen()->GetPrimaryDisplay().id(); |
| 1076 display::DisplayIdList list = | 1076 display::DisplayIdList list = |
| 1077 display::test::CreateDisplayIdList2(id1, id1 + 1); | 1077 display::test::CreateDisplayIdList2(id1, id1 + 1); |
| 1078 StoreDisplayBoolPropertyForList(list, "default_unified", true); | 1078 StoreDisplayBoolPropertyForList(list, "default_unified", true); |
| 1079 StoreDisplayPropertyForList( | 1079 StoreDisplayPropertyForList( |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 | 1156 |
| 1157 EXPECT_EQ(gfx::Rect(0, 0, 200, 200), | 1157 EXPECT_EQ(gfx::Rect(0, 0, 200, 200), |
| 1158 display_manager()->GetDisplayForId(list[0]).bounds()); | 1158 display_manager()->GetDisplayForId(list[0]).bounds()); |
| 1159 EXPECT_EQ(gfx::Rect(-200, 0, 200, 200), | 1159 EXPECT_EQ(gfx::Rect(-200, 0, 200, 200), |
| 1160 display_manager()->GetDisplayForId(list[1]).bounds()); | 1160 display_manager()->GetDisplayForId(list[1]).bounds()); |
| 1161 EXPECT_EQ(gfx::Rect(-100, 200, 300, 300), | 1161 EXPECT_EQ(gfx::Rect(-100, 200, 300, 300), |
| 1162 display_manager()->GetDisplayForId(list[2]).bounds()); | 1162 display_manager()->GetDisplayForId(list[2]).bounds()); |
| 1163 } | 1163 } |
| 1164 | 1164 |
| 1165 } // namespace chromeos | 1165 } // namespace chromeos |
| OLD | NEW |