Chris@0: container->get('image.toolkit.manager'); Chris@0: $toolkits = $manager->getAvailableToolkits(); Chris@0: $this->assertTrue(isset($toolkits['test']), 'The working toolkit was returned.'); Chris@0: $this->assertTrue(isset($toolkits['test:derived_toolkit']), 'The derived toolkit was returned.'); Chris@0: $this->assertFalse(isset($toolkits['broken']), 'The toolkit marked unavailable was not returned'); Chris@0: $this->assertToolkitOperationsCalled([]); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests Image's methods. Chris@0: */ Chris@0: public function testLoad() { Chris@0: $image = $this->getImage(); Chris@0: $this->assertTrue(is_object($image), 'Returned an object.'); Chris@0: $this->assertEqual($image->getToolkitId(), 'test', 'Image had toolkit set.'); Chris@0: $this->assertToolkitOperationsCalled(['parseFile']); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test the image_save() function. Chris@0: */ Chris@0: public function testSave() { Chris@0: $this->assertFalse($this->image->save(), 'Function returned the expected value.'); Chris@0: $this->assertToolkitOperationsCalled(['save']); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test the image_apply() function. Chris@0: */ Chris@0: public function testApply() { Chris@0: $data = ['p1' => 1, 'p2' => TRUE, 'p3' => 'text']; Chris@0: $this->assertTrue($this->image->apply('my_operation', $data), 'Function returned the expected value.'); Chris@0: Chris@0: // Check that apply was called and with the correct parameters. Chris@0: $this->assertToolkitOperationsCalled(['apply']); Chris@0: $calls = $this->imageTestGetAllCalls(); Chris@0: $this->assertEqual($calls['apply'][0][0], 'my_operation', "'my_operation' was passed correctly as operation"); Chris@0: $this->assertEqual($calls['apply'][0][1]['p1'], 1, 'integer parameter p1 was passed correctly'); Chris@0: $this->assertEqual($calls['apply'][0][1]['p2'], TRUE, 'boolean parameter p2 was passed correctly'); Chris@0: $this->assertEqual($calls['apply'][0][1]['p3'], 'text', 'string parameter p3 was passed correctly'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test the image_apply() function. Chris@0: */ Chris@0: public function testApplyNoParameters() { Chris@0: $this->assertTrue($this->image->apply('my_operation'), 'Function returned the expected value.'); Chris@0: Chris@0: // Check that apply was called and with the correct parameters. Chris@0: $this->assertToolkitOperationsCalled(['apply']); Chris@0: $calls = $this->imageTestGetAllCalls(); Chris@0: $this->assertEqual($calls['apply'][0][0], 'my_operation', "'my_operation' was passed correctly as operation"); Chris@0: $this->assertEqual($calls['apply'][0][1], [], 'passing no parameters was handled correctly'); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests image toolkit operations inheritance by derivative toolkits. Chris@0: */ Chris@0: public function testDerivative() { Chris@0: $toolkit_manager = $this->container->get('image.toolkit.manager'); Chris@0: $operation_manager = $this->container->get('image.toolkit.operation.manager'); Chris@0: Chris@0: $toolkit = $toolkit_manager->createInstance('test:derived_toolkit'); Chris@0: Chris@0: // Load an overwritten and an inherited operation. Chris@0: $blur = $operation_manager->getToolkitOperation($toolkit, 'blur'); Chris@0: $invert = $operation_manager->getToolkitOperation($toolkit, 'invert'); Chris@0: Chris@0: $this->assertIdentical('foo_derived', $blur->getPluginId(), "'Blur' operation overwritten by derivative."); Chris@0: $this->assertIdentical('bar', $invert->getPluginId(), '"Invert" operation inherited from base plugin.'); Chris@0: } Chris@0: Chris@0: }