<?php namespace SilverStripe\Control\Tests\Middleware\ConfirmationMiddleware; use SilverStripe\Control\Middleware\ConfirmationMiddleware\UrlPathStartswithCaseInsensitive; use SilverStripe\Control\Tests\HttpRequestMockBuilder; use SilverStripe\Dev\SapphireTest; use SilverStripe\Security\Confirmation\Item; class UrlPathStartswithCaseInsensitiveTest extends SapphireTest { use HttpRequestMockBuilder; public function testPath() { $url = new UrlPathStartswithCaseInsensitive('test/path_01'); $this->assertEquals('test/path_01/', $url->getPath()); $url->setPath('test/path_02'); $this->assertEquals('test/path_02/', $url->getPath()); } public function testBypass() { $request = $this->buildRequestMock('dev/build', ['flush' => 'all']); $url = new UrlPathStartswithCaseInsensitive('dev'); $this->assertTrue($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('dev/'); $this->assertTrue($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('dev/build'); $this->assertTrue($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('dev/build/'); $this->assertTrue($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('de'); $this->assertFalse($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('dev/buil'); $this->assertFalse($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('Dev'); $this->assertTrue($url->checkRequestForBypass($request)); $url = new UrlPathStartswithCaseInsensitive('dev/builD'); $this->assertTrue($url->checkRequestForBypass($request)); } public function testConfirmationItem() { $request = $this->buildRequestMock('dev/build', ['flush' => 'all']); $url = new UrlPathStartswithCaseInsensitive('dev'); $this->assertNotNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('dev/'); $this->assertNotNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('dev/build'); $this->assertNotNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('dev/build/'); $this->assertNotNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('de'); $this->assertNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('dev/buil'); $this->assertNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('Dev/build'); $this->assertNotNull($url->getRequestConfirmationItem($request)); $url = new UrlPathStartswithCaseInsensitive('dev/builD'); $this->assertNotNull($url->getRequestConfirmationItem($request)); } }