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

Unified Diff: chrome/browser/media/webrtc/webrtc_browsertest_base.cc

Issue 2951713002: RTCPeerConnection.addTrack and removeTrack added (behind flag) (Closed)
Patch Set: Addressed deadbeef's comments Created 3 years, 5 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/webrtc/webrtc_browsertest_base.cc
diff --git a/chrome/browser/media/webrtc/webrtc_browsertest_base.cc b/chrome/browser/media/webrtc/webrtc_browsertest_base.cc
index 1d76576bbd0ad7562172c7f5d6b7ed95eda0afe5..4e88d2ace2e91254863abfadc5167116a7159c90 100644
--- a/chrome/browser/media/webrtc/webrtc_browsertest_base.cc
+++ b/chrome/browser/media/webrtc/webrtc_browsertest_base.cc
@@ -13,6 +13,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "base/strings/string_number_conversions.h"
+#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/values.h"
@@ -64,6 +65,7 @@ const char WebRtcTestBase::kAudioVideoCallConstraints720p[] =
const char WebRtcTestBase::kUseDefaultCertKeygen[] = "null";
const char WebRtcTestBase::kUseDefaultAudioCodec[] = "";
const char WebRtcTestBase::kUseDefaultVideoCodec[] = "";
+const char WebRtcTestBase::kUndefined[] = "undefined";
namespace {
@@ -595,3 +597,97 @@ void WebRtcTestBase::VerifyRtpReceivers(
: "verifyRtpReceivers()";
EXPECT_EQ("ok-receivers-verified", ExecuteJavascript(javascript, tab));
}
+
+std::vector<std::string> WebRtcTestBase::CreateAndAddAudioAndVideoTrack(
+ content::WebContents* tab,
+ StreamArgumentType stream_argument_type) const {
+ const char* string_argument_type_str = nullptr;
+ switch (stream_argument_type) {
+ case StreamArgumentType::NO_STREAM:
+ string_argument_type_str = "'no-stream'";
+ break;
+ case StreamArgumentType::SHARED_STREAM:
+ string_argument_type_str = "'shared-stream'";
+ break;
+ case StreamArgumentType::INDIVIDUAL_STREAMS:
+ string_argument_type_str = "'individual-streams'";
+ break;
+ }
+ std::string result =
+ ExecuteJavascript(base::StringPrintf("createAndAddAudioAndVideoTrack(%s)",
+ string_argument_type_str),
+ tab);
+ EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE));
+ std::vector<std::string> ids = base::SplitString(
+ result.substr(3), " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL);
+ EXPECT_EQ(4u, ids.size());
+ return ids;
+}
+
+void WebRtcTestBase::RemoveTrack(content::WebContents* tab,
+ const std::string& track_id) const {
+ EXPECT_EQ(
+ "ok-sender-removed",
+ ExecuteJavascript(
+ base::StringPrintf("removeTrack('%s')", track_id.c_str()), tab));
+}
+
+bool WebRtcTestBase::HasLocalStreamWithTrack(
+ content::WebContents* tab,
+ const std::string& stream_id,
+ const std::string& track_id) const {
+ return HasStreamWithTrack(tab, "hasLocalStreamWithTrack", stream_id,
+ track_id);
+}
+
+bool WebRtcTestBase::HasRemoteStreamWithTrack(
+ content::WebContents* tab,
+ const std::string& stream_id,
+ const std::string& track_id) const {
+ return HasStreamWithTrack(tab, "hasRemoteStreamWithTrack", stream_id,
+ track_id);
+}
+
+bool WebRtcTestBase::HasStreamWithTrack(content::WebContents* tab,
+ const char* function_name,
+ std::string stream_id,
+ std::string track_id) const {
+ if (stream_id != kUndefined)
+ stream_id = "'" + stream_id + "'";
+ std::string javascript = base::StringPrintf(
+ "%s(%s, '%s')", function_name, stream_id.c_str(), track_id.c_str());
+ std::string result = ExecuteJavascript(javascript, tab);
+ EXPECT_TRUE(result == "ok-stream-with-track-found" ||
+ result == "ok-stream-with-track-not-found");
+ return result == "ok-stream-with-track-found";
+}
+
+bool WebRtcTestBase::HasSenderWithTrack(content::WebContents* tab,
+ std::string track_id) const {
+ std::string javascript =
+ base::StringPrintf("hasSenderWithTrack('%s')", track_id.c_str());
+ std::string result = ExecuteJavascript(javascript, tab);
+ EXPECT_TRUE(result == "ok-sender-with-track-found" ||
+ result == "ok-sender-with-track-not-found");
+ return result == "ok-sender-with-track-found";
+}
+
+bool WebRtcTestBase::HasReceiverWithTrack(content::WebContents* tab,
+ std::string track_id) const {
+ std::string javascript =
+ base::StringPrintf("hasReceiverWithTrack('%s')", track_id.c_str());
+ std::string result = ExecuteJavascript(javascript, tab);
+ EXPECT_TRUE(result == "ok-receiver-with-track-found" ||
+ result == "ok-receiver-with-track-not-found");
+ return result == "ok-receiver-with-track-found";
+}
+
+size_t WebRtcTestBase::GetNegotiationNeededCount(
+ content::WebContents* tab) const {
+ std::string result = ExecuteJavascript("getNegotiationNeededCount()", tab);
+ EXPECT_TRUE(base::StartsWith(result, "ok-negotiation-count-is-",
+ base::CompareCase::SENSITIVE));
+ size_t count = 0;
+ EXPECT_TRUE(base::StringToSizeT(result.substr(24), &count));
+ return count;
+}
« no previous file with comments | « chrome/browser/media/webrtc/webrtc_browsertest_base.h ('k') | chrome/browser/media/webrtc/webrtc_rtp_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698