Embeds: Escape periods in oEmbed regex.

Props jrf.
Fixes #38187.

git-svn-id: https://develop.svn.wordpress.org/trunk@38684 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov
2016-09-30 11:24:08 +00:00
parent 2a3ffbf498
commit 335cb0223f
2 changed files with 41 additions and 8 deletions
+37 -4
View File
@@ -8,7 +8,7 @@ class Tests_oEmbed extends WP_UnitTestCase {
'youtube-shorturl' => '#https?://youtu\.be/.*#i',
'vimeo' => '#https?://(.+\.)?vimeo\.com/.*#i',
'dailymotion' => '#https?://(www\.)?dailymotion\.com/.*#i',
'dailymotion-shorturl' => '#https?://dai.ly/.*#i',
'dailymotion-shorturl' => '#https?://dai\.ly/.*#i',
'flickr' => '#https?://(www\.)?flickr\.com/.*#i',
'flickr-shorturl' => '#https?://flic\.kr/.*#i',
'smugmug' => '#https?://(.+\.)?smugmug\.com/.*#i',
@@ -16,14 +16,14 @@ class Tests_oEmbed extends WP_UnitTestCase {
'photobucket-album' => 'http://i*.photobucket.com/albums/*',
'photobucket-group' => 'http://gi*.photobucket.com/groups/*',
'scribd' => '#https?://(www\.)?scribd\.com/doc/.*#i',
'wordpress-tv' => '#https?://wordpress.tv/.*#i',
'wordpress-tv' => '#https?://wordpress\.tv/.*#i',
'polldaddy' => '#https?://(.+\.)?polldaddy\.com/.*#i',
'polldaddy-shorturl' => '#https?://poll\.fm/.*#i',
'funnyordie' => '#https?://(www\.)?funnyordie\.com/videos/.*#i',
'twitter' => '#https?://(www\.)?twitter\.com/.+?/status(es)?/.*#i',
'twitter-timeline' => '#https?://(www\.)?twitter\.com/.+?/timelines/.*#i',
'twitter-moment' => '#https?://(www\.)?twitter\.com/i/moments/.*#i',
'vine' => '#https?://vine.co/v/.*#i',
'vine' => '#https?://vine\.co/v/.*#i',
'soundcloud' => '#https?://(www\.)?soundcloud\.com/.*#i',
'slideshare' => '#https?://(.+?\.)?slideshare\.net/.*#i',
'instagram' => '#https?://(www\.)?instagr(\.am|am\.com)/p/.*#i',
@@ -40,7 +40,7 @@ class Tests_oEmbed extends WP_UnitTestCase {
'kickstarter-shorturl' => '#https?://kck\.st/.*#i',
'cloudup' => '#https?://cloudup\.com/.*#i',
'reverbnation' => '#https?://(www\.)?reverbnation\.com/.*#i',
'videopress' => '#https?://videopress.com/v/.*#',
'videopress' => '#https?://videopress\.com/v/.*#',
'reddit-comments' => '#https?://(www\.)?reddit\.com/r/[^/]+/comments/.*#i',
'speakerdeck' => '#https?://(www\.)?speakerdeck\.com/.*#i',
'facebook-post' => '#https?://www\.facebook\.com/.*/posts/.*#i',
@@ -812,4 +812,37 @@ class Tests_oEmbed extends WP_UnitTestCase {
}
/**
* Test URLs that should not match any of the predefined providers.
*
* @group oembed
* @ticket 38187
*
* @dataProvider dataShouldNotMatchOembedRegex
*/
public function testUrlShouldNotMatchOembedRegex( $url ) {
$this->assertSame( false, self::$oembed->get_provider( $url, array( 'discover' => false ) ) );
}
/**
* Data provider for testUrlShouldNotMatchOembedRegex().
*
* @return array
*/
public function dataShouldNotMatchOembedRegex() {
$providers = self::$provider_map;
return array(
array( 'http://dairly/something' ),
array( 'https://daisly/' ),
array( 'http://wordpressstv/' ),
array( 'https://wordpressstv/somethingelse' ),
array( 'http://vinerco/v/andanother' ),
array( 'https://vineqco/v/' ),
array( 'http://videopressscom/v/' ),
array( 'https://videopresstcom/v/covered' ),
);
}
}