#include "chrome/renderer/media/flash_embed_rewrite.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
TEST(FlashEmbedRewriteTest, YouTubeRewriteEmbed) {
struct TestData {
std::string original;
std::string expected;
} test_data[] = {
{"http://youtube.com", ""},
{"http://www.youtube.com", ""},
{"https://www.youtube.com", ""},
{"http://www.foo.youtube.com", ""},
{"https://www.foo.youtube.com", ""},
{"http://www.plus.google.com", ""},
{"http://www.youtube.com/embed/deadbeef", ""},
{"http://youtube.com/embed/deadbeef", ""},
{"http://www.youtube.com/embed/deadbeef&start=4", ""},
{"http://youtube.com/v/deadbeef", "http://youtube.com/embed/deadbeef"},
{"https://www.youtube.com/v/deadbeef",
"https://www.youtube.com/embed/deadbeef"},
{"http://www.youtube.com/v/deadbeef",
"http://www.youtube.com/embed/deadbeef"},
{"https://www.foo.youtube.com/v/deadbeef",
"https://www.foo.youtube.com/embed/deadbeef"},
{"http://www.youtube.com/v/deadbeef?start=4",
"http://www.youtube.com/embed/deadbeef?start=4"},
{"http://www.youtube.com/v/deadbeef?start=4&fs=1",
"http://www.youtube.com/embed/deadbeef?start=4&fs=1"},
{"http://www.youtube.com/v/deadbeef&start=4",
"http://www.youtube.com/embed/deadbeef?start=4"},
{"http://www.youtube.com/v/deadbeef&start=4&fs=1?foo=bar",
"http://www.youtube.com/embed/deadbeef?start=4&fs=1&foo=bar"},
{"http://www.youtube.com/v/deadbeef&start=4&fs=1",
"http://www.youtube.com/embed/deadbeef?start=4&fs=1"},
{"http://www.youtube.com/abcd/v/deadbeef", ""},
{"http://www.youtube.com/v/abcd/", "http://www.youtube.com/embed/abcd/"},
{"http://www.youtube.com/v/123/", "http://www.youtube.com/embed/123/"},
{"http://www.youtube-nocookie.com/v/123/",
"http://www.youtube-nocookie.com/embed/123/"},
{"http://www.youtube-nocookie.com/embed/123/", ""},
{"http://www.youtube-nocookie.com/v/123?start=foo",
"http://www.youtube-nocookie.com/embed/123?start=foo"},
{"http://www.youtube-nocookie.com/v/123?start=foo&bar=baz",
"http://www.youtube-nocookie.com/embed/123?start=foo&bar=baz"},
{"http://www.youtube-nocookie.com/v/123&start=foo",
"http://www.youtube-nocookie.com/embed/123?start=foo"},
{"http://www.youtube-nocookie.com/v/123&start=foo&bar=baz",
"http://www.youtube-nocookie.com/embed/123?start=foo&bar=baz"},
{"https://www.youtube-nocookie.com/v/123/",
"https://www.youtube-nocookie.com/embed/123/"},
{"http://www.youtube.com/embed/deadbeef?enablejsapi=1", ""},
{"http://www.youtube.com/v/deadbeef?enablejsapi=1",
"http://www.youtube.com/embed/deadbeef?enablejsapi=1"},
{"http://www.youtube-nocookie.com/v/123?enablejsapi=1",
"http://www.youtube-nocookie.com/embed/123?enablejsapi=1"},
{"http://www.youtube.com/v/deadbeef?enablejsapi=1&foo=2",
"http://www.youtube.com/embed/deadbeef?enablejsapi=1&foo=2"},
{"http://www.youtube.com/v/deadbeef&enablejsapi=1",
"http://www.youtube.com/embed/deadbeef?enablejsapi=1"},
{"http://www.youtube.com/v/deadbeef&enablejsapi=1&foo=2",
"http://www.youtube.com/embed/deadbeef?enablejsapi=1&foo=2"},
{"http://www.youtube.com/v/deadbeef&start=4&enablejsapi=1",
"http://www.youtube.com/embed/deadbeef?start=4&enablejsapi=1"},
{"http://wrel=0&coww.youtube.com/v/vxt_QAYSKLA", ""}};
for (const auto& data : test_data) {
EXPECT_EQ(GURL(data.expected),
FlashEmbedRewrite::RewriteFlashEmbedURL(GURL(data.original)));
}
}
TEST(FlashEmbedRewriteTest, DailymotionRewriteEmbed) {
struct TestData {
std::string original;
std::string expected;
} test_data[] = {
{"http://dailymotion.com", ""},
{"http://www.dailymotion.com", ""},
{"https://www.dailymotion.com", ""},
{"http://www.foo.dailymotion.com", ""},
{"https://www.foo.dailymotion.com", ""},
{"http://www.dailymotion.com/embed/video/deadbeef", ""},
{"http://dailymotion.com/embed/video/deadbeef", ""},
{"http://www.dailymotion.com/embed/video/deadbeef&start=4", ""},
{"http://dailymotion.com/swf/deadbeef",
"http://dailymotion.com/embed/video/deadbeef"},
{"https://www.dailymotion.com/swf/deadbeef",
"https://www.dailymotion.com/embed/video/deadbeef"},
{"http://www.dailymotion.com/swf/deadbeef",
"http://www.dailymotion.com/embed/video/deadbeef"},
{"https://www.foo.dailymotion.com/swf/deadbeef",
"https://www.foo.dailymotion.com/embed/video/deadbeef"},
{"http://www.dailymotion.com/swf/deadbeef?start=4",
"http://www.dailymotion.com/embed/video/deadbeef?start=4"},
{"http://www.dailymotion.com/swf/deadbeef?start=4&fs=1",
"http://www.dailymotion.com/embed/video/deadbeef?start=4&fs=1"},
{"http://www.dailymotion.com/swf/deadbeef&start=4",
"http://www.dailymotion.com/embed/video/deadbeef&start=4"},
{"http://www.dailymotion.com/abcd/swf/deadbeef", ""},
{"http://www.dailymotion.com/swf/video/deadbeef",
"http://www.dailymotion.com/embed/video/deadbeef"}};
for (const auto& data : test_data) {
EXPECT_EQ(GURL(data.expected),
FlashEmbedRewrite::RewriteFlashEmbedURL(GURL(data.original)));
}
}
TEST(FlashEmbedRewriteTest, VimeoRewriteEmbed) {
struct TestData {
std::string original;
std::string expected;
} test_data[] = {
{"http://vimeo.com", ""},
{"http://wwwvimeo.com", ""},
{"https://www.vimeo.com", ""},
{"http://www.foo.vimeo.com", ""},
{"https://www.foo.vimeo.com", ""},
{"https://player.vimeo.com/video/deadbeef", ""},
{"https://vimeo.com/video/deadbeef", ""},
{"http://vimeo.com/moogaloop.swf?clip_id=deadbeef",
"http://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/moogaloop.swf?clip_id=deadbeef",
"https://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/"
"moogaloop.swf?clip_id=deadbeef&server=vimeo.com&color=00adef&"
"amp;fullscreen=1",
"https://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/moogaloop.swf&clip_id=deadbeef",
"https://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/"
"moogaloop.swf?server=vimeo.com&clip_id=deadbeef&color=00adef&"
"amp;fullscreen=1",
"https://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/"
"moogaloop.swf?server=vimeo.com&color=00adef&fullscreen=1?clip_"
"id=deadbeef",
"https://player.vimeo.com/video/deadbeef"},
{"https://vimeo.com/?clip_id=deadbeef", ""}};
for (const auto& data : test_data) {
EXPECT_EQ(GURL(data.expected),
FlashEmbedRewrite::RewriteFlashEmbedURL(GURL(data.original)));
}
}