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

Side by Side Diff: ui/display/chromeos/query_content_protection_task_unittest.cc

Issue 2540313002: Split //ui/display and create //ui/display/manager. (Closed)
Patch Set: Cleanup export header. Created 4 years 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "ui/display/chromeos/query_content_protection_task.h"
6
7 #include <stdint.h>
8 #include <utility>
9
10 #include "base/bind.h"
11 #include "base/macros.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13 #include "ui/display/chromeos/display_layout_manager.h"
14 #include "ui/display/chromeos/test/action_logger_util.h"
15 #include "ui/display/chromeos/test/test_display_layout_manager.h"
16 #include "ui/display/chromeos/test/test_native_display_delegate.h"
17 #include "ui/display/fake_display_snapshot.h"
18
19 namespace ui {
20 namespace test {
21
22 namespace {
23
24 std::unique_ptr<DisplaySnapshot> CreateDisplaySnapshot(
25 int64_t id,
26 DisplayConnectionType type) {
27 return display::FakeDisplaySnapshot::Builder()
28 .SetId(id)
29 .SetNativeMode(gfx::Size(1024, 768))
30 .SetType(type)
31 .Build();
32 }
33
34 } // namespace
35
36 class QueryContentProtectionTaskTest : public testing::Test {
37 public:
38 QueryContentProtectionTaskTest()
39 : display_delegate_(&log_), has_response_(false) {}
40 ~QueryContentProtectionTaskTest() override {}
41
42 void ResponseCallback(QueryContentProtectionTask::Response response) {
43 has_response_ = true;
44 response_ = response;
45 }
46
47 protected:
48 ActionLogger log_;
49 TestNativeDisplayDelegate display_delegate_;
50
51 bool has_response_;
52 QueryContentProtectionTask::Response response_;
53
54 private:
55 DISALLOW_COPY_AND_ASSIGN(QueryContentProtectionTaskTest);
56 };
57
58 TEST_F(QueryContentProtectionTaskTest, QueryWithNoHDCPCapableDisplay) {
59 ScopedVector<DisplaySnapshot> displays;
60 displays.push_back(
61 CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_INTERNAL));
62 TestDisplayLayoutManager layout_manager(std::move(displays),
63 MULTIPLE_DISPLAY_STATE_SINGLE);
64
65 QueryContentProtectionTask task(
66 &layout_manager, &display_delegate_, 1,
67 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
68 base::Unretained(this)));
69 task.Run();
70
71 EXPECT_TRUE(has_response_);
72 EXPECT_TRUE(response_.success);
73 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_INTERNAL, response_.link_mask);
74 EXPECT_EQ(0u, response_.enabled);
75 EXPECT_EQ(0u, response_.unfulfilled);
76 }
77
78 TEST_F(QueryContentProtectionTaskTest, QueryWithUnknownDisplay) {
79 ScopedVector<DisplaySnapshot> displays;
80 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_UNKNOWN));
81 TestDisplayLayoutManager layout_manager(std::move(displays),
82 MULTIPLE_DISPLAY_STATE_SINGLE);
83
84 QueryContentProtectionTask task(
85 &layout_manager, &display_delegate_, 1,
86 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
87 base::Unretained(this)));
88 task.Run();
89
90 EXPECT_TRUE(has_response_);
91 EXPECT_FALSE(response_.success);
92 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_UNKNOWN, response_.link_mask);
93 EXPECT_EQ(0u, response_.enabled);
94 EXPECT_EQ(0u, response_.unfulfilled);
95 }
96
97 TEST_F(QueryContentProtectionTaskTest, FailQueryWithHDMIDisplay) {
98 ScopedVector<DisplaySnapshot> displays;
99 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
100 TestDisplayLayoutManager layout_manager(std::move(displays),
101 MULTIPLE_DISPLAY_STATE_SINGLE);
102 display_delegate_.set_get_hdcp_state_expectation(false);
103
104 QueryContentProtectionTask task(
105 &layout_manager, &display_delegate_, 1,
106 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
107 base::Unretained(this)));
108 task.Run();
109
110 EXPECT_TRUE(has_response_);
111 EXPECT_FALSE(response_.success);
112 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask);
113 }
114
115 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndUnfulfilled) {
116 ScopedVector<DisplaySnapshot> displays;
117 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
118 TestDisplayLayoutManager layout_manager(std::move(displays),
119 MULTIPLE_DISPLAY_STATE_SINGLE);
120
121 QueryContentProtectionTask task(
122 &layout_manager, &display_delegate_, 1,
123 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
124 base::Unretained(this)));
125 task.Run();
126
127 EXPECT_TRUE(has_response_);
128 EXPECT_TRUE(response_.success);
129 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask);
130 EXPECT_EQ(0u, response_.enabled);
131 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled);
132 }
133
134 TEST_F(QueryContentProtectionTaskTest, QueryWithHDMIDisplayAndFulfilled) {
135 ScopedVector<DisplaySnapshot> displays;
136 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
137 TestDisplayLayoutManager layout_manager(std::move(displays),
138 MULTIPLE_DISPLAY_STATE_SINGLE);
139 display_delegate_.set_hdcp_state(HDCP_STATE_ENABLED);
140
141 QueryContentProtectionTask task(
142 &layout_manager, &display_delegate_, 1,
143 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
144 base::Unretained(this)));
145 task.Run();
146
147 EXPECT_TRUE(has_response_);
148 EXPECT_TRUE(response_.success);
149 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask);
150 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.enabled);
151 EXPECT_EQ(0u, response_.unfulfilled);
152 }
153
154 TEST_F(QueryContentProtectionTaskTest, QueryWith2HDCPDisplays) {
155 ScopedVector<DisplaySnapshot> displays;
156 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
157 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI));
158 TestDisplayLayoutManager layout_manager(std::move(displays),
159 MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED);
160
161 QueryContentProtectionTask task(
162 &layout_manager, &display_delegate_, 1,
163 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
164 base::Unretained(this)));
165 task.Run();
166
167 EXPECT_TRUE(has_response_);
168 EXPECT_TRUE(response_.success);
169 EXPECT_EQ(DISPLAY_CONNECTION_TYPE_HDMI, response_.link_mask);
170 EXPECT_EQ(0u, response_.enabled);
171 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled);
172 }
173
174 TEST_F(QueryContentProtectionTaskTest, QueryWithMirrorHDCPDisplays) {
175 ScopedVector<DisplaySnapshot> displays;
176 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
177 displays.push_back(CreateDisplaySnapshot(2, DISPLAY_CONNECTION_TYPE_DVI));
178 TestDisplayLayoutManager layout_manager(std::move(displays),
179 MULTIPLE_DISPLAY_STATE_DUAL_MIRROR);
180
181 QueryContentProtectionTask task(
182 &layout_manager, &display_delegate_, 1,
183 base::Bind(&QueryContentProtectionTaskTest::ResponseCallback,
184 base::Unretained(this)));
185 task.Run();
186
187 EXPECT_TRUE(has_response_);
188 EXPECT_TRUE(response_.success);
189 EXPECT_EQ(static_cast<uint32_t>(DISPLAY_CONNECTION_TYPE_HDMI |
190 DISPLAY_CONNECTION_TYPE_DVI),
191 response_.link_mask);
192 EXPECT_EQ(0u, response_.enabled);
193 EXPECT_EQ(CONTENT_PROTECTION_METHOD_HDCP, response_.unfulfilled);
194 }
195
196 } // namespace test
197 } // namespace ui
OLDNEW
« no previous file with comments | « ui/display/chromeos/query_content_protection_task.cc ('k') | ui/display/chromeos/test/action_logger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698