diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-20 13:27:38 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-20 13:27:38 +0000 |
commit | 3de922f39b244a05cf5ed58699256158048a1b89 (patch) | |
tree | 80f5fd65f420f54afa2daef7d217670812614bb6 /content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp | |
parent | a3e41cd4f1ed6879b25a3dcc8730db868df69fd4 (diff) | |
download | chromium_src-3de922f39b244a05cf5ed58699256158048a1b89.zip chromium_src-3de922f39b244a05cf5ed58699256158048a1b89.tar.gz chromium_src-3de922f39b244a05cf5ed58699256158048a1b89.tar.bz2 |
Import TestRunner library into chromium.
The reasons for the move are:
- it's actually a blink embedder, so it can't use blink/wtf types
- it can't use base either
- we want to replace CppBoundClass with gin::Wrappable, not possible in blink
In the first step, this is mostly a 1:1 copy (except for include paths).
Follow-up CLs will move the test plugin and layout tests helpers and
clean up the coding style
BUG=324658
R=abarth@chromium.org, maruel@chromium.org, torne@chromium.org, jam@chromium.org
TBR=torne@chromium.org
Review URL: https://codereview.chromium.org/110533009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242095 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp')
-rw-r--r-- | content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp b/content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp new file mode 100644 index 0000000..613e649 --- /dev/null +++ b/content/shell/renderer/test_runner/MockWebMediaStreamCenter.cpp @@ -0,0 +1,93 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/shell/renderer/test_runner/MockWebMediaStreamCenter.h" + +#include "third_party/WebKit/public/platform/WebAudioDestinationConsumer.h" +#include "third_party/WebKit/public/platform/WebMediaStream.h" +#include "third_party/WebKit/public/platform/WebMediaStreamCenterClient.h" +#include "third_party/WebKit/public/platform/WebMediaStreamSource.h" +#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" +#include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h" +#include "third_party/WebKit/public/platform/WebSourceInfo.h" +#include "third_party/WebKit/public/platform/WebVector.h" + +using namespace blink; + +namespace WebTestRunner { + +MockWebMediaStreamCenter::MockWebMediaStreamCenter(WebMediaStreamCenterClient* client) +{ +} + +bool MockWebMediaStreamCenter::getMediaStreamTrackSources(const WebMediaStreamTrackSourcesRequest& request) +{ + size_t size = 2; + WebVector<WebSourceInfo> results(size); + results[0].initialize("MockAudioDevice#1", WebSourceInfo::SourceKindAudio, "Mock audio device", WebSourceInfo::VideoFacingModeNone); + results[1].initialize("MockVideoDevice#1", WebSourceInfo::SourceKindVideo, "Mock video device", WebSourceInfo::VideoFacingModeEnvironment); + request.requestSucceeded(results); + return true; +} + +void MockWebMediaStreamCenter::didEnableMediaStreamTrack(const WebMediaStream&, const WebMediaStreamTrack& track) +{ + track.source().setReadyState(WebMediaStreamSource::ReadyStateLive); +} + +void MockWebMediaStreamCenter::didDisableMediaStreamTrack(const WebMediaStream&, const WebMediaStreamTrack& track) +{ + track.source().setReadyState(WebMediaStreamSource::ReadyStateMuted); +} + +bool MockWebMediaStreamCenter::didAddMediaStreamTrack(const WebMediaStream&, const WebMediaStreamTrack&) +{ + return true; +} + +bool MockWebMediaStreamCenter::didRemoveMediaStreamTrack(const WebMediaStream&, const WebMediaStreamTrack&) +{ + return true; +} + +void MockWebMediaStreamCenter::didStopLocalMediaStream(const WebMediaStream& stream) +{ + WebVector<WebMediaStreamTrack> tracks; + stream.audioTracks(tracks); + for (size_t i = 0; i < tracks.size(); ++i) + tracks[i].source().setReadyState(WebMediaStreamSource::ReadyStateEnded); + stream.videoTracks(tracks); + for (size_t i = 0; i < tracks.size(); ++i) + tracks[i].source().setReadyState(WebMediaStreamSource::ReadyStateEnded); +} + +bool MockWebMediaStreamCenter::didStopMediaStreamTrack(const blink::WebMediaStreamTrack& track) +{ + track.source().setReadyState(WebMediaStreamSource::ReadyStateEnded); + return true; +} + +class MockWebAudioDestinationConsumer : public WebAudioDestinationConsumer { +public: + virtual ~MockWebAudioDestinationConsumer() { } + virtual void setFormat(size_t numberOfChannels, float sampleRate) OVERRIDE { } + virtual void consumeAudio(const WebVector<const float*>&, size_t number_of_frames) OVERRIDE { } +}; + +void MockWebMediaStreamCenter::didCreateMediaStream(WebMediaStream& stream) +{ + WebVector<WebMediaStreamTrack> audioTracks; + stream.audioTracks(audioTracks); + for (size_t i = 0; i < audioTracks.size(); ++i) { + WebMediaStreamSource source = audioTracks[i].source(); + if (source.requiresAudioConsumer()) { + MockWebAudioDestinationConsumer* consumer = new MockWebAudioDestinationConsumer(); + source.addAudioConsumer(consumer); + source.removeAudioConsumer(consumer); + delete consumer; + } + } +} + +} |