/**
* @dataProvider getParamsForWatermarks
* @covers Imbo\Image\Transformation\Watermark::transform
*/
public function testApplyToImageTopLeftWithOnlyWidthAndDefaultWatermark($params, $colors)
{
$blob = file_get_contents(FIXTURES_DIR . '/white.png');
$image = new Image();
$image->setBlob($blob);
$image->setWidth($this->width);
$image->setHeight($this->height);
$transformation = $this->getTransformation();
$transformation->setDefaultImage($this->watermarkImg);
$expectedWatermark = $this->watermarkImg;
if (isset($params['img'])) {
$expectedWatermark = $params['img'];
}
$storage = $this->getMock('Imbo\\Storage\\StorageInterface');
$storage->expects($this->once())->method('getImage')->with('someUser', $expectedWatermark)->will($this->returnValue(file_get_contents(FIXTURES_DIR . '/black.png')));
$request = $this->getMock('Imbo\\Http\\Request\\Request');
$request->expects($this->once())->method('getUser')->will($this->returnValue('someUser'));
$event = new Event();
$event->setArguments(['image' => $image, 'params' => $params, 'storage' => $storage, 'request' => $request]);
$imagick = new Imagick();
$imagick->readImageBlob($blob);
$transformation->setImagick($imagick)->transform($event);
foreach ($colors as $c) {
$this->verifyColor($imagick, $c['x'], $c['y'], $c['colors']);
}
}