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 "base/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
6 #include "content/public/test/test_utils.h" | 6 #include "content/public/test/test_utils.h" |
7 #include "extensions/browser/api/display_source/display_source_connection_delega
te.h" | 7 #include "extensions/browser/api/display_source/display_source_connection_delega
te.h" |
8 #include "extensions/browser/api/display_source/display_source_connection_delega
te_factory.h" | 8 #include "extensions/browser/api/display_source/display_source_connection_delega
te_factory.h" |
9 #include "extensions/shell/test/shell_apitest.h" | 9 #include "extensions/shell/test/shell_apitest.h" |
10 | 10 |
11 namespace extensions { | 11 namespace extensions { |
12 | 12 |
13 using api::display_source::SinkInfo; | 13 using api::display_source::SinkInfo; |
14 using api::display_source::SinkState; | 14 using api::display_source::SinkState; |
15 using api::display_source::SINK_STATE_DISCONNECTED; | 15 using api::display_source::SINK_STATE_DISCONNECTED; |
16 using api::display_source::AUTHENTICATION_METHOD_PBC; | 16 using api::display_source::AUTHENTICATION_METHOD_PBC; |
17 | 17 |
18 namespace { | 18 namespace { |
19 | 19 |
20 DisplaySourceSinkInfoPtr CreateSinkInfoPtr(int id, | 20 DisplaySourceSinkInfo CreateSinkInfoPtr(int id, |
21 const std::string& name, | 21 const std::string& name, |
22 SinkState state) { | 22 SinkState state) { |
23 DisplaySourceSinkInfoPtr ptr(new SinkInfo()); | 23 DisplaySourceSinkInfo info; |
24 ptr->id = id; | 24 info.id = id; |
25 ptr->name = name; | 25 info.name = name; |
26 ptr->state = state; | 26 info.state = state; |
27 | 27 |
28 return ptr; | 28 return info; |
29 } | 29 } |
30 | 30 |
31 } // namespace | 31 } // namespace |
32 | 32 |
33 class MockDisplaySourceConnectionDelegate | 33 class MockDisplaySourceConnectionDelegate |
34 : public DisplaySourceConnectionDelegate { | 34 : public DisplaySourceConnectionDelegate { |
35 public: | 35 public: |
36 DisplaySourceSinkInfoList last_found_sinks() const override { return sinks_; } | 36 const DisplaySourceSinkInfoList& last_found_sinks() const override { |
| 37 return sinks_; |
| 38 } |
37 const Connection* connection() const override { return nullptr; } | 39 const Connection* connection() const override { return nullptr; } |
38 void GetAvailableSinks(const SinkInfoListCallback& sinks_callback, | 40 void GetAvailableSinks(const SinkInfoListCallback& sinks_callback, |
39 const StringCallback& failure_callback) override { | 41 const StringCallback& failure_callback) override { |
40 AddSink(CreateSinkInfoPtr(1, "sink 1", SINK_STATE_DISCONNECTED)); | 42 AddSink(CreateSinkInfoPtr(1, "sink 1", SINK_STATE_DISCONNECTED)); |
41 sinks_callback.Run(sinks_); | 43 sinks_callback.Run(sinks_); |
42 } | 44 } |
43 | 45 |
44 void RequestAuthentication(int sink_id, | 46 void RequestAuthentication(int sink_id, |
45 const AuthInfoCallback& auth_info_callback, | 47 const AuthInfoCallback& auth_info_callback, |
46 const StringCallback& failure_callback) override { | 48 const StringCallback& failure_callback) override { |
47 DisplaySourceAuthInfo info; | 49 DisplaySourceAuthInfo info; |
48 info.method = AUTHENTICATION_METHOD_PBC; | 50 info.method = AUTHENTICATION_METHOD_PBC; |
49 auth_info_callback.Run(info); | 51 auth_info_callback.Run(info); |
50 } | 52 } |
51 | 53 |
52 void Connect(int sink_id, | 54 void Connect(int sink_id, |
53 const DisplaySourceAuthInfo& auth_info, | 55 const DisplaySourceAuthInfo& auth_info, |
54 const StringCallback& failure_callback) override {} | 56 const StringCallback& failure_callback) override {} |
55 | 57 |
56 void Disconnect(const StringCallback& failure_callback) override {} | 58 void Disconnect(const StringCallback& failure_callback) override {} |
57 | 59 |
58 void StartWatchingAvailableSinks() override { | 60 void StartWatchingAvailableSinks() override { |
59 AddSink(CreateSinkInfoPtr(2, "sink 2", SINK_STATE_DISCONNECTED)); | 61 AddSink(CreateSinkInfoPtr(2, "sink 2", SINK_STATE_DISCONNECTED)); |
60 } | 62 } |
61 | 63 |
62 void StopWatchingAvailableSinks() override {} | 64 void StopWatchingAvailableSinks() override {} |
63 | 65 |
64 private: | 66 private: |
65 void AddSink(DisplaySourceSinkInfoPtr sink) { | 67 void AddSink(DisplaySourceSinkInfo sink) { |
66 sinks_.push_back(sink); | 68 sinks_.push_back(std::move(sink)); |
67 FOR_EACH_OBSERVER(DisplaySourceConnectionDelegate::Observer, observers_, | 69 FOR_EACH_OBSERVER(DisplaySourceConnectionDelegate::Observer, observers_, |
68 OnSinksUpdated(sinks_)); | 70 OnSinksUpdated(sinks_)); |
69 } | 71 } |
70 | 72 |
71 DisplaySourceSinkInfoList sinks_; | 73 DisplaySourceSinkInfoList sinks_; |
72 }; | 74 }; |
73 | 75 |
74 class DisplaySourceApiTest : public ShellApiTest { | 76 class DisplaySourceApiTest : public ShellApiTest { |
75 public: | 77 public: |
76 DisplaySourceApiTest() = default; | 78 DisplaySourceApiTest() = default; |
(...skipping 11 matching lines...) Expand all Loading... |
88 browser_context(), &CreateMockDelegate); | 90 browser_context(), &CreateMockDelegate); |
89 content::RunAllPendingInMessageLoop(); | 91 content::RunAllPendingInMessageLoop(); |
90 } | 92 } |
91 }; | 93 }; |
92 | 94 |
93 IN_PROC_BROWSER_TEST_F(DisplaySourceApiTest, DisplaySourceExtension) { | 95 IN_PROC_BROWSER_TEST_F(DisplaySourceApiTest, DisplaySourceExtension) { |
94 ASSERT_TRUE(RunAppTest("api_test/display_source/api")) << message_; | 96 ASSERT_TRUE(RunAppTest("api_test/display_source/api")) << message_; |
95 } | 97 } |
96 | 98 |
97 } // namespace extensions | 99 } // namespace extensions |
OLD | NEW |