| Index: content/browser/webrtc/webrtc_depth_capture_browsertest.cc
|
| diff --git a/content/browser/webrtc/webrtc_depth_capture_browsertest.cc b/content/browser/webrtc/webrtc_depth_capture_browsertest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4d881801d29a4f3e78e05ab06197b6e22c9b00a5
|
| --- /dev/null
|
| +++ b/content/browser/webrtc/webrtc_depth_capture_browsertest.cc
|
| @@ -0,0 +1,77 @@
|
| +// Copyright 2016 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 <stddef.h>
|
| +
|
| +#include "base/command_line.h"
|
| +#include "base/strings/stringprintf.h"
|
| +#include "base/strings/utf_string_conversions.h"
|
| +#include "content/browser/webrtc/webrtc_content_browsertest_base.h"
|
| +#include "content/public/common/content_switches.h"
|
| +#include "content/public/test/content_browser_test_utils.h"
|
| +#include "media/base/media_switches.h"
|
| +#include "net/test/embedded_test_server/embedded_test_server.h"
|
| +
|
| +namespace {
|
| +
|
| +static const char kGetDepthStreamAndCallCreateImageBitmap[] =
|
| + "getDepthStreamAndCallCreateImageBitmap";
|
| +
|
| +void RemoveSwitchFromCommandLine(base::CommandLine* command_line,
|
| + const std::string& switch_value) {
|
| + base::CommandLine::StringVector argv = command_line->argv();
|
| + const base::CommandLine::StringType switch_string =
|
| +#if defined(OS_WIN)
|
| + base::ASCIIToUTF16(switch_value);
|
| +#else
|
| + switch_value;
|
| +#endif
|
| + argv.erase(std::remove_if(
|
| + argv.begin(), argv.end(),
|
| + [switch_string](const base::CommandLine::StringType& value) {
|
| + return value.find(switch_string) != std::string::npos;
|
| + }),
|
| + argv.end());
|
| + command_line->InitFromArgv(argv);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +namespace content {
|
| +
|
| +class WebRtcDepthCaptureBrowserTest : public WebRtcContentBrowserTestBase {
|
| + public:
|
| + WebRtcDepthCaptureBrowserTest() {
|
| + // Automatically grant device permission.
|
| + AppendUseFakeUIForMediaStreamFlag();
|
| + }
|
| + ~WebRtcDepthCaptureBrowserTest() override {}
|
| +
|
| + void SetUpCommandLine(base::CommandLine* command_line) override {
|
| + // Test using two video capture devices - a color and a 16-bit depth device.
|
| + // By default, command line argument is present with no value. We need to
|
| + // remove it and then add the value defining two video capture devices.
|
| + const std::string fake_device_switch =
|
| + switches::kUseFakeDeviceForMediaStream;
|
| + ASSERT_TRUE(command_line->HasSwitch(fake_device_switch) &&
|
| + command_line->GetSwitchValueASCII(fake_device_switch).empty());
|
| + RemoveSwitchFromCommandLine(command_line, fake_device_switch);
|
| + command_line->AppendSwitchASCII(fake_device_switch, "device-count=2");
|
| + WebRtcContentBrowserTestBase::SetUpCommandLine(command_line);
|
| + }
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(WebRtcDepthCaptureBrowserTest,
|
| + GetDepthStreamAndCallCreateImageBitmap) {
|
| + ASSERT_TRUE(embedded_test_server()->Start());
|
| +
|
| + GURL url(
|
| + embedded_test_server()->GetURL("/media/getusermedia-depth-capture.html"));
|
| + NavigateToURL(shell(), url);
|
| +
|
| + ExecuteJavascriptAndWaitForOk(base::StringPrintf(
|
| + "%s({video: true});", kGetDepthStreamAndCallCreateImageBitmap));
|
| +}
|
| +
|
| +} // namespace content
|
|
|