');
new Image($dom->getElementsByTagName('div')->item(0), 'http://www.example.com/');
}
public function testBaseUriIsOptionalWhenImageUrlIsAbsolute()
{
$dom = new \DOMDocument();
$dom->loadHTML('

');
$image = new Image($dom->getElementsByTagName('img')->item(0));
$this->assertSame('https://example.com/foo', $image->getUri());
}
/**
* @expectedException \InvalidArgumentException
*/
public function testAbsoluteBaseUriIsMandatoryWhenImageUrlIsRelative()
{
$dom = new \DOMDocument();
$dom->loadHTML('

');
$image = new Image($dom->getElementsByTagName('img')->item(0), 'example.com');
$image->getUri();
}
/**
* @dataProvider getGetUriTests
*/
public function testGetUri($url, $currentUri, $expected)
{
$dom = new \DOMDocument();
$dom->loadHTML(sprintf('

', $url));
$image = new Image($dom->getElementsByTagName('img')->item(0), $currentUri);
$this->assertEquals($expected, $image->getUri());
}
public function getGetUriTests()
{
return [
['/foo.png', 'http://localhost/bar/foo/', 'http://localhost/foo.png'],
['foo.png', 'http://localhost/bar/foo/', 'http://localhost/bar/foo/foo.png'],
];
}
}