mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
|
||
|
use Embed\Adapters\Webpage;
|
||
|
use Embed\Embed;
|
||
|
use SilverStripe\Forms\HtmlEditor\EmbedShortcodeProvider;
|
||
|
|
||
|
/**
|
||
|
* Class EmbedShortcodeProviderTest
|
||
|
*
|
||
|
* Because Embed/Embed does not have a mockup, the tests have to run against a live environment.
|
||
|
* I've tried to fix it by serializing the data to a file, but to no avail.
|
||
|
* Any improvements on not having to call external resources are welcome.
|
||
|
*/
|
||
|
class EmbedShortcodeProviderTest extends SapphireTest
|
||
|
{
|
||
|
|
||
|
/**
|
||
|
* @var string test youtube. The SilverStripe Platform promotion by UncleCheese
|
||
|
*/
|
||
|
protected static $test_youtube = 'https://www.youtube.com/watch?v=dM15HfUYwF0';
|
||
|
|
||
|
/**
|
||
|
* @var string test Soundcloud. One of my favorite bands, Delain, Suckerpunch.
|
||
|
*/
|
||
|
protected static $test_soundcloud = 'http://soundcloud.com/napalmrecords/delain-suckerpunch';
|
||
|
|
||
|
public function setUp()
|
||
|
{
|
||
|
return parent::setUp();
|
||
|
}
|
||
|
|
||
|
public function testYoutube()
|
||
|
{
|
||
|
/** @var Webpage $result */
|
||
|
$result = Embed::create(self::$test_youtube, array());
|
||
|
self::assertEquals($result->providerName, 'YouTube');
|
||
|
$embedded = EmbedShortcodeProvider::embedForTemplate($result);
|
||
|
self::assertContains("<div class='media'", $embedded);
|
||
|
self::assertContains('iframe', $embedded);
|
||
|
self::assertContains('youtube.com', $embedded);
|
||
|
self::assertContains('embed', $embedded);
|
||
|
self::assertContains('dM15HfUYwF0', $embedded);
|
||
|
}
|
||
|
|
||
|
public function testSoundcloud()
|
||
|
{
|
||
|
/** @var Webpage $result */
|
||
|
$result = Embed::create(self::$test_soundcloud, array());
|
||
|
self::assertEquals($result->providerName, 'SoundCloud');
|
||
|
$embedded = EmbedShortcodeProvider::embedForTemplate($result);
|
||
|
self::assertContains("<div class='media'", $embedded);
|
||
|
self::assertContains('iframe', $embedded);
|
||
|
self::assertContains('soundcloud.com', $embedded);
|
||
|
self::assertContains('player', $embedded);
|
||
|
self::assertContains('tracks%2F242518079', $embedded);
|
||
|
}
|
||
|
}
|
||
|
|