Chromium Code Reviews| Index: chrome/renderer/chrome_content_renderer_client_unittest.cc |
| diff --git a/chrome/renderer/chrome_content_renderer_client_unittest.cc b/chrome/renderer/chrome_content_renderer_client_unittest.cc |
| index 8f940b889e14836f115bc83e43a4df903da88185..f7df73e83a0eea3a4c96f6695c5f4c479cf6aa77 100644 |
| --- a/chrome/renderer/chrome_content_renderer_client_unittest.cc |
| +++ b/chrome/renderer/chrome_content_renderer_client_unittest.cc |
| @@ -8,7 +8,9 @@ |
| #include <vector> |
| +#include "base/metrics/histogram_samples.h" |
| #include "base/strings/utf_string_conversions.h" |
| +#include "base/test/histogram_tester.h" |
| #include "build/build_config.h" |
| #include "chrome/renderer/searchbox/search_bouncer.h" |
| #include "content/public/common/webplugininfo.h" |
| @@ -502,3 +504,142 @@ TEST_F(ChromeContentRendererClientTest, RewriteYouTubeFlashEmbed) { |
| EXPECT_EQ(GURL(data.expected), |
| client.OverrideFlashEmbedWithHTML(GURL(data.original))); |
| } |
| + |
| +class ChromeContentRendererClientMetricsTest : public testing::Test { |
| + public: |
| + ChromeContentRendererClientMetricsTest() = default; |
| + |
| + std::unique_ptr<base::HistogramSamples> GetHistogramSamples() { |
| + return histogram_tester_.GetHistogramSamplesSinceCreation( |
| + internal::kFlashYouTubeRewriteUMA); |
| + } |
| + |
| + void OverrideFlashEmbed(const GURL& gurl) { |
| + client_.OverrideFlashEmbedWithHTML(gurl); |
| + } |
| + |
| + private: |
| + ChromeContentRendererClient client_; |
| + base::HistogramTester histogram_tester_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(ChromeContentRendererClientMetricsTest); |
| +}; |
| + |
| +TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedIneligibleURL) { |
| + std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples(); |
| + EXPECT_EQ(0, samples->TotalCount()); |
| + |
| + const std::string test_data[] = { |
| + // HTTP, www, no flash |
| + "http://www.youtube.com", |
| + // No flash, subdomain |
| + "http://www.foo.youtube.com", |
| + // No flash |
| + "youtube.com", |
| + // Not youtube |
| + "http://www.plus.google.com", |
| + // Already using HTML5 |
| + "http://youtube.com/embed/deadbeef", |
| + // Already using HTML5, enablejsapi=1 |
| + "http://www.youtube.com/embed/deadbeef?enablejsapi=1"}; |
|
mlamouri (slow - plz ping)
2016/08/09 11:21:47
style: move }; to the next line
kdsilva
2016/08/09 12:38:20
Acknowledged. Keeping it as is because it's what `
|
| + |
| + for (const auto& data : test_data) { |
| + GURL gurl = GURL(data); |
| + OverrideFlashEmbed(gurl); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(0, samples->GetCount(internal::SUCCESS)); |
| + EXPECT_EQ(0, samples->TotalCount()); |
| + } |
| +} |
| + |
| +TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedSuccess) { |
| + ChromeContentRendererClient client; |
| + |
| + std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples(); |
| + auto total_count = 0; |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + |
| + const std::string test_data[] = { |
| + // HTTP, www, flash |
| + "http://www.youtube.com/v/deadbeef", |
| + // HTTP, no www, flash |
| + "http://youtube.com/v/deadbeef", |
| + // HTTPS, www, flash |
| + "https://www.youtube.com/v/deadbeef", |
| + // HTTPS, no www, flash |
| + "https://youtube.com/v/deadbeef", |
| + // Invalid parameter construct |
| + "http://www.youtube.com/v/abcd/", |
| + // Invalid parameter construct |
| + "http://www.youtube.com/v/1234/", |
| + }; |
| + |
| + for (const auto& data : test_data) { |
| + ++total_count; |
| + GURL gurl = GURL(data); |
| + OverrideFlashEmbed(gurl); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(total_count, samples->GetCount(internal::SUCCESS)); |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + } |
| + |
| + // Invalid parameter construct |
| + GURL gurl = GURL("http://www.youtube.com/abcd/v/deadbeef"); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(total_count, samples->GetCount(internal::SUCCESS)); |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| +} |
| + |
| +TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedSuccessRewrite) { |
| + ChromeContentRendererClient client; |
| + |
| + std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples(); |
| + auto total_count = 0; |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + |
| + const std::string test_data[] = { |
| + // Invalid parameter construct, one parameter |
| + "http://www.youtube.com/v/deadbeef&start=4", |
| + // Invalid parameter construct, has multiple parameters |
| + "http://www.youtube.com/v/deadbeef&start=4&fs=1?foo=bar", |
| + }; |
| + |
| + for (const auto& data : test_data) { |
| + ++total_count; |
| + GURL gurl = GURL(data); |
| + client.OverrideFlashEmbedWithHTML(gurl); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(total_count, samples->GetCount(internal::SUCCESS_PARAMS_REWRITE)); |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + } |
| + |
| + // Invalid parameter construct, not flash |
| + GURL gurl = GURL("http://www.youtube.com/embed/deadbeef&start=4"); |
| + OverrideFlashEmbed(gurl); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(total_count, samples->GetCount(internal::SUCCESS_PARAMS_REWRITE)); |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| +} |
| + |
| +TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedFailureJSAPI) { |
| + ChromeContentRendererClient client; |
| + |
| + std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples(); |
| + auto total_count = 0; |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + |
| + const std::string test_data[] = { |
| + // Invalid parameter construct, one parameter |
| + "http://www.youtube.com/v/deadbeef&enablejsapi=1", |
| + // Invalid parameter construct, has multiple parameters |
| + "http://www.youtube.com/v/deadbeef&start=4&enablejsapi=1?foo=2"}; |
|
mlamouri (slow - plz ping)
2016/08/09 11:21:47
style: move }; to the next line.
kdsilva
2016/08/09 12:38:20
Acknowledged.
|
| + |
| + for (const auto& data : test_data) { |
| + ++total_count; |
| + GURL gurl = GURL(data); |
| + OverrideFlashEmbed(gurl); |
| + samples = GetHistogramSamples(); |
| + EXPECT_EQ(total_count, samples->GetCount(internal::FAILURE_ENABLEJSAPI)); |
| + EXPECT_EQ(total_count, samples->TotalCount()); |
| + } |
| +} |