OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "ui/display/chromeos/query_content_protection_task.h" |
| 6 |
5 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> |
6 | 9 |
7 #include "base/bind.h" | 10 #include "base/bind.h" |
8 #include "base/macros.h" | 11 #include "base/macros.h" |
9 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
10 #include "ui/display/chromeos/display_layout_manager.h" | 13 #include "ui/display/chromeos/display_layout_manager.h" |
11 #include "ui/display/chromeos/query_content_protection_task.h" | |
12 #include "ui/display/chromeos/test/action_logger_util.h" | 14 #include "ui/display/chromeos/test/action_logger_util.h" |
13 #include "ui/display/chromeos/test/test_display_layout_manager.h" | 15 #include "ui/display/chromeos/test/test_display_layout_manager.h" |
14 #include "ui/display/chromeos/test/test_display_snapshot.h" | 16 #include "ui/display/chromeos/test/test_display_snapshot.h" |
15 #include "ui/display/chromeos/test/test_native_display_delegate.h" | 17 #include "ui/display/chromeos/test/test_native_display_delegate.h" |
16 | 18 |
17 namespace ui { | 19 namespace ui { |
18 namespace test { | 20 namespace test { |
19 | 21 |
20 namespace { | 22 namespace { |
21 | 23 |
22 scoped_ptr<DisplaySnapshot> CreateDisplaySnapshot(int64_t id, | 24 scoped_ptr<DisplaySnapshot> CreateDisplaySnapshot(int64_t id, |
23 DisplayConnectionType type) { | 25 DisplayConnectionType type) { |
24 scoped_ptr<TestDisplaySnapshot> display(new TestDisplaySnapshot()); | 26 scoped_ptr<TestDisplaySnapshot> display(new TestDisplaySnapshot()); |
25 display->set_display_id(id); | 27 display->set_display_id(id); |
26 display->set_type(type); | 28 display->set_type(type); |
27 | 29 |
28 return display.Pass(); | 30 return std::move(display); |
29 } | 31 } |
30 | 32 |
31 } // namespace | 33 } // namespace |
32 | 34 |
33 class QueryContentProtectionTaskTest : public testing::Test { | 35 class QueryContentProtectionTaskTest : public testing::Test { |
34 public: | 36 public: |
35 QueryContentProtectionTaskTest() | 37 QueryContentProtectionTaskTest() |
36 : display_delegate_(&log_), has_response_(false) {} | 38 : display_delegate_(&log_), has_response_(false) {} |
37 ~QueryContentProtectionTaskTest() override {} | 39 ~QueryContentProtectionTaskTest() override {} |
38 | 40 |
(...skipping 10 matching lines...) Expand all Loading... |
49 QueryContentProtectionTask::Response response_; | 51 QueryContentProtectionTask::Response response_; |
50 | 52 |
51 private: | 53 private: |
52 DISALLOW_COPY_AND_ASSIGN(QueryContentProtectionTaskTest); | 54 DISALLOW_COPY_AND_ASSIGN(QueryContentProtectionTaskTest); |
53 }; | 55 }; |
54 | 56 |
55 TEST_F(QueryContentProtectionTaskTest, QueryWithNoHDCPCapableDisplay) { | 57 TEST_F(QueryContentProtectionTaskTest, QueryWithNoHDCPCapableDisplay) { |
56 ScopedVector<DisplaySnapshot> displays; | 58 ScopedVector<DisplaySnapshot> displays; |
57 displays.push_back( | 59 displays.push_back( |
58 CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_INTERNAL)); | 60 CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_INTERNAL)); |
59 TestDisplayLayoutManager layout_manager(displays.Pass(), | 61 TestDisplayLayoutManager layout_manager(std::move(displays), |
60 MULTIPLE_DISPLAY_STATE_SINGLE); | 62 MULTIPLE_DISPLAY_STATE_SINGLE); |
61 | 63 |
62 QueryContentProtectionTask task( | 64 QueryContentProtectionTask task( |
63 &layout_manager, &display_delegate_, 1, | 65 &layout_manager, &display_delegate_, 1, |
64 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 66 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
65 base::Unretained(this))); | 67 base::Unretained(this))); |
66 task.Run(); | 68 task.Run(); |
67 | 69 |
68 EXPECT_TRUE(has_response_); | 70 EXPECT_TRUE(has_response_); |
69 EXPECT_TRUE(response_.success); | 71 EXPECT_TRUE(response_.success); |
70 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_INTERNAL, response_.link_mask); | 72 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_INTERNAL, response_.link_mask); |
71 EXPECT_EQ(0u, response_.enabled); | 73 EXPECT_EQ(0u, response_.enabled); |
72 EXPECT_EQ(0u, response_.unfulfilled); | 74 EXPECT_EQ(0u, response_.unfulfilled); |
73 } | 75 } |
74 | 76 |
75 TEST_F(QueryContentProtectionTaskTest, QueryWithUnknownDisplay) { | 77 TEST_F(QueryContentProtectionTaskTest, QueryWithUnknownDisplay) { |
76 ScopedVector<DisplaySnapshot> displays; | 78 ScopedVector<DisplaySnapshot> displays; |
77 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_UNKNOWN)); | 79 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_UNKNOWN)); |
78 TestDisplayLayoutManager layout_manager(displays.Pass(), | 80 TestDisplayLayoutManager layout_manager(std::move(displays), |
79 MULTIPLE_DISPLAY_STATE_SINGLE); | 81 MULTIPLE_DISPLAY_STATE_SINGLE); |
80 | 82 |
81 QueryContentProtectionTask task( | 83 QueryContentProtectionTask task( |
82 &layout_manager, &display_delegate_, 1, | 84 &layout_manager, &display_delegate_, 1, |
83 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 85 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
84 base::Unretained(this))); | 86 base::Unretained(this))); |
85 task.Run(); | 87 task.Run(); |
86 | 88 |
87 EXPECT_TRUE(has_response_); | 89 EXPECT_TRUE(has_response_); |
88 EXPECT_FALSE(response_.success); | 90 EXPECT_FALSE(response_.success); |
89 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_UNKNOWN, response_.link_mask); | 91 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_UNKNOWN, response_.link_mask); |
90 EXPECT_EQ(0u, response_.enabled); | 92 EXPECT_EQ(0u, response_.enabled); |
91 EXPECT_EQ(0u, response_.unfulfilled); | 93 EXPECT_EQ(0u, response_.unfulfilled); |
92 } | 94 } |
93 | 95 |
94 TEST_F(QueryContentProtectionTaskTest, FailQueryWithHDMIDisplay) { | 96 TEST_F(QueryContentProtectionTaskTest, FailQueryWithHDMIDisplay) { |
95 ScopedVector<DisplaySnapshot> displays; | 97 ScopedVector<DisplaySnapshot> displays; |
96 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); | 98 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); |
97 TestDisplayLayoutManager layout_manager(displays.Pass(), | 99 TestDisplayLayoutManager layout_manager(std::move(displays), |
98 MULTIPLE_DISPLAY_STATE_SINGLE); | 100 MULTIPLE_DISPLAY_STATE_SINGLE); |
99 display_delegate_.set_get_hdcp_state_expectation(false); | 101 display_delegate_.set_get_hdcp_state_expectation(false); |
100 | 102 |
101 QueryContentProtectionTask task( | 103 QueryContentProtectionTask task( |
102 &layout_manager, &display_delegate_, 1, | 104 &layout_manager, &display_delegate_, 1, |
103 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 105 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
104 base::Unretained(this))); | 106 base::Unretained(this))); |
105 task.Run(); | 107 task.Run(); |
106 | 108 |
107 EXPECT_TRUE(has_response_); | 109 EXPECT_TRUE(has_response_); |
108 EXPECT_FALSE(response_.success); | 110 EXPECT_FALSE(response_.success); |
109 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); | 111 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); |
110 } | 112 } |
111 | 113 |
112 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndUnfulfilled) { | 114 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndUnfulfilled) { |
113 ScopedVector<DisplaySnapshot> displays; | 115 ScopedVector<DisplaySnapshot> displays; |
114 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); | 116 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); |
115 TestDisplayLayoutManager layout_manager(displays.Pass(), | 117 TestDisplayLayoutManager layout_manager(std::move(displays), |
116 MULTIPLE_DISPLAY_STATE_SINGLE); | 118 MULTIPLE_DISPLAY_STATE_SINGLE); |
117 | 119 |
118 QueryContentProtectionTask task( | 120 QueryContentProtectionTask task( |
119 &layout_manager, &display_delegate_, 1, | 121 &layout_manager, &display_delegate_, 1, |
120 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 122 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
121 base::Unretained(this))); | 123 base::Unretained(this))); |
122 task.Run(); | 124 task.Run(); |
123 | 125 |
124 EXPECT_TRUE(has_response_); | 126 EXPECT_TRUE(has_response_); |
125 EXPECT_TRUE(response_.success); | 127 EXPECT_TRUE(response_.success); |
126 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); | 128 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); |
127 EXPECT_EQ(0u, response_.enabled); | 129 EXPECT_EQ(0u, response_.enabled); |
128 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); | 130 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); |
129 } | 131 } |
130 | 132 |
131 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndFulfilled) { | 133 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndFulfilled) { |
132 ScopedVector<DisplaySnapshot> displays; | 134 ScopedVector<DisplaySnapshot> displays; |
133 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); | 135 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); |
134 TestDisplayLayoutManager layout_manager(displays.Pass(), | 136 TestDisplayLayoutManager layout_manager(std::move(displays), |
135 MULTIPLE_DISPLAY_STATE_SINGLE); | 137 MULTIPLE_DISPLAY_STATE_SINGLE); |
136 display_delegate_.set_hdcp_state(HDCP_STATE_ENABLED); | 138 display_delegate_.set_hdcp_state(HDCP_STATE_ENABLED); |
137 | 139 |
138 QueryContentProtectionTask task( | 140 QueryContentProtectionTask task( |
139 &layout_manager, &display_delegate_, 1, | 141 &layout_manager, &display_delegate_, 1, |
140 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 142 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
141 base::Unretained(this))); | 143 base::Unretained(this))); |
142 task.Run(); | 144 task.Run(); |
143 | 145 |
144 EXPECT_TRUE(has_response_); | 146 EXPECT_TRUE(has_response_); |
145 EXPECT_TRUE(response_.success); | 147 EXPECT_TRUE(response_.success); |
146 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); | 148 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); |
147 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.enabled); | 149 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.enabled); |
148 EXPECT_EQ(0u, response_.unfulfilled); | 150 EXPECT_EQ(0u, response_.unfulfilled); |
149 } | 151 } |
150 | 152 |
151 TEST_F(QueryContentProtectionTaskTest, QueryWith2HDCPDisplays) { | 153 TEST_F(QueryContentProtectionTaskTest, QueryWith2HDCPDisplays) { |
152 ScopedVector<DisplaySnapshot> displays; | 154 ScopedVector<DisplaySnapshot> displays; |
153 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); | 155 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); |
154 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI)); | 156 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI)); |
155 TestDisplayLayoutManager layout_manager(displays.Pass(), | 157 TestDisplayLayoutManager layout_manager(std::move(displays), |
156 MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED); | 158 MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED); |
157 | 159 |
158 QueryContentProtectionTask task( | 160 QueryContentProtectionTask task( |
159 &layout_manager, &display_delegate_, 1, | 161 &layout_manager, &display_delegate_, 1, |
160 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 162 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
161 base::Unretained(this))); | 163 base::Unretained(this))); |
162 task.Run(); | 164 task.Run(); |
163 | 165 |
164 EXPECT_TRUE(has_response_); | 166 EXPECT_TRUE(has_response_); |
165 EXPECT_TRUE(response_.success); | 167 EXPECT_TRUE(response_.success); |
166 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); | 168 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask); |
167 EXPECT_EQ(0u, response_.enabled); | 169 EXPECT_EQ(0u, response_.enabled); |
168 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); | 170 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); |
169 } | 171 } |
170 | 172 |
171 TEST_F(QueryContentProtectionTaskTest, QueryWithMirrorHDCPDisplays) { | 173 TEST_F(QueryContentProtectionTaskTest, QueryWithMirrorHDCPDisplays) { |
172 ScopedVector<DisplaySnapshot> displays; | 174 ScopedVector<DisplaySnapshot> displays; |
173 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); | 175 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI)); |
174 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI)); | 176 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI)); |
175 TestDisplayLayoutManager layout_manager(displays.Pass(), | 177 TestDisplayLayoutManager layout_manager(std::move(displays), |
176 MULTIPLE_DISPLAY_STATE_DUAL_MIRROR); | 178 MULTIPLE_DISPLAY_STATE_DUAL_MIRROR); |
177 | 179 |
178 QueryContentProtectionTask task( | 180 QueryContentProtectionTask task( |
179 &layout_manager, &display_delegate_, 1, | 181 &layout_manager, &display_delegate_, 1, |
180 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, | 182 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback, |
181 base::Unretained(this))); | 183 base::Unretained(this))); |
182 task.Run(); | 184 task.Run(); |
183 | 185 |
184 EXPECT_TRUE(has_response_); | 186 EXPECT_TRUE(has_response_); |
185 EXPECT_TRUE(response_.success); | 187 EXPECT_TRUE(response_.success); |
186 EXPECT_EQ(static_cast<uint32_t>(DISPLAY_CONNECTION_TYPE_HDMI | | 188 EXPECT_EQ(static_cast<uint32_t>(DISPLAY_CONNECTION_TYPE_HDMI | |
187 DISPLAY_CONNECTION_TYPE_DVI), | 189 DISPLAY_CONNECTION_TYPE_DVI), |
188 response_.link_mask); | 190 response_.link_mask); |
189 EXPECT_EQ(0u, response_.enabled); | 191 EXPECT_EQ(0u, response_.enabled); |
190 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); | 192 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled); |
191 } | 193 } |
192 | 194 |
193 } // namespace test | 195 } // namespace test |
194 } // namespace ui | 196 } // namespace ui |
OLD | NEW |