| 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 f7df73e83a0eea3a4c96f6695c5f4c479cf6aa77..4a4e831fdebc0825cd3ab8e6c176d319405f69e3 100644
|
| --- a/chrome/renderer/chrome_content_renderer_client_unittest.cc
|
| +++ b/chrome/renderer/chrome_content_renderer_client_unittest.cc
|
| @@ -411,7 +411,8 @@ TEST_F(ChromeContentRendererClientTest, ShouldSuppressErrorPage) {
|
| std::vector<GURL>(), GURL::EmptyGURL());
|
| }
|
|
|
| -TEST_F(ChromeContentRendererClientTest, RewriteYouTubeFlashEmbed) {
|
| +// These are tests that are common for both Android and desktop browsers.
|
| +TEST_F(ChromeContentRendererClientTest, RewriteEmbedCommon) {
|
| struct TestData {
|
| std::string original;
|
| std::string expected;
|
| @@ -429,14 +430,10 @@ TEST_F(ChromeContentRendererClientTest, RewriteYouTubeFlashEmbed) {
|
| {"http://www.youtube.com/embed/deadbeef", ""},
|
| // URL isn't using Flash, no www
|
| {"http://youtube.com/embed/deadbeef", ""},
|
| - // URL isn't using Flash, has JS API enabled
|
| - {"http://www.youtube.com/embed/deadbeef?enablejsapi=1", ""},
|
| // URL isn't using Flash, invalid parameter construct
|
| {"http://www.youtube.com/embed/deadbeef&start=4", ""},
|
| // URL is using Flash, no www
|
| {"http://youtube.com/v/deadbeef", "http://youtube.com/embed/deadbeef"},
|
| - // URL is using Flash, has JS API enabled
|
| - {"http://www.youtube.com/v/deadbeef?enablejsapi=1", ""},
|
| // URL is using Flash, is valid, https
|
| {"https://www.youtube.com/v/deadbeef",
|
| "https://www.youtube.com/embed/deadbeef"},
|
| @@ -478,8 +475,6 @@ TEST_F(ChromeContentRendererClientTest, RewriteYouTubeFlashEmbed) {
|
| "http://www.youtube-nocookie.com/embed/123/"},
|
| // youtube-nocookie.com, isn't using flash
|
| {"http://www.youtube-nocookie.com/embed/123/", ""},
|
| - // youtube-nocookie.com, has JS API enabled
|
| - {"http://www.youtube-nocookie.com/v/123?enablejsapi=1", ""},
|
| // youtube-nocookie.com, has one parameter
|
| {"http://www.youtube-nocookie.com/v/123?start=foo",
|
| "http://www.youtube-nocookie.com/embed/123?start=foo"},
|
| @@ -505,6 +500,63 @@ TEST_F(ChromeContentRendererClientTest, RewriteYouTubeFlashEmbed) {
|
| client.OverrideFlashEmbedWithHTML(GURL(data.original)));
|
| }
|
|
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(ChromeContentRendererClientTest, RewriteEmbedAndroid) {
|
| + struct TestData {
|
| + std::string original;
|
| + std::string expected;
|
| + } test_data[] = {
|
| + // URL isn't using Flash, has JS API enabled
|
| + {"http://www.youtube.com/embed/deadbeef?enablejsapi=1", ""},
|
| + // URL is using Flash, has JS API enabled
|
| + {"http://www.youtube.com/v/deadbeef?enablejsapi=1",
|
| + "http://www.youtube.com/embed/deadbeef?enablejsapi=1"},
|
| + // youtube-nocookie.com, has JS API enabled
|
| + {"http://www.youtube-nocookie.com/v/123?enablejsapi=1",
|
| + "http://www.youtube-nocookie.com/embed/123?enablejsapi=1"},
|
| + // URL is using Flash, has JS API enabled, invalid parameter construct
|
| + {"http://www.youtube.com/v/deadbeef&enablejsapi=1",
|
| + "http://www.youtube.com/embed/deadbeef?enablejsapi=1"},
|
| + // URL is using Flash, has JS API enabled, invalid parameter construct,
|
| + // has multiple parameters
|
| + {"http://www.youtube.com/v/deadbeef&start=4&enablejsapi=1",
|
| + "http://www.youtube.com/embed/deadbeef?start=4&enablejsapi=1"},
|
| + };
|
| +
|
| + ChromeContentRendererClient client;
|
| +
|
| + for (const auto& data : test_data) {
|
| + EXPECT_EQ(GURL(data.expected),
|
| + client.OverrideFlashEmbedWithHTML(GURL(data.original)));
|
| + }
|
| +}
|
| +#else
|
| +TEST_F(ChromeContentRendererClientTest, RewriteEmbedDesktop) {
|
| + struct TestData {
|
| + std::string original;
|
| + std::string expected;
|
| + } test_data[] = {
|
| + // URL isn't using Flash, has JS API enabled
|
| + {"http://www.youtube.com/embed/deadbeef?enablejsapi=1", ""},
|
| + // URL is using Flash, has JS API enabled
|
| + {"http://www.youtube.com/v/deadbeef?enablejsapi=1", ""},
|
| + // youtube-nocookie.com, has JS API enabled
|
| + {"http://www.youtube-nocookie.com/v/123?enablejsapi=1", ""},
|
| + // URL is using Flash, has JS API enabled, invalid parameter construct
|
| + {"http://www.youtube.com/v/deadbeef&enablejsapi=1", ""},
|
| + // URL is using Flash, has JS API enabled, invalid parameter construct,
|
| + // has multiple parameters
|
| + {"http://www.youtube.com/v/deadbeef&start=4&enablejsapi=1", ""},
|
| + };
|
| +
|
| + ChromeContentRendererClient client;
|
| +
|
| + for (const auto& data : test_data) {
|
| + EXPECT_EQ(GURL(data.expected),
|
| + client.OverrideFlashEmbedWithHTML(GURL(data.original)));
|
| + }
|
| +}
|
| +#endif
|
| class ChromeContentRendererClientMetricsTest : public testing::Test {
|
| public:
|
| ChromeContentRendererClientMetricsTest() = default;
|
| @@ -621,7 +673,38 @@ TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedSuccessRewrite) {
|
| EXPECT_EQ(total_count, samples->TotalCount());
|
| }
|
|
|
| -TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedFailureJSAPI) {
|
| +#if defined(OS_ANDROID)
|
| +TEST_F(ChromeContentRendererClientMetricsTest,
|
| + RewriteEmbedFailureJSAPIAndroid) {
|
| + ChromeContentRendererClient client;
|
| +
|
| + std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples();
|
| + auto total_count = 0;
|
| + EXPECT_EQ(total_count, samples->TotalCount());
|
| +
|
| + const std::string test_data[] = {
|
| + // Valid parameter construct, one parameter
|
| + "http://www.youtube.com/v/deadbeef?enablejsapi=1",
|
| + // Valid parameter construct, has multiple parameters
|
| + "http://www.youtube.com/v/deadbeef?enablejsapi=1&foo=2",
|
| + // 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&enablejsapi=1&foo=2"};
|
| +
|
| + for (const auto& data : test_data) {
|
| + ++total_count;
|
| + GURL gurl = GURL(data);
|
| + OverrideFlashEmbed(gurl);
|
| + samples = GetHistogramSamples();
|
| + EXPECT_EQ(total_count, samples->GetCount(internal::SUCCESS_ENABLEJSAPI));
|
| + EXPECT_EQ(total_count, samples->TotalCount());
|
| + }
|
| +}
|
| +
|
| +#else
|
| +TEST_F(ChromeContentRendererClientMetricsTest,
|
| + RewriteEmbedFailureJSAPIDesktop) {
|
| ChromeContentRendererClient client;
|
|
|
| std::unique_ptr<base::HistogramSamples> samples = GetHistogramSamples();
|
| @@ -629,6 +712,8 @@ TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedFailureJSAPI) {
|
| EXPECT_EQ(total_count, samples->TotalCount());
|
|
|
| const std::string test_data[] = {
|
| + // Valid parameter construct, one parameter
|
| + "http://www.youtube.com/v/deadbeef?enablejsapi=1",
|
| // Invalid parameter construct, one parameter
|
| "http://www.youtube.com/v/deadbeef&enablejsapi=1",
|
| // Invalid parameter construct, has multiple parameters
|
| @@ -643,3 +728,4 @@ TEST_F(ChromeContentRendererClientMetricsTest, RewriteEmbedFailureJSAPI) {
|
| EXPECT_EQ(total_count, samples->TotalCount());
|
| }
|
| }
|
| +#endif
|
|
|