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

Unified Diff: chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc

Issue 247723006: Add HD browser test to WebRTC suite. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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
« no previous file with comments | « no previous file | chrome/browser/media/webrtc_browsertest_base.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
diff --git a/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc b/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
index 32cfdd9194856e31acb05d899f9cbaa79a53e432..16ee1a2c052826eb9013631302ac36cf7fca4cab 100644
--- a/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
+++ b/chrome/browser/media/chrome_webrtc_video_quality_browsertest.cc
@@ -53,7 +53,7 @@ static const base::FilePath::CharType kArgbToI420ConverterExecutable[] =
static const char kHomeEnvName[] =
#if defined(OS_WIN)
- "HOMEPATH";
+ "USERPROFILE";
kjellander_chromium 2014/04/28 06:03:52 This will make it possible to support the Chromium
#else
"HOME";
#endif
@@ -67,15 +67,27 @@ static const base::FilePath::CharType kStatsFileName[] =
FILE_PATH_LITERAL("stats.txt");
static const char kMainWebrtcTestHtmlPage[] =
"/webrtc/webrtc_jsep01_test.html";
-static const char kCapturingWebrtcHtmlPage[] =
- "/webrtc/webrtc_video_quality_test.html";
-static const int k360pWidth = 640;
-static const int k360pHeight = 360;
// If you change the port number, don't forget to modify video_extraction.js
// too!
static const char kPyWebSocketPortNumber[] = "12221";
+// Configuration object containing: test_name, width, height, capture_page,
+// reference_video, test_constraints.
+typedef std::tr1::tuple<const char*, int, int, const char*,
+ const base::FilePath::CharType*, const char*> TestConfig;
+
+static const TestConfig k360pConfig(
+ "360p", 640, 360,
+ "/webrtc/webrtc_video_quality_test.html",
+ test::kReferenceFileName360p,
+ WebRtcTestBase::kAudioVideoCallConstraints360p);
+static const TestConfig k720pConfig(
+ "720p", 1280, 720,
+ "/webrtc/webrtc_video_quality_test_hd.html",
+ test::kReferenceFileName720p,
+ WebRtcTestBase::kAudioVideoCallConstraints720p);
+
// Test the video quality of the WebRTC output.
//
// Prerequisites: This test case must run on a machine with a chrome playing
@@ -99,10 +111,17 @@ static const char kPyWebSocketPortNumber[] = "12221";
// frame_analyzer. Both tools can be found under third_party/webrtc/tools. The
// test also runs a stand alone Python implementation of a WebSocket server
// (pywebsocket) and a barcode_decoder script.
-class WebRtcVideoQualityBrowserTest : public WebRtcTestBase {
+class WebRtcVideoQualityBrowserTest : public WebRtcTestBase,
+ public testing::WithParamInterface<TestConfig> {
public:
WebRtcVideoQualityBrowserTest()
- : pywebsocket_server_(0),
+ : test_name_(std::tr1::get<0>(GetParam())),
+ width_(std::tr1::get<1>(GetParam())),
+ height_(std::tr1::get<2>(GetParam())),
+ capture_page_(std::tr1::get<3>(GetParam())),
+ reference_video_(std::tr1::get<4>(GetParam())),
+ test_constraints_(std::tr1::get<5>(GetParam())),
+ pywebsocket_server_(0),
environment_(base::Environment::Create()) {}
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
@@ -114,7 +133,7 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase {
// Set up the command line option with the expected file name. We will check
// its existence in HasAllRequiredResources().
webrtc_reference_video_y4m_ = test::GetReferenceFilesDir()
- .Append(test::kReferenceFileName360p)
+ .Append(reference_video_)
.AddExtension(test::kY4mFileExtension);
command_line->AppendSwitchPath(switches::kUseFileForFakeVideoCapture,
webrtc_reference_video_y4m_);
@@ -248,7 +267,7 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase {
EXPECT_TRUE(GetPythonCommand(&compare_command));
compare_command.AppendArgPath(path_to_compare_script);
- compare_command.AppendArg("--label=360p");
+ compare_command.AppendArg(base::StringPrintf("--label=%s", test_name_));
compare_command.AppendArg("--ref_video");
compare_command.AppendArgPath(reference_video_filename);
compare_command.AppendArg("--test_video");
@@ -279,6 +298,13 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase {
return base::FilePath(native_home_dir).Append(kWorkingDirName);
}
+ protected:
+ const char* test_name_;
+ int width_;
+ int height_;
+ const char* capture_page_;
+ const base::FilePath::CharType* reference_video_;
+ const char* test_constraints_;
test::PeerConnectionServerRunner peerconnection_server_;
private:
@@ -299,8 +325,15 @@ class WebRtcVideoQualityBrowserTest : public WebRtcTestBase {
base::FilePath webrtc_reference_video_y4m_;
};
-IN_PROC_BROWSER_TEST_F(WebRtcVideoQualityBrowserTest,
- MANUAL_TestVGAVideoQuality) {
+static const TestConfig kVideoConfigurations[] = { k360pConfig, k720pConfig };
+INSTANTIATE_TEST_CASE_P(
+ WebRtcVideoQualityBrowserTests,
+ WebRtcVideoQualityBrowserTest,
+ testing::ValuesIn(kVideoConfigurations));
+
+IN_PROC_BROWSER_TEST_P(WebRtcVideoQualityBrowserTest,
+ MANUAL_TestVideoQuality) {
+
#if defined(OS_WIN)
// Fails on XP. http://crbug.com/353078
if (base::win::GetVersion() <= base::win::VERSION_XP)
@@ -310,7 +343,6 @@ IN_PROC_BROWSER_TEST_F(WebRtcVideoQualityBrowserTest,
ASSERT_GE(TestTimeouts::action_max_timeout().InSeconds(), 150) <<
"This is a long-running test; you must specify "
"--ui-test-action-max-timeout to have a value of at least 150000.";
-
ASSERT_TRUE(HasAllRequiredResources());
ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
ASSERT_TRUE(StartPyWebSocketServer());
@@ -319,11 +351,11 @@ IN_PROC_BROWSER_TEST_F(WebRtcVideoQualityBrowserTest,
content::WebContents* left_tab =
OpenPageAndGetUserMediaInNewTabWithConstraints(
embedded_test_server()->GetURL(kMainWebrtcTestHtmlPage),
- kAudioVideoCallConstraints360p);
+ test_constraints_);
content::WebContents* right_tab =
OpenPageAndGetUserMediaInNewTabWithConstraints(
- embedded_test_server()->GetURL(kCapturingWebrtcHtmlPage),
- kAudioVideoCallConstraints360p);
+ embedded_test_server()->GetURL(capture_page_),
+ test_constraints_);
EstablishCall(left_tab, right_tab);
@@ -353,13 +385,13 @@ IN_PROC_BROWSER_TEST_F(WebRtcVideoQualityBrowserTest,
chrome::CloseWebContents(browser(), right_tab, false);
RunARGBtoI420Converter(
- k360pWidth, k360pHeight, GetWorkingDir().Append(kCapturedYuvFileName));
+ width_, height_, GetWorkingDir().Append(kCapturedYuvFileName));
ASSERT_TRUE(CompareVideosAndPrintResult(
- k360pWidth,
- k360pHeight,
+ width_,
+ height_,
GetWorkingDir().Append(kCapturedYuvFileName),
test::GetReferenceFilesDir()
- .Append(test::kReferenceFileName360p)
+ .Append(reference_video_)
.AddExtension(test::kYuvFileExtension),
GetWorkingDir().Append(kStatsFileName)));
}
« no previous file with comments | « no previous file | chrome/browser/media/webrtc_browsertest_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698