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

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: Added warning message 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 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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698