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

Side by Side Diff: extensions/browser/api/display_source/display_source_apitest.cc

Issue 1410093008: Introduce chrome.displaySource API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments from Antony Created 5 years, 1 month 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 "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 using api::display_source::SinkInfo;
14 using api::display_source::SinkState;
15 using api::display_source::SINK_STATE_DISCONNECTED;
16 using api::display_source::AUTHENTICATION_METHOD_PBC;
17
18 namespace {
19
20 DisplaySourceSinkInfoPtr CreateSinkInfoPtr(int id,
21 const std::string& name,
22 SinkState state) {
23 DisplaySourceSinkInfoPtr ptr(new SinkInfo());
24 ptr->id = id;
25 ptr->name = name;
26 ptr->state = state;
27
28 return ptr;
29 }
30
31 } // namespace
32
33 class MockDisplaySourceConnectionDelegate
34 : public DisplaySourceConnectionDelegate {
35 public:
36 DisplaySourceSinkInfoList last_found_sinks() const override { return sinks_; }
37 const Connection* connection() const override { return nullptr; }
38 void GetAvailableSinks(const SinkInfoListCallback& sinks_callback,
39 const FailureCallback& failure_callback) override {
40 AddSink(CreateSinkInfoPtr(1, "sink 1", SINK_STATE_DISCONNECTED));
41 sinks_callback.Run(sinks_);
42 }
43
44 void RequestAuthentication(int sink_id,
45 const AuthInfoCallback& auth_info_callback,
46 const FailureCallback& failure_callback) override {
47 DisplaySourceAuthInfo info;
48 info.method = AUTHENTICATION_METHOD_PBC;
49 auth_info_callback.Run(info);
50 }
51
52 void Connect(int sink_id,
53 const DisplaySourceAuthInfo& auth_info,
54 const base::Closure& connected_callback,
55 const FailureCallback& failure_callback) override {}
56
57 void Disconnect(const base::Closure& disconnected_callback,
58 const FailureCallback& failure_callback) override {}
59
60 void StartWatchingSinks() override {
61 AddSink(CreateSinkInfoPtr(2, "sink 2", SINK_STATE_DISCONNECTED));
62 }
63
64 void StopWatchingSinks() override {}
65
66 private:
67 void AddSink(DisplaySourceSinkInfoPtr sink) {
68 sinks_.push_back(sink);
69 FOR_EACH_OBSERVER(DisplaySourceConnectionDelegate::Observer, observers_,
70 OnSinksUpdated(sinks_));
71 }
72
73 DisplaySourceSinkInfoList sinks_;
74 };
75
76 class DisplaySourceApiTest : public ShellApiTest {
77 public:
78 DisplaySourceApiTest() = default;
79
80 private:
81 static scoped_ptr<KeyedService> CreateMockDelegate(
82 content::BrowserContext* profile) {
83 return make_scoped_ptr<KeyedService>(
84 new MockDisplaySourceConnectionDelegate());
85 }
86
87 void SetUpOnMainThread() override {
88 ShellApiTest::SetUpOnMainThread();
89 DisplaySourceConnectionDelegateFactory::GetInstance()->SetTestingFactory(
90 browser_context(), &CreateMockDelegate);
91 content::RunAllPendingInMessageLoop();
92 }
93 };
94
95 IN_PROC_BROWSER_TEST_F(DisplaySourceApiTest, DisplaySourceExtension) {
96 ASSERT_TRUE(RunAppTest("api_test/display_source/api")) << message_;
97 }
98
99 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698