OLD | NEW |
| (Empty) |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "ash/public/cpp/mus_property_mirror_ash.h" | |
6 | |
7 #include <string> | |
8 | |
9 #include "ash/common/test/ash_test.h" | |
10 #include "ash/common/wm_window.h" | |
11 #include "ash/public/cpp/window_properties.h" | |
12 #include "base/strings/string16.h" | |
13 #include "base/strings/utf_string_conversions.h" | |
14 #include "ui/aura/client/aura_constants.h" | |
15 #include "ui/aura/window.h" | |
16 | |
17 namespace ash { | |
18 | |
19 using MusPropertyMirrorAshTest = AshTest; | |
20 | |
21 // Ensure the property mirror can copy primitive properties between windows. | |
22 TEST_F(MusPropertyMirrorAshTest, PrimitiveProperties) { | |
23 MusPropertyMirrorAsh mus_property_mirror_ash; | |
24 std::unique_ptr<WindowOwner> window_owner_1(CreateTestWindow()); | |
25 std::unique_ptr<WindowOwner> window_owner_2(CreateTestWindow()); | |
26 aura::Window* window_1 = window_owner_1->window()->aura_window(); | |
27 aura::Window* window_2 = window_owner_2->window()->aura_window(); | |
28 | |
29 EXPECT_EQ(TYPE_UNDEFINED, window_1->GetProperty(kShelfItemTypeKey)); | |
30 EXPECT_EQ(TYPE_UNDEFINED, window_2->GetProperty(kShelfItemTypeKey)); | |
31 window_1->SetProperty(kShelfItemTypeKey, static_cast<int32_t>(TYPE_APP)); | |
32 EXPECT_EQ(TYPE_APP, window_1->GetProperty(kShelfItemTypeKey)); | |
33 mus_property_mirror_ash.MirrorPropertyFromWidgetWindowToRootWindow( | |
34 window_1, window_2, kShelfItemTypeKey); | |
35 EXPECT_EQ(TYPE_APP, window_2->GetProperty(kShelfItemTypeKey)); | |
36 | |
37 EXPECT_FALSE(window_1->GetProperty(aura::client::kDrawAttentionKey)); | |
38 EXPECT_FALSE(window_2->GetProperty(aura::client::kDrawAttentionKey)); | |
39 window_1->SetProperty(aura::client::kDrawAttentionKey, true); | |
40 EXPECT_TRUE(window_1->GetProperty(aura::client::kDrawAttentionKey)); | |
41 mus_property_mirror_ash.MirrorPropertyFromWidgetWindowToRootWindow( | |
42 window_1, window_2, aura::client::kDrawAttentionKey); | |
43 EXPECT_TRUE(window_2->GetProperty(aura::client::kDrawAttentionKey)); | |
44 } | |
45 | |
46 // Ensure the property mirror can copy owned object properties between windows. | |
47 TEST_F(MusPropertyMirrorAshTest, OwnedProperties) { | |
48 MusPropertyMirrorAsh mus_property_mirror_ash; | |
49 std::unique_ptr<WindowOwner> window_owner_1(CreateTestWindow()); | |
50 std::unique_ptr<WindowOwner> window_owner_2(CreateTestWindow()); | |
51 aura::Window* window_1 = window_owner_1->window()->aura_window(); | |
52 aura::Window* window_2 = window_owner_2->window()->aura_window(); | |
53 | |
54 EXPECT_EQ(nullptr, window_1->GetProperty(aura::client::kAppIdKey)); | |
55 EXPECT_EQ(nullptr, window_2->GetProperty(aura::client::kAppIdKey)); | |
56 window_1->SetProperty(aura::client::kAppIdKey, new std::string("abc")); | |
57 EXPECT_EQ("abc", *window_1->GetProperty(aura::client::kAppIdKey)); | |
58 mus_property_mirror_ash.MirrorPropertyFromWidgetWindowToRootWindow( | |
59 window_1, window_2, aura::client::kAppIdKey); | |
60 EXPECT_EQ("abc", *window_2->GetProperty(aura::client::kAppIdKey)); | |
61 EXPECT_NE(window_1->GetProperty(aura::client::kAppIdKey), | |
62 window_2->GetProperty(aura::client::kAppIdKey)); | |
63 | |
64 EXPECT_EQ(nullptr, window_1->GetProperty(aura::client::kTitleKey)); | |
65 EXPECT_EQ(nullptr, window_2->GetProperty(aura::client::kTitleKey)); | |
66 window_1->SetProperty(aura::client::kTitleKey, | |
67 new base::string16(base::ASCIIToUTF16("def"))); | |
68 EXPECT_EQ(base::ASCIIToUTF16("def"), | |
69 *window_1->GetProperty(aura::client::kTitleKey)); | |
70 mus_property_mirror_ash.MirrorPropertyFromWidgetWindowToRootWindow( | |
71 window_1, window_2, aura::client::kTitleKey); | |
72 EXPECT_EQ(base::ASCIIToUTF16("def"), | |
73 *window_2->GetProperty(aura::client::kTitleKey)); | |
74 EXPECT_NE(window_1->GetProperty(aura::client::kTitleKey), | |
75 window_2->GetProperty(aura::client::kTitleKey)); | |
76 | |
77 window_1->ClearProperty(aura::client::kWindowIconKey); | |
78 EXPECT_EQ(nullptr, window_1->GetProperty(aura::client::kWindowIconKey)); | |
79 window_2->ClearProperty(aura::client::kWindowIconKey); | |
80 EXPECT_EQ(nullptr, window_2->GetProperty(aura::client::kWindowIconKey)); | |
81 window_1->SetProperty(aura::client::kWindowIconKey, new gfx::ImageSkia()); | |
82 EXPECT_NE(nullptr, window_1->GetProperty(aura::client::kWindowIconKey)); | |
83 mus_property_mirror_ash.MirrorPropertyFromWidgetWindowToRootWindow( | |
84 window_1, window_2, aura::client::kWindowIconKey); | |
85 EXPECT_NE(nullptr, window_2->GetProperty(aura::client::kWindowIconKey)); | |
86 EXPECT_NE(window_1->GetProperty(aura::client::kWindowIconKey), | |
87 window_2->GetProperty(aura::client::kWindowIconKey)); | |
88 } | |
89 | |
90 } // namespace ash | |
OLD | NEW |