OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/media/webrtc/webrtc_browsertest_base.h" | 5 #include "chrome/browser/media/webrtc/webrtc_browsertest_base.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
| 9 #include <limits> |
| 10 |
9 #include "base/json/json_reader.h" | 11 #include "base/json/json_reader.h" |
10 #include "base/lazy_instance.h" | 12 #include "base/lazy_instance.h" |
11 #include "base/logging.h" | 13 #include "base/logging.h" |
12 #include "base/macros.h" | 14 #include "base/macros.h" |
| 15 #include "base/strings/string_number_conversions.h" |
13 #include "base/strings/string_util.h" | 16 #include "base/strings/string_util.h" |
14 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
15 #include "base/values.h" | 18 #include "base/values.h" |
16 #include "build/build_config.h" | 19 #include "build/build_config.h" |
17 #include "chrome/browser/media/webrtc/webrtc_browsertest_common.h" | 20 #include "chrome/browser/media/webrtc/webrtc_browsertest_common.h" |
18 #include "chrome/browser/permissions/permission_request_manager.h" | 21 #include "chrome/browser/permissions/permission_request_manager.h" |
19 #include "chrome/browser/ui/browser.h" | 22 #include "chrome/browser/ui/browser.h" |
20 #include "chrome/browser/ui/browser_tabstrip.h" | 23 #include "chrome/browser/ui/browser_tabstrip.h" |
21 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 24 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
22 #include "chrome/test/base/ui_test_utils.h" | 25 #include "chrome/test/base/ui_test_utils.h" |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
490 EXPECT_EQ("ok-got-stats", ExecuteJavascript("verifyStatsGenerated()", tab)); | 493 EXPECT_EQ("ok-got-stats", ExecuteJavascript("verifyStatsGenerated()", tab)); |
491 } | 494 } |
492 | 495 |
493 std::vector<std::string> WebRtcTestBase::VerifyStatsGeneratedPromise( | 496 std::vector<std::string> WebRtcTestBase::VerifyStatsGeneratedPromise( |
494 content::WebContents* tab) const { | 497 content::WebContents* tab) const { |
495 std::string result = ExecuteJavascript("verifyStatsGeneratedPromise()", tab); | 498 std::string result = ExecuteJavascript("verifyStatsGeneratedPromise()", tab); |
496 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); | 499 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); |
497 return JsonArrayToVectorOfStrings(result.substr(3)); | 500 return JsonArrayToVectorOfStrings(result.substr(3)); |
498 } | 501 } |
499 | 502 |
| 503 double WebRtcTestBase::MeasureGetStatsCallbackPerformance( |
| 504 content::WebContents* tab) const { |
| 505 std::string result = ExecuteJavascript( |
| 506 "measureGetStatsCallbackPerformance()", tab); |
| 507 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); |
| 508 double ms; |
| 509 if (!base::StringToDouble(result.substr(3), &ms)) |
| 510 return std::numeric_limits<double>::infinity(); |
| 511 return ms; |
| 512 } |
| 513 |
500 scoped_refptr<content::TestStatsReportDictionary> | 514 scoped_refptr<content::TestStatsReportDictionary> |
501 WebRtcTestBase::GetStatsReportDictionary(content::WebContents* tab) const { | 515 WebRtcTestBase::GetStatsReportDictionary(content::WebContents* tab) const { |
502 std::string result = ExecuteJavascript("getStatsReportDictionary()", tab); | 516 std::string result = ExecuteJavascript("getStatsReportDictionary()", tab); |
503 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); | 517 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); |
504 std::unique_ptr<base::Value> parsed_json = base::JSONReader::Read( | 518 std::unique_ptr<base::Value> parsed_json = base::JSONReader::Read( |
505 result.substr(3)); | 519 result.substr(3)); |
506 base::DictionaryValue* dictionary; | 520 base::DictionaryValue* dictionary; |
507 CHECK(parsed_json); | 521 CHECK(parsed_json); |
508 CHECK(parsed_json->GetAsDictionary(&dictionary)); | 522 CHECK(parsed_json->GetAsDictionary(&dictionary)); |
509 ignore_result(parsed_json.release()); | 523 ignore_result(parsed_json.release()); |
510 return scoped_refptr<content::TestStatsReportDictionary>( | 524 return scoped_refptr<content::TestStatsReportDictionary>( |
511 new content::TestStatsReportDictionary( | 525 new content::TestStatsReportDictionary( |
512 std::unique_ptr<base::DictionaryValue>(dictionary))); | 526 std::unique_ptr<base::DictionaryValue>(dictionary))); |
513 } | 527 } |
514 | 528 |
| 529 double WebRtcTestBase::MeasureGetStatsPerformance( |
| 530 content::WebContents* tab) const { |
| 531 std::string result = ExecuteJavascript("measureGetStatsPerformance()", tab); |
| 532 EXPECT_TRUE(base::StartsWith(result, "ok-", base::CompareCase::SENSITIVE)); |
| 533 double ms; |
| 534 if (!base::StringToDouble(result.substr(3), &ms)) |
| 535 return std::numeric_limits<double>::infinity(); |
| 536 return ms; |
| 537 } |
| 538 |
515 std::vector<std::string> WebRtcTestBase::GetWhitelistedStatsTypes( | 539 std::vector<std::string> WebRtcTestBase::GetWhitelistedStatsTypes( |
516 content::WebContents* tab) const { | 540 content::WebContents* tab) const { |
517 return JsonArrayToVectorOfStrings( | 541 return JsonArrayToVectorOfStrings( |
518 ExecuteJavascript("getWhitelistedStatsTypes()", tab)); | 542 ExecuteJavascript("getWhitelistedStatsTypes()", tab)); |
519 } | 543 } |
520 | 544 |
521 void WebRtcTestBase::SetDefaultAudioCodec( | 545 void WebRtcTestBase::SetDefaultAudioCodec( |
522 content::WebContents* tab, | 546 content::WebContents* tab, |
523 const std::string& audio_codec) const { | 547 const std::string& audio_codec) const { |
524 EXPECT_EQ("ok", ExecuteJavascript( | 548 EXPECT_EQ("ok", ExecuteJavascript( |
525 "setDefaultAudioCodec('" + audio_codec + "')", tab)); | 549 "setDefaultAudioCodec('" + audio_codec + "')", tab)); |
526 } | 550 } |
527 | 551 |
528 void WebRtcTestBase::SetDefaultVideoCodec( | 552 void WebRtcTestBase::SetDefaultVideoCodec( |
529 content::WebContents* tab, | 553 content::WebContents* tab, |
530 const std::string& video_codec) const { | 554 const std::string& video_codec) const { |
531 EXPECT_EQ("ok", ExecuteJavascript( | 555 EXPECT_EQ("ok", ExecuteJavascript( |
532 "setDefaultVideoCodec('" + video_codec + "')", tab)); | 556 "setDefaultVideoCodec('" + video_codec + "')", tab)); |
533 } | 557 } |
534 | 558 |
535 void WebRtcTestBase::EnableOpusDtx(content::WebContents* tab) const { | 559 void WebRtcTestBase::EnableOpusDtx(content::WebContents* tab) const { |
536 EXPECT_EQ("ok-forced", ExecuteJavascript("forceOpusDtx()", tab)); | 560 EXPECT_EQ("ok-forced", ExecuteJavascript("forceOpusDtx()", tab)); |
537 } | 561 } |
OLD | NEW |