Source of file ControllerBasedTest.php
Size: 3,098 Bytes - Last Modified: 2021-12-24T06:50:57+00:00
/var/www/docs.ssmods.com/process/src/tests/KeyCreators/ControllerBasedTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | <?php namespace Heyday\CacheInclude\KeyCreators; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Control\NullHTTPRequest; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Injector\Injector; use SilverStripe\Core\Kernel; use SilverStripe\Dev\SapphireTest; use SilverStripe\View\SSViewer; class ControllerBasedTest extends SapphireTest { /** * @var ControllerBased */ protected $keyCreator; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $controllerMock; /** * @var \PHPUnit_Framework_MockObject_MockObject */ protected $requestMock; protected function setUp() { $kernel = Injector::inst()->get(Kernel::class); $kernel->setEnvironment(Kernel::DEV); Config::modify()->set(SSViewer::class, 'themes', ['theme']); $this->controllerMock = $this->getMockBuilder(Controller::class) ->getMock(); $this->keyCreator = new ControllerBased($this->controllerMock); } protected function tearDown() { $this->keyCreator = null; } public function testNoContext() { $request = $this->getMockBuilder(NullHTTPRequest::class) ->getMock(); $request->expects($this->once()) ->method('isAjax') ->will($this->returnValue(false)); $this->controllerMock->expects($this->once()) ->method('getRequest') ->will($this->returnValue($request)); $this->assertEquals( ['dev', md5(json_encode(['theme'])), $request->getScheme(), 'test'], $this->keyCreator->getKey( 'test', ['context' => 'no'] ) ); } public function testPageContext() { $request = $this->getMockBuilder(NullHTTPRequest::class) ->getMock(); $request->expects($this->once()) ->method('getURL') ->will($this->returnValue('testurl?test=hello')); $this->controllerMock->expects($this->once()) ->method('getRequest') ->will($this->returnValue($request)); $this->assertEquals( ['dev', md5(json_encode(['theme'])), $request->getScheme(), md5('testurl?test=hello'), 'test'], $this->keyCreator->getKey( 'test', ['context' => 'page'] ) ); } public function testFullContext() { $request = $this->getMockBuilder(NullHTTPRequest::class) ->getMock(); $request->expects($this->once()) ->method('getURL') ->will($this->returnValue('testurl')); $this->controllerMock->expects($this->once()) ->method('getRequest') ->will($this->returnValue($request)); $this->assertEquals( ['dev', md5(json_encode(['theme'])), $request->getScheme(), md5('testurl'), 'test'], $this->keyCreator->getKey( 'test', ['context' => 'full'] ) ); } } |