1 // Copyright 2013 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 "chrome/browser/media/webrtc/fake_desktop_media_list.h"
6
7 #include <utility>
8
9 #include "base/strings/string_number_conversions.h"
10 #include "chrome/browser/media/webrtc/desktop_media_list.h"
11 #include "chrome/browser/media/webrtc/desktop_media_list_observer.h"
12 #include "ui/gfx/skia_util.h"
13
14 using content::DesktopMediaID;
15
FakeDesktopMediaList(DesktopMediaID::Type type)16 FakeDesktopMediaList::FakeDesktopMediaList(DesktopMediaID::Type type)
17 : observer_(nullptr), type_(type) {}
~FakeDesktopMediaList()18 FakeDesktopMediaList::~FakeDesktopMediaList() {}
19
AddSource(int id)20 void FakeDesktopMediaList::AddSource(int id) {
21 AddSourceByFullMediaID(
22 content::DesktopMediaID(DesktopMediaID::TYPE_WINDOW, id));
23 }
24
AddSourceByFullMediaID(content::DesktopMediaID media_id)25 void FakeDesktopMediaList::AddSourceByFullMediaID(
26 content::DesktopMediaID media_id) {
27 Source source;
28 source.id = media_id;
29 source.name = base::NumberToString16(media_id.id);
30
31 sources_.push_back(source);
32 observer_->OnSourceAdded(this, sources_.size() - 1);
33 }
34
RemoveSource(int index)35 void FakeDesktopMediaList::RemoveSource(int index) {
36 sources_.erase(sources_.begin() + index);
37 observer_->OnSourceRemoved(this, index);
38 }
39
MoveSource(int old_index,int new_index)40 void FakeDesktopMediaList::MoveSource(int old_index, int new_index) {
41 Source source = sources_[old_index];
42 sources_.erase(sources_.begin() + old_index);
43 sources_.insert(sources_.begin() + new_index, source);
44 observer_->OnSourceMoved(this, old_index, new_index);
45 }
46
SetSourceThumbnail(int index)47 void FakeDesktopMediaList::SetSourceThumbnail(int index) {
48 sources_[index].thumbnail = thumbnail_;
49 observer_->OnSourceThumbnailChanged(this, index);
50 }
51
SetSourceName(int index,base::string16 name)52 void FakeDesktopMediaList::SetSourceName(int index, base::string16 name) {
53 sources_[index].name = name;
54 observer_->OnSourceNameChanged(this, index);
55 }
56
SetUpdatePeriod(base::TimeDelta period)57 void FakeDesktopMediaList::SetUpdatePeriod(base::TimeDelta period) {}
58
SetThumbnailSize(const gfx::Size & thumbnail_size)59 void FakeDesktopMediaList::SetThumbnailSize(const gfx::Size& thumbnail_size) {}
60
SetViewDialogWindowId(content::DesktopMediaID dialog_id)61 void FakeDesktopMediaList::SetViewDialogWindowId(
62 content::DesktopMediaID dialog_id) {}
63
StartUpdating(DesktopMediaListObserver * observer)64 void FakeDesktopMediaList::StartUpdating(DesktopMediaListObserver* observer) {
65 observer_ = observer;
66
67 SkBitmap bitmap;
68 bitmap.allocN32Pixels(150, 150);
69 bitmap.eraseARGB(255, 0, 255, 0);
70 thumbnail_ = gfx::ImageSkia::CreateFrom1xBitmap(bitmap);
71 }
72
Update(UpdateCallback callback)73 void FakeDesktopMediaList::Update(UpdateCallback callback) {
74 std::move(callback).Run();
75 }
76
GetSourceCount() const77 int FakeDesktopMediaList::GetSourceCount() const {
78 return sources_.size();
79 }
80
GetSource(int index) const81 const DesktopMediaList::Source& FakeDesktopMediaList::GetSource(
82 int index) const {
83 return sources_[index];
84 }
85
GetMediaListType() const86 DesktopMediaID::Type FakeDesktopMediaList::GetMediaListType() const {
87 return type_;
88 }
89