OLD | NEW |
---|---|
(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 "base/memory/scoped_ptr.h" | |
6 #include "content/public/test/test_utils.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" | |
9 #include "extensions/shell/test/shell_apitest.h" | |
10 | |
11 namespace extensions { | |
12 | |
13 namespace { | |
14 | |
15 SinkInfoPtr CreateSinkInfoPtr( | |
16 int id, | |
17 const std::string& name, | |
18 api::display_source::SinkState state = | |
Reilly Grant (use Gerrit)
2015/11/10 18:51:34
The style guide generally recommends against defau
Mikhail
2015/11/11 13:36:04
Done.
| |
19 api::display_source::SINK_STATE_DISCONNECTED) { | |
20 SinkInfoPtr ptr(new api::display_source::SinkInfo()); | |
21 ptr->id = id; | |
22 ptr->name = name; | |
23 ptr->state = state; | |
24 | |
25 return ptr; | |
26 } | |
27 | |
28 } // namespace | |
29 | |
30 class MockDisplaySourceConnectionDelegate | |
31 : public DisplaySourceConnectionDelegate { | |
32 public: | |
33 SinkInfoList last_found_sinks() const override { return sinks_; } | |
34 const Connection* connection() const override { return nullptr; } | |
35 void GetAvailableSinks(const SinkInfoListCallback& sinks_callback, | |
36 const FailureCallback& failure_callback) override { | |
37 AddSink(CreateSinkInfoPtr(1, "sink 1")); | |
38 sinks_callback.Run(sinks_); | |
39 } | |
40 | |
41 void RequestAuthentication(int sink_id, | |
42 const AuthInfoCallback& auth_info_callback, | |
43 const FailureCallback& failure_callback) override { | |
44 AuthInfo info; | |
45 info.method = "pbc"; | |
46 auth_info_callback.Run(info); | |
47 } | |
48 | |
49 void Connect(int sink_id, | |
50 const AuthInfo& auth_info, | |
51 const base::Closure& connected_callback, | |
52 const FailureCallback& failure_callback) override {} | |
53 | |
54 void Disconnect(const base::Closure& disconnected_callback, | |
55 const FailureCallback& failure_callback) override {} | |
56 | |
57 void StartWatchingSinks() override { | |
58 AddSink(CreateSinkInfoPtr(2, "sink 2")); | |
59 } | |
60 | |
61 void StopWatchingSinks() override {} | |
62 | |
63 private: | |
64 void AddSink(SinkInfoPtr sink) { | |
65 sinks_.push_back(sink); | |
66 FOR_EACH_OBSERVER(DisplaySourceConnectionDelegate::Observer, observers_, | |
67 OnSinksUpdated(sinks_)); | |
68 } | |
69 | |
70 SinkInfoList sinks_; | |
71 }; | |
72 | |
73 class DisplaySourceApiTest : public ShellApiTest { | |
74 public: | |
75 DisplaySourceApiTest() = default; | |
76 | |
77 private: | |
78 static scoped_ptr<KeyedService> CreateMockDelegate( | |
79 content::BrowserContext* profile) { | |
80 return make_scoped_ptr<KeyedService>( | |
81 new MockDisplaySourceConnectionDelegate()); | |
82 } | |
83 | |
84 void SetUpOnMainThread() override { | |
85 ShellApiTest::SetUpOnMainThread(); | |
86 DisplaySourceConnectionDelegateFactory::GetInstance()->SetTestingFactory( | |
87 browser_context(), &CreateMockDelegate); | |
88 content::RunAllPendingInMessageLoop(); | |
89 } | |
90 }; | |
91 | |
92 IN_PROC_BROWSER_TEST_F(DisplaySourceApiTest, DisplaySourceExtension) { | |
93 ASSERT_TRUE(RunAppTest("api_test/display_source/api")) << message_; | |
94 } | |
95 | |
96 } // namespace extensions | |
OLD | NEW |