/** * This test checks that targets for resource links are correctly replaced * * @test */ public function evaluateReplaceResourceLinkTargets() { $assetIdentifier = 'aeabe76a-551a-495f-a324-ad9a86b2aff8'; $resourceLinkTarget = '_blank'; $value = 'This string contains two asset links and an external link: one with a target set <a target="top" href="asset://' . $assetIdentifier . '">example</a> and one without a target <a href="asset://' . $assetIdentifier . '">example2</a> and an external link <a href="http://www.example.org">example3</a>'; $this->addValueExpectation($value, null, false, null, $resourceLinkTarget); $this->mockWorkspace->expects($this->any())->method('getName')->will($this->returnValue('live')); $self = $this; $this->mockLinkingService->expects($this->atLeastOnce())->method('resolveAssetUri')->will($this->returnCallback(function ($assetUri) use($self, $assetIdentifier) { if ($assetUri !== 'asset://' . $assetIdentifier) { $self->fail('Unexpected asset URI "' . $assetUri . '"'); } return 'http://localhost/_Resources/01'; })); $expectedResult = 'This string contains two asset links and an external link: one with a target set <a target="' . $resourceLinkTarget . '" href="http://localhost/_Resources/01">example</a> and one without a target <a target="' . $resourceLinkTarget . '" href="http://localhost/_Resources/01">example2</a> and an external link <a href="http://www.example.org">example3</a>'; $actualResult = $this->convertUrisImplementation->evaluate(); $this->assertSame($expectedResult, $actualResult); }