ENHANCEMENT: add test to Oembed

This commit is contained in:
Mateusz Uzdowski 2012-05-24 16:51:30 +12:00
parent 32817b4133
commit 5b845248ed
2 changed files with 37 additions and 0 deletions

View File

@ -202,6 +202,10 @@ class Oembed_Result extends ViewableData {
parent::__construct();
}
public function getOembedURL() {
return $this->url;
}
/**
* Fetches the JSON data from the Oembed URL (cached).

View File

@ -0,0 +1,33 @@
<?php
class OembedTest extends SapphireTest {
function testGetOembedFromUrl() {
Config::inst()->update('Oembed', 'providers', array(
'http://*.silverstripe.com/watch*'=>'http://www.silverstripe.com/oembed/'
));
$escapedEndpointURL = urlencode("http://www.silverstripe.com/oembed/");
// Test with valid URL
$result = Oembed::get_oembed_from_url('http://www.silverstripe.com/watch12345');
$this->assertTrue($result!=false);
$this->assertEquals($result->getOembedURL(), 'http://www.silverstripe.com/oembed/?format=json&url='.urlencode('http://www.silverstripe.com/watch12345'), 'Triggers on matching URL');
// Test without www.
$result = Oembed::get_oembed_from_url('http://silverstripe.com/watch12345');
$this->assertTrue($result!=false);
$this->assertEquals($result->getOembedURL(), 'http://www.silverstripe.com/oembed/?format=json&url='.urlencode('http://silverstripe.com/watch12345'), 'Triggers on matching URL without www');
// Test if options make their way to the URL
$result = Oembed::get_oembed_from_url('http://www.silverstripe.com/watch12345', false, array('foo'=>'bar'));
$this->assertTrue($result!=false);
$this->assertEquals($result->getOembedURL(), 'http://www.silverstripe.com/oembed/?format=json&url='.urlencode('http://www.silverstripe.com/watch12345').'&foo=bar', 'Includes options');
// Test magic.
$result = Oembed::get_oembed_from_url('http://www.silverstripe.com/watch12345', false, array('height'=>'foo', 'width'=>'bar'));
$this->assertTrue($result!=false);
$urlParts = parse_url($result->getOembedURL());
parse_str($urlParts['query'], $query);
$this->assertEquals($query['maxheight'], 'foo', 'Magically creates maxheight option');
$this->assertEquals($query['maxwidth'], 'bar', 'Magically creates maxwidth option');
}
}