for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SilverStripe\View\Tests\Embed;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\View\Embed\EmbedContainer;
use SilverStripe\View\Embed\Embeddable;
use Embed\Http\Crawler;
/**
* Special unit test class to faciliate mock embed/embed requests
*/
class EmbedUnitTest extends SapphireTest
{
private bool $firstRequest = true;
public function getFirstRequest(): bool
return $this->firstRequest;
}
public function setFirstRequest(bool $b): void
$this->firstRequest = $b;
protected function createEmbedContainer(
string $urlA,
string $urlB,
string $firstResponse,
string $secondResponse
): EmbedContainer {
$mockUriA = new MockUri($urlA);
$mockUriB = new MockUri($urlB);
$crawlerMock = $this->createMock(Crawler::class);
$crawlerMock->method('getResponseUri')->willReturn($mockUriA);
$crawlerMock->method('createUri')->willReturn($mockUriB);
$crawlerMock->method('sendRequest')->willReturn(new MockResponse($this, $firstResponse, $secondResponse));
$crawlerMock->method('createRequest')->willReturn(new MockRequest($this, $mockUriA));
$embedContainer = new EmbedContainer($urlA);
$embedContainer->setCrawler($crawlerMock);
return $embedContainer;