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

Side by Side Diff: ui/display/chromeos/apply_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/apply_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 ApplyContentProtectionTaskTest : public testing::Test {
37 public:
38 enum Response {
39 ERROR,
40 SUCCESS,
41 NOT_CALLED,
42 };
43
44 ApplyContentProtectionTaskTest()
45 : response_(NOT_CALLED), display_delegate_(&log_) {}
46 ~ApplyContentProtectionTaskTest() override {}
47
48 void ResponseCallback(bool success) { response_ = success ? SUCCESS : ERROR; }
49
50 protected:
51 Response response_;
52 ActionLogger log_;
53 TestNativeDisplayDelegate display_delegate_;
54
55 private:
56 DISALLOW_COPY_AND_ASSIGN(ApplyContentProtectionTaskTest);
57 };
58
59 TEST_F(ApplyContentProtectionTaskTest, ApplyWithNoHDCPCapableDisplay) {
60 ScopedVector<DisplaySnapshot> displays;
61 displays.push_back(
62 CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_INTERNAL));
63 TestDisplayLayoutManager layout_manager(std::move(displays),
64 MULTIPLE_DISPLAY_STATE_SINGLE);
65
66 DisplayConfigurator::ContentProtections request;
67 request[1] = CONTENT_PROTECTION_METHOD_HDCP;
68 ApplyContentProtectionTask task(
69 &layout_manager, &display_delegate_, request,
70 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
71 base::Unretained(this)));
72 task.Run();
73
74 EXPECT_EQ(SUCCESS, response_);
75 EXPECT_EQ(kNoActions, log_.GetActionsAndClear());
76 }
77
78 TEST_F(ApplyContentProtectionTaskTest, ApplyWithHDMIDisplay) {
79 ScopedVector<DisplaySnapshot> displays;
80 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
81 TestDisplayLayoutManager layout_manager(std::move(displays),
82 MULTIPLE_DISPLAY_STATE_SINGLE);
83
84 DisplayConfigurator::ContentProtections request;
85 request[1] = CONTENT_PROTECTION_METHOD_HDCP;
86 ApplyContentProtectionTask task(
87 &layout_manager, &display_delegate_, request,
88 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
89 base::Unretained(this)));
90 task.Run();
91
92 EXPECT_EQ(SUCCESS, response_);
93 EXPECT_EQ(
94 JoinActions(GetSetHDCPStateAction(*layout_manager.GetDisplayStates()[0],
95 HDCP_STATE_DESIRED).c_str(),
96 NULL),
97 log_.GetActionsAndClear());
98 }
99
100 TEST_F(ApplyContentProtectionTaskTest, ApplyWithUnknownDisplay) {
101 ScopedVector<DisplaySnapshot> displays;
102 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_UNKNOWN));
103 TestDisplayLayoutManager layout_manager(std::move(displays),
104 MULTIPLE_DISPLAY_STATE_SINGLE);
105
106 DisplayConfigurator::ContentProtections request;
107 request[1] = CONTENT_PROTECTION_METHOD_HDCP;
108 ApplyContentProtectionTask task(
109 &layout_manager, &display_delegate_, request,
110 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
111 base::Unretained(this)));
112 task.Run();
113
114 EXPECT_EQ(ERROR, response_);
115 EXPECT_EQ(kNoActions, log_.GetActionsAndClear());
116 }
117
118 TEST_F(ApplyContentProtectionTaskTest, FailGettingHDCPState) {
119 ScopedVector<DisplaySnapshot> displays;
120 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
121 TestDisplayLayoutManager layout_manager(std::move(displays),
122 MULTIPLE_DISPLAY_STATE_SINGLE);
123 display_delegate_.set_get_hdcp_state_expectation(false);
124
125 DisplayConfigurator::ContentProtections request;
126 request[1] = CONTENT_PROTECTION_METHOD_HDCP;
127 ApplyContentProtectionTask task(
128 &layout_manager, &display_delegate_, request,
129 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
130 base::Unretained(this)));
131 task.Run();
132
133 EXPECT_EQ(ERROR, response_);
134 EXPECT_EQ(kNoActions, log_.GetActionsAndClear());
135 }
136
137 TEST_F(ApplyContentProtectionTaskTest, FailSettingHDCPState) {
138 ScopedVector<DisplaySnapshot> displays;
139 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
140 TestDisplayLayoutManager layout_manager(std::move(displays),
141 MULTIPLE_DISPLAY_STATE_SINGLE);
142 display_delegate_.set_set_hdcp_state_expectation(false);
143
144 DisplayConfigurator::ContentProtections request;
145 request[1] = CONTENT_PROTECTION_METHOD_HDCP;
146 ApplyContentProtectionTask task(
147 &layout_manager, &display_delegate_, request,
148 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
149 base::Unretained(this)));
150 task.Run();
151
152 EXPECT_EQ(ERROR, response_);
153 EXPECT_EQ(
154 JoinActions(GetSetHDCPStateAction(*layout_manager.GetDisplayStates()[0],
155 HDCP_STATE_DESIRED).c_str(),
156 NULL),
157 log_.GetActionsAndClear());
158 }
159
160 TEST_F(ApplyContentProtectionTaskTest, ApplyNoopProtection) {
161 ScopedVector<DisplaySnapshot> displays;
162 displays.push_back(CreateDisplaySnapshot(1, DISPLAY_CONNECTION_TYPE_HDMI));
163 TestDisplayLayoutManager layout_manager(std::move(displays),
164 MULTIPLE_DISPLAY_STATE_SINGLE);
165 display_delegate_.set_hdcp_state(HDCP_STATE_UNDESIRED);
166
167 DisplayConfigurator::ContentProtections request;
168 request[1] = CONTENT_PROTECTION_METHOD_NONE;
169 ApplyContentProtectionTask task(
170 &layout_manager, &display_delegate_, request,
171 base::Bind(&ApplyContentProtectionTaskTest::ResponseCallback,
172 base::Unretained(this)));
173 task.Run();
174
175 EXPECT_EQ(SUCCESS, response_);
176 EXPECT_EQ(kNoActions, log_.GetActionsAndClear());
177 }
178
179 } // namespace test
180 } // namespace ui
OLDNEW
« no previous file with comments | « ui/display/chromeos/apply_content_protection_task.cc ('k') | ui/display/chromeos/configure_displays_task.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698