diff --git a/.gitignore b/.gitignore index 4f8970b11..4421ef348 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +/assets/ .sass-cache .DS_Store npm-debug.log diff --git a/tests/php/Control/ControllerTest.php b/tests/php/Control/ControllerTest.php index 6aa8c9cf2..a38648bc5 100644 --- a/tests/php/Control/ControllerTest.php +++ b/tests/php/Control/ControllerTest.php @@ -2,7 +2,6 @@ namespace SilverStripe\Control\Tests; -use InvalidArgumentException; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Control\Tests\ControllerTest\AccessBaseController; @@ -15,10 +14,8 @@ use SilverStripe\Control\Tests\ControllerTest\IndexSecuredController; use SilverStripe\Control\Tests\ControllerTest\SubController; use SilverStripe\Control\Tests\ControllerTest\TestController; use SilverStripe\Control\Tests\ControllerTest\UnsecuredController; -use SilverStripe\Dev\Deprecation; use SilverStripe\Dev\FunctionalTest; use SilverStripe\Security\Member; -use SilverStripe\Security\Security; use SilverStripe\View\SSViewer; class ControllerTest extends FunctionalTest @@ -47,28 +44,21 @@ class ControllerTest extends FunctionalTest { parent::setUp(); Director::config()->update('alternate_base_url', '/'); - $this->depSettings = Deprecation::dump_settings(); // Add test theme $themeDir = substr(__DIR__, strlen(FRAMEWORK_DIR)) . '/ControllerTest/'; $themes = [ "silverstripe/framework:{$themeDir}", - SSViewer::DEFAULT_THEME + SSViewer::DEFAULT_THEME, ]; SSViewer::set_themes($themes); } - protected function tearDown() - { - Deprecation::restore_settings($this->depSettings); - parent::tearDown(); - } - public function testDefaultAction() { /* For a controller with a template, the default action will simple run that template. */ $response = $this->get("TestController/"); - $this->assertRegExp("/This is the main template. Content is 'default content'/", $response->getBody()); + $this->assertContains("This is the main template. Content is 'default content'", $response->getBody()); } public function testMethodActions() @@ -76,19 +66,19 @@ class ControllerTest extends FunctionalTest /* The Action can refer to a method that is called on the object. If a method returns an array, then it * will be used to customise the template data */ $response = $this->get("TestController/methodaction"); - $this->assertRegExp("/This is the main template. Content is 'methodaction content'./", $response->getBody()); + $this->assertContains("This is the main template. Content is 'methodaction content'.", $response->getBody()); /* If the method just returns a string, then that will be used as the response */ $response = $this->get("TestController/stringaction"); - $this->assertRegExp("/stringaction was called./", $response->getBody()); + $this->assertContains("stringaction was called.", $response->getBody()); } public function testTemplateActions() { /* If there is no method, it can be used to point to an alternative template. */ $response = $this->get("TestController/templateaction"); - $this->assertRegExp( - "/This is the template for templateaction. Content is 'default content'./", + $this->assertContains( + "This is the template for templateaction. Content is 'default content'.", $response->getBody() ); } @@ -188,15 +178,15 @@ class ControllerTest extends FunctionalTest 'Access denied on action with $allowed_actions on defining controller, ' . 'if action is not a method but rather a template discovered by naming convention' ); - Security::setCurrentUser($adminUser); - $response = $this->get("AccessSecuredController/templateaction"); - $this->assertEquals( - 200, - $response->getStatusCode(), - 'Access granted for logged in admin on action with $allowed_actions on defining controller, ' . 'if action is not a method but rather a template discovered by naming convention' - ); + Member::actAs($adminUser, function () { + $response = $this->get("AccessSecuredController/templateaction"); + $this->assertEquals( + 200, + $response->getStatusCode(), + 'Access granted for logged in admin on action with $allowed_actions on defining controller, ' . 'if action is not a method but rather a template discovered by naming convention' + ); + }); - Security::setCurrentUser(null); $response = $this->get("AccessSecuredController/adminonly"); $this->assertEquals( 403, @@ -218,15 +208,15 @@ class ControllerTest extends FunctionalTest "Access denied to protected method even if its listed in allowed_actions" ); - Security::setCurrentUser($adminUser); - $response = $this->get("AccessSecuredController/adminonly"); - $this->assertEquals( - 200, - $response->getStatusCode(), - "Permission codes are respected when set in \$allowed_actions" - ); + Member::actAs($adminUser, function () { + $response = $this->get("AccessSecuredController/adminonly"); + $this->assertEquals( + 200, + $response->getStatusCode(), + "Permission codes are respected when set in \$allowed_actions" + ); + }); - Security::setCurrentUser(null); $response = $this->get('AccessBaseController/extensionmethod1'); $this->assertEquals( 200, @@ -262,14 +252,14 @@ class ControllerTest extends FunctionalTest "Access denied when index action is limited through allowed_actions, " . "and doesn't satisfy checks" ); - Security::setCurrentUser($adminUser); - $response = $this->get('IndexSecuredController/'); - $this->assertEquals( - 200, - $response->getStatusCode(), - "Access granted when index action is limited through allowed_actions, " . "and does satisfy checks" - ); - Security::setCurrentUser(null); + Member::actAs($adminUser, function () { + $response = $this->get('IndexSecuredController/'); + $this->assertEquals( + 200, + $response->getStatusCode(), + "Access granted when index action is limited through allowed_actions, " . "and does satisfy checks" + ); + }); } /** @@ -417,14 +407,6 @@ class ControllerTest extends FunctionalTest ); } - /* Controller::BaseURL no longer exists, but was just a direct call to Director::BaseURL, so not sure what this - * code was supposed to test - public function testBaseURL() { - Config::modify()->merge('Director', 'alternate_base_url', '/baseurl/'); - $this->assertEquals(Controller::BaseURL(), Director::BaseURL()); - } - */ - public function testRedirectBackByReferer() { $internalRelativeUrl = Controller::join_links(Director::baseURL(), '/some-url'); diff --git a/tests/php/Control/CookieJarTest.php b/tests/php/Control/CookieJarTest.php index 847b21f62..4cb478aa0 100644 --- a/tests/php/Control/CookieJarTest.php +++ b/tests/php/Control/CookieJarTest.php @@ -66,7 +66,7 @@ class CookieJarTest extends SapphireTest //PHP will replace an incoming COOKIE called 'var.with.dots' to 'var_with_dots' $cookieJar = new CookieJar( array( - 'var_with_dots' => 'value', + 'var_with_dots' => 'value', ) ); @@ -87,7 +87,7 @@ class CookieJarTest extends SapphireTest //load with a cookie $cookieJar = new CookieJar( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ) ); @@ -110,8 +110,8 @@ class CookieJarTest extends SapphireTest //check we can get all cookies $this->assertEquals( array( - 'cookieExisting' => 'i woz changed', - 'cookieNew' => 'i am new', + 'cookieExisting' => 'i woz changed', + 'cookieNew' => 'i am new', ), $cookieJar->getAll() ); @@ -119,7 +119,7 @@ class CookieJarTest extends SapphireTest //check we can get all original cookies $this->assertEquals( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ), $cookieJar->getAll(false) ); @@ -133,7 +133,7 @@ class CookieJarTest extends SapphireTest //load an existing cookie $cookieJar = new CookieJar( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ) ); diff --git a/tests/php/Control/CookieTest.php b/tests/php/Control/CookieTest.php index 072fa2c76..160fe8754 100644 --- a/tests/php/Control/CookieTest.php +++ b/tests/php/Control/CookieTest.php @@ -10,22 +10,12 @@ use SilverStripe\Control\Cookie; class CookieTest extends SapphireTest { - private $cookieInst; - protected function setUp() { parent::setUp(); - Injector::nest(); Injector::inst()->registerService(new CookieJar($_COOKIE), 'SilverStripe\\Control\\Cookie_Backend'); } - protected function tearDown() - { - //restore the cookie_backend - Injector::unnest(); - parent::tearDown(); - } - /** * Check a new cookie inst will be loaded with the superglobal by default */ @@ -132,7 +122,7 @@ class CookieTest extends SapphireTest //load with a cookie $cookieJar = new CookieJar( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ) ); Injector::inst()->registerService($cookieJar, 'SilverStripe\\Control\\Cookie_Backend'); @@ -156,8 +146,8 @@ class CookieTest extends SapphireTest //check we can get all cookies $this->assertEquals( array( - 'cookieExisting' => 'i woz changed', - 'cookieNew' => 'i am new', + 'cookieExisting' => 'i woz changed', + 'cookieNew' => 'i am new', ), Cookie::get_all() ); @@ -165,7 +155,7 @@ class CookieTest extends SapphireTest //check we can get all original cookies $this->assertEquals( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ), Cookie::get_all(false) ); @@ -179,7 +169,7 @@ class CookieTest extends SapphireTest //load an existing cookie $cookieJar = new CookieJar( array( - 'cookieExisting' => 'i woz here', + 'cookieExisting' => 'i woz here', ) ); Injector::inst()->registerService($cookieJar, 'SilverStripe\\Control\\Cookie_Backend'); diff --git a/tests/php/Control/DirectorTest.php b/tests/php/Control/DirectorTest.php index e6da8b089..0e2c3d25a 100644 --- a/tests/php/Control/DirectorTest.php +++ b/tests/php/Control/DirectorTest.php @@ -1,4 +1,5 @@ true, - 'd:\\' => true, - 'e/' => false, - 's:/directory' => true, - '/var/www' => true, - '\\Something' => true, - 'something/c:' => false, - 'folder' => false, - 'a/c:/' => false - ); + $this->assertEquals($result, Director::is_absolute($path)); + } - foreach ($expected as $path => $result) { - $this->assertEquals(Director::is_absolute($path), $result, "Test result for $path"); - } + public function provideAbsolutePaths() + { + return [ + ['C:/something', true], + ['d:\\', true], + ['e/', false], + ['s:/directory', true], + ['/var/www', true], + ['\\Something', true], + ['something/c:', false], + ['folder', false], + ['a/c:/', false], + ]; } public function testIsAbsoluteUrl() @@ -486,7 +489,7 @@ class DirectorTest extends SapphireTest public function providerTestTestRequestCarriesGlobals() { $tests = []; - $fixture = [ 'somekey' => 'sometestvalue' ]; + $fixture = ['somekey' => 'sometestvalue']; foreach (array('get', 'post') as $method) { foreach (array('return%sValue', 'returnRequestValue', 'returnCookieValue') as $testfunction) { $url = 'TestController/' . sprintf($testfunction, ucfirst($method)) @@ -761,7 +764,7 @@ class DirectorTest extends SapphireTest null, null, null, - [ 'X-Forwarded-Protocol' => 'https' ] + ['X-Forwarded-Protocol' => 'https'] )->getBody() ); @@ -773,7 +776,7 @@ class DirectorTest extends SapphireTest null, null, null, - [ 'X-Forwarded-Protocol' => 'http' ] + ['X-Forwarded-Protocol' => 'http'] )->getBody() ); @@ -785,7 +788,7 @@ class DirectorTest extends SapphireTest null, null, null, - [ 'X-Forwarded-Protocol' => 'ftp' ] + ['X-Forwarded-Protocol' => 'ftp'] )->getBody() ); @@ -925,7 +928,7 @@ class DirectorTest extends SapphireTest // Global middleware $middleware = new DirectorTest\TestMiddleware; - Director::singleton()->setMiddlewares([ $middleware ]); + Director::singleton()->setMiddlewares([$middleware]); // URL rules, one of which has a specific middleware Config::modify()->set( diff --git a/tests/php/Control/Email/EmailTest.php b/tests/php/Control/Email/EmailTest.php index 05a2bc2e5..c77b79397 100644 --- a/tests/php/Control/Email/EmailTest.php +++ b/tests/php/Control/Email/EmailTest.php @@ -58,18 +58,34 @@ class EmailTest extends SapphireTest $this->assertEquals('foo.txt', $child->getFilename()); } - public function testValidEmailAddress() + /** + * @dataProvider provideValidEmailAddresses + */ + public function testValidEmailAddress($email) { - $validEmails = array('test@example.com', 'test-123@example.sub.com'); - $invalidEmails = array('foo.bar@', '@example.com', 'foo@'); + $this->assertTrue(Email::is_valid_address($email)); + } - foreach ($validEmails as $email) { - $this->assertTrue(Email::is_valid_address($email)); - } + /** + * @dataProvider provideInvalidEmailAddresses + */ + public function testInvalidEmailAddress($email) + { + $this->assertFalse(Email::is_valid_address($email)); + } - foreach ($invalidEmails as $email) { - $this->assertFalse(Email::is_valid_address($email)); - } + public function provideValidEmailAddresses() + { + return [ + ['test@example.com', 'test-123@sub.example.com'], + ]; + } + + public function provideInvalidEmailAddresses() + { + return [ + ['foo.bar@', '@example.com', 'foo@'], + ]; } public function testObfuscate() diff --git a/tests/php/Control/Email/SwiftMailerTest.php b/tests/php/Control/Email/SwiftMailerTest.php index 40a727ba5..284072f5c 100644 --- a/tests/php/Control/Email/SwiftMailerTest.php +++ b/tests/php/Control/Email/SwiftMailerTest.php @@ -28,9 +28,9 @@ class SwiftMailerTest extends SapphireTest $transport ->expects($this->once()) ->method('registerPlugin') - ->willReturnCallback(function ($plugin) { - $this->assertInstanceOf(Swift_Plugins_AntiFloodPlugin::class, $plugin); - }); + ->with( + $this->isInstanceOf(Swift_Plugins_AntiFloodPlugin::class) + ); /** @var Swift_Mailer $swift */ $swift = $this->getMockBuilder(Swift_Mailer::class)->disableOriginalConstructor()->getMock(); @@ -54,9 +54,9 @@ class SwiftMailerTest extends SapphireTest $mailer = $this->getMockBuilder(SwiftMailer::class) ->setMethods(array('sendSwift')) ->getMock(); - $mailer->expects($this->once())->method('sendSwift')->willReturnCallback(function ($message) { - $this->assertInstanceOf(Swift_Message::class, $message); - }); + $mailer->expects($this->once())->method('sendSwift')->with( + $this->isInstanceOf(Swift_Message::class) + ); $mailer->send($email); } diff --git a/tests/php/Control/HTTPResponseTest.php b/tests/php/Control/HTTPResponseTest.php index 3457b6985..bdd751b19 100644 --- a/tests/php/Control/HTTPResponseTest.php +++ b/tests/php/Control/HTTPResponseTest.php @@ -23,29 +23,17 @@ class HTTPResponseTest extends SapphireTest $response = new HTTPResponse("Test", 200, 'OK'); // Confirm that the exception's statusCode and statusDescription take precedence - try { - throw new HTTPResponse_Exception($response, 404, 'not even found'); - } catch (HTTPResponse_Exception $e) { - $this->assertEquals(404, $e->getResponse()->getStatusCode()); - $this->assertEquals('not even found', $e->getResponse()->getStatusDescription()); - return; - } - // Fail if we get to here - $this->assertFalse(true, 'Something went wrong with our test exception'); + $e = new HTTPResponse_Exception($response, 404, 'not even found'); + $this->assertEquals(404, $e->getResponse()->getStatusCode()); + $this->assertEquals('not even found', $e->getResponse()->getStatusDescription()); } public function testExceptionContentPlainByDefault() { // Confirm that the exception's statusCode and statusDescription take precedence - try { - throw new HTTPResponse_Exception("Some content that may be from a hacker", 404, 'not even found'); - } catch (HTTPResponse_Exception $e) { - $this->assertEquals("text/plain", $e->getResponse()->getHeader("Content-Type")); - return; - } - // Fail if we get to here - $this->assertFalse(true, 'Something went wrong with our test exception'); + $e = new HTTPResponse_Exception("Some content that may be from a hacker", 404, 'not even found'); + $this->assertEquals("text/plain", $e->getResponse()->getHeader("Content-Type")); } public function testRemoveHeader() diff --git a/tests/php/Control/HTTPTest.php b/tests/php/Control/HTTPTest.php index 70cd7c974..c904937c1 100644 --- a/tests/php/Control/HTTPTest.php +++ b/tests/php/Control/HTTPTest.php @@ -219,7 +219,7 @@ class HTTPTest extends FunctionalTest sort($result); sort($expected); - $this->assertTrue(is_array($result)); + $this->assertInternalType('array', $result); $this->assertEquals($expected, $result, 'Test that all links within the content are found.'); } @@ -459,7 +459,7 @@ class HTTPTest extends FunctionalTest { $this->withBaseURL( 'http://www.silverstripe.org/', - function ($test) { + function () { $frameworkTests = ltrim(FRAMEWORK_DIR . '/tests', '/'); $this->assertEquals( "http://www.silverstripe.org/$frameworkTests/php/Control/HTTPTest.php", @@ -483,7 +483,7 @@ class HTTPTest extends FunctionalTest // Run middleware HTTPCacheControlMiddleware::singleton() - ->process($request, function (HTTPRequest $request) use ($response) { + ->process($request, function () use ($response) { return $response; }); } diff --git a/tests/php/Control/PjaxResponseNegotiatorTest.php b/tests/php/Control/PjaxResponseNegotiatorTest.php index 5d3bd68c5..e9fdd1825 100644 --- a/tests/php/Control/PjaxResponseNegotiatorTest.php +++ b/tests/php/Control/PjaxResponseNegotiatorTest.php @@ -13,11 +13,11 @@ class PjaxResponseNegotiatorTest extends SapphireTest public function testDefaultCallbacks() { $negotiator = new PjaxResponseNegotiator( - array( - 'default' => function () { - return 'default response'; - }, - ) + [ + 'default' => function () { + return 'default response'; + }, + ] ); $request = new HTTPRequest('GET', '/'); // not setting pjax header $request->setSession(new Session([])); @@ -28,14 +28,14 @@ class PjaxResponseNegotiatorTest extends SapphireTest public function testSelectsFragmentByHeader() { $negotiator = new PjaxResponseNegotiator( - array( - 'default' => function () { - return 'default response'; - }, - 'myfragment' => function () { - return 'myfragment response'; - }, - ) + [ + 'default' => function () { + return 'default response'; + }, + 'myfragment' => function () { + return 'myfragment response'; + }, + ] ); $request = new HTTPRequest('GET', '/'); $request->setSession(new Session([])); @@ -47,17 +47,17 @@ class PjaxResponseNegotiatorTest extends SapphireTest public function testMultipleFragments() { $negotiator = new PjaxResponseNegotiator( - array( - 'default' => function () { - return 'default response'; - }, - 'myfragment' => function () { - return 'myfragment response'; - }, - 'otherfragment' => function () { - return 'otherfragment response'; - }, - ) + [ + 'default' => function () { + return 'default response'; + }, + 'myfragment' => function () { + return 'myfragment response'; + }, + 'otherfragment' => function () { + return 'otherfragment response'; + }, + ] ); $request = new HTTPRequest('GET', '/'); $request->setSession(new Session([])); @@ -74,14 +74,14 @@ class PjaxResponseNegotiatorTest extends SapphireTest public function testFragmentsOverride() { $negotiator = new PjaxResponseNegotiator( - array( - 'alpha' => function () { - return 'alpha response'; - }, - 'beta' => function () { - return 'beta response'; - } - ) + [ + 'alpha' => function () { + return 'alpha response'; + }, + 'beta' => function () { + return 'beta response'; + }, + ] ); $request = new HTTPRequest('GET', '/'); @@ -89,7 +89,7 @@ class PjaxResponseNegotiatorTest extends SapphireTest $request->addHeader('X-Pjax', 'alpha'); $request->addHeader('Accept', 'application/json'); - $response = $negotiator->setFragmentOverride(array('beta'))->respond($request); + $response = $negotiator->setFragmentOverride(['beta'])->respond($request); $json = json_decode($response->getBody()); $this->assertFalse(isset($json->alpha)); $this->assertObjectHasAttribute('beta', $json); diff --git a/tests/php/Control/RequestHandlingTest.php b/tests/php/Control/RequestHandlingTest.php index 3f4ad5573..8dd90515d 100644 --- a/tests/php/Control/RequestHandlingTest.php +++ b/tests/php/Control/RequestHandlingTest.php @@ -3,16 +3,16 @@ namespace SilverStripe\Control\Tests; use SilverStripe\Admin\LeftAndMain; -use SilverStripe\ErrorPage\ErrorPageControllerExtension; use SilverStripe\Control\Controller; +use SilverStripe\Control\Director; +use SilverStripe\Control\RequestHandler; use SilverStripe\Control\Tests\RequestHandlingTest\AllowedController; use SilverStripe\Control\Tests\RequestHandlingTest\ControllerFormWithAllowedActions; use SilverStripe\Control\Tests\RequestHandlingTest\FieldController; use SilverStripe\Control\Tests\RequestHandlingTest\FormActionController; use SilverStripe\Control\Tests\RequestHandlingTest\TestController; use SilverStripe\Dev\FunctionalTest; -use SilverStripe\Control\RequestHandler; -use SilverStripe\Control\Director; +use SilverStripe\ErrorPage\ErrorPageControllerExtension; use SilverStripe\Forms\Form; use SilverStripe\Security\SecurityToken; @@ -24,25 +24,25 @@ class RequestHandlingTest extends FunctionalTest { protected static $fixture_file = null; - protected static $illegal_extensions = array( + protected static $illegal_extensions = [ // Suppress CMS error page handling - Controller::class => array( + Controller::class => [ ErrorPageControllerExtension::class, - ), - Form::class => array( + ], + Form::class => [ ErrorPageControllerExtension::class, - ), - LeftAndMain::class => array( + ], + LeftAndMain::class => [ ErrorPageControllerExtension::class, - ), - ); + ], + ]; protected static $extra_controllers = [ TestController::class, AllowedController::class, ControllerFormWithAllowedActions::class, FieldController::class, - FormActionController::class + FormActionController::class, ]; public function getExtraRoutes() @@ -99,13 +99,16 @@ class RequestHandlingTest extends FunctionalTest /* In addition, these values are availalbe in $controller->urlParams. This is mainly for backward * compatability. */ $response = Director::test("testGoodBase1/legacymethod/3/4"); - $this->assertEquals("\$this->urlParams can be used, for backward compatibility: 3, 4", $response->getBody()); + $this->assertEquals( + "\$this->urlParams can be used, for backward compatibility: 3, 4", + $response->getBody() + ); } public function testPostRequests() { /* The HTTP Request handler can trigger special behaviour for GET and POST. */ - $response = Director::test("testGoodBase1/TestForm", array("MyField" => 3), null, "POST"); + $response = Director::test("testGoodBase1/TestForm", ["MyField" => 3], null, "POST"); $this->assertEquals("Form posted", $response->getBody()); $response = Director::test("testGoodBase1/TestForm"); @@ -120,7 +123,7 @@ class RequestHandlingTest extends FunctionalTest $this->assertEquals("MyField requested", $response->getBody()); /* We can also make a POST request on a form field, which could be used for in-place editing, for example. */ - $response = Director::test("testGoodBase1/TestForm/fields/MyField", array("MyField" => 5)); + $response = Director::test("testGoodBase1/TestForm/fields/MyField", ["MyField" => 5]); $this->assertEquals("MyField posted, update to 5", $response->getBody()); } @@ -128,7 +131,7 @@ class RequestHandlingTest extends FunctionalTest { $this->withBaseFolder( '/silverstripe', - function ($test) { + function () { $this->assertEquals( 'MyField requested', Director::test('/silverstripe/testGoodBase1/TestForm/fields/MyField')->getBody() @@ -136,7 +139,10 @@ class RequestHandlingTest extends FunctionalTest $this->assertEquals( 'MyField posted, update to 5', - Director::test('/silverstripe/testGoodBase1/TestForm/fields/MyField', array('MyField' => 5))->getBody() + Director::test( + '/silverstripe/testGoodBase1/TestForm/fields/MyField', + ['MyField' => 5] + )->getBody() ); } ); @@ -148,7 +154,7 @@ class RequestHandlingTest extends FunctionalTest $response = Director::test("testBadBase/method/1/2"); $this->assertNotEquals("This is a method on the controller: 1, 2", $response->getBody()); - $response = Director::test("testBadBase/TestForm", array("MyField" => 3), null, "POST"); + $response = Director::test("testBadBase/TestForm", ["MyField" => 3], null, "POST"); $this->assertNotEquals("Form posted", $response->getBody()); $response = Director::test("testBadBase/TestForm/fields/MyField"); @@ -254,7 +260,7 @@ class RequestHandlingTest extends FunctionalTest $tokenEls = $this->cssParser()->getBySelector('#Form_Form_SecurityID'); $securityId = (string)$tokenEls[0]['value']; - $data = array('action_formaction' => 1); + $data = ['action_formaction' => 1]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals( 400, @@ -262,7 +268,7 @@ class RequestHandlingTest extends FunctionalTest 'Should fail: Invocation through POST form handler, not contained in $allowed_actions, without CSRF token' ); - $data = array('action_disallowedcontrollermethod' => 1, 'SecurityID' => $securityId); + $data = ['action_disallowedcontrollermethod' => 1, 'SecurityID' => $securityId]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals( 403, @@ -271,7 +277,7 @@ class RequestHandlingTest extends FunctionalTest . ' not contained in $allowed_actions, with CSRF token' ); - $data = array('action_formaction' => 1, 'SecurityID' => $securityId); + $data = ['action_formaction' => 1, 'SecurityID' => $securityId]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals( @@ -280,16 +286,16 @@ class RequestHandlingTest extends FunctionalTest 'Should pass: Invocation through POST form handler, not contained in $allowed_actions, with CSRF token' ); - $data = array('action_controlleraction' => 1, 'SecurityID' => $securityId); + $data = ['action_controlleraction' => 1, 'SecurityID' => $securityId]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals( 200, $response->getStatusCode(), 'Should pass: Invocation through POST form handler, controller action instead of form action, contained in' - . ' $allowed_actions, with CSRF token' + . ' $allowed_actions, with CSRF token' ); - $data = array('action_formactionInAllowedActions' => 1); + $data = ['action_formactionInAllowedActions' => 1]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals( 400, @@ -297,7 +303,7 @@ class RequestHandlingTest extends FunctionalTest 'Should fail: Invocation through POST form handler, contained in $allowed_actions, without CSRF token' ); - $data = array('action_formactionInAllowedActions' => 1, 'SecurityID' => $securityId); + $data = ['action_formactionInAllowedActions' => 1, 'SecurityID' => $securityId]; $response = $this->post('FormActionController/Form', $data); $this->assertEquals( 200, @@ -305,7 +311,7 @@ class RequestHandlingTest extends FunctionalTest 'Should pass: Invocation through POST form handler, contained in $allowed_actions, with CSRF token' ); - $data = array(); + $data = []; $response = $this->post('FormActionController/formaction', $data); $this->assertEquals( 404, @@ -313,7 +319,7 @@ class RequestHandlingTest extends FunctionalTest 'Should fail: Invocation through POST URL, not contained in $allowed_actions, without CSRF token' ); - $data = array(); + $data = []; $response = $this->post('FormActionController/formactionInAllowedActions', $data); $this->assertEquals( 200, @@ -321,7 +327,7 @@ class RequestHandlingTest extends FunctionalTest 'Should pass: Invocation of form action through POST URL, contained in $allowed_actions, without CSRF token' ); - $data = array('SecurityID' => $securityId); + $data = ['SecurityID' => $securityId]; $response = $this->post('FormActionController/formactionInAllowedActions', $data); $this->assertEquals( 200, @@ -329,7 +335,7 @@ class RequestHandlingTest extends FunctionalTest 'Should pass: Invocation of form action through POST URL, contained in $allowed_actions, with CSRF token' ); - $data = array(); // CSRF protection doesnt kick in for direct requests + $data = []; // CSRF protection doesnt kick in for direct requests $response = $this->post('FormActionController/formactionInAllowedActions', $data); $this->assertEquals( 200, @@ -342,12 +348,12 @@ class RequestHandlingTest extends FunctionalTest public function testAllowedActionsEnforcedOnForm() { - $data = array('action_allowedformaction' => 1); + $data = ['action_allowedformaction' => 1]; $response = $this->post('ControllerFormWithAllowedActions/Form', $data); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals('allowedformaction', $response->getBody()); - $data = array('action_disallowedformaction' => 1); + $data = ['action_disallowedformaction' => 1]; $response = $this->post('ControllerFormWithAllowedActions/Form', $data); $this->assertEquals(403, $response->getStatusCode()); // Note: Looks for a specific 403 thrown by Form->httpSubmission(), not RequestHandler->handleRequest() @@ -356,12 +362,12 @@ class RequestHandlingTest extends FunctionalTest public function testActionHandlingOnField() { - $data = array('action_actionOnField' => 1); + $data = ['action_actionOnField' => 1]; $response = $this->post('FieldController/TestForm', $data); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals('Test method on MyField', $response->getBody()); - $data = array('action_actionNotAllowedOnField' => 1); + $data = ['action_actionNotAllowedOnField' => 1]; $response = $this->post('FieldController/TestForm', $data); $this->assertEquals(404, $response->getStatusCode()); } diff --git a/tests/php/Control/SessionTest.php b/tests/php/Control/SessionTest.php index 724e778f5..6020df9a3 100644 --- a/tests/php/Control/SessionTest.php +++ b/tests/php/Control/SessionTest.php @@ -137,7 +137,7 @@ class SessionTest extends SapphireTest [ // 'existing' => true, 'new' => true, - 'merge' => 2 + 'merge' => 2, ], $session->getAll() ); @@ -183,17 +183,17 @@ class SessionTest extends SapphireTest $session = $this->session->getAll(); unset($session['HTTP_USER_AGENT']); - $this->assertEquals($session, array('Test' => 'Test', 'Test-2' => 'Test-2')); + $this->assertEquals($session, ['Test' => 'Test', 'Test-2' => 'Test-2']); } public function testSettingExistingDoesntClear() { - $s = new Session(array('something' => array('does' => 'exist'))); + $s = new Session(['something' => ['does' => 'exist']]); $s->set('something.does', 'exist'); $result = $s->changedData(); unset($result['HTTP_USER_AGENT']); - $this->assertEquals(array(), $result); + $this->assertEmpty($result); } /** @@ -206,7 +206,7 @@ class SessionTest extends SapphireTest // Clear without existing data $data = $s->get('something.doesnt.exist'); - $this->assertEquals(array(), $s->changedData()); + $this->assertEmpty($s->changedData()); $this->assertNull($data); // Clear with existing change @@ -273,7 +273,7 @@ class SessionTest extends SapphireTest $req1->addHeader('User-Agent', 'Test Agent'); // Generate our session - $s = new Session(array()); + $s = new Session([]); $s->init($req1); $s->set('val', 123); $s->finalize($req1); @@ -312,13 +312,13 @@ class SessionTest extends SapphireTest 'something' => [ 'another' => 'newanother', 'newkey' => 'new value', - ] + ], ], $_SESSION ); // Test cleared keys are restorable - $s = new Session($_SESSION = ['bookmarks' => [ 1 => 1, 2 => 2]]); + $s = new Session($_SESSION = ['bookmarks' => [1 => 1, 2 => 2]]); $s->clear('bookmarks'); $s->set('bookmarks', [ 1 => 1, @@ -330,7 +330,7 @@ class SessionTest extends SapphireTest 'bookmarks' => [ 1 => 1, 3 => 3, - ] + ], ], $_SESSION ); diff --git a/tests/php/Control/SimpleResourceURLGeneratorTest.php b/tests/php/Control/SimpleResourceURLGeneratorTest.php index e757fbd83..f1d07e269 100644 --- a/tests/php/Control/SimpleResourceURLGeneratorTest.php +++ b/tests/php/Control/SimpleResourceURLGeneratorTest.php @@ -32,7 +32,9 @@ class SimpleResourceURLGeneratorTest extends SapphireTest { /** @var SimpleResourceURLGenerator $generator */ $generator = Injector::inst()->get(ResourceURLGenerator::class); - $mtime = filemtime(__DIR__ . '/SimpleResourceURLGeneratorTest/_fakewebroot/basemodule/client/file.js'); + $mtime = filemtime( + __DIR__ . '/SimpleResourceURLGeneratorTest/_fakewebroot/basemodule/client/file.js' + ); $this->assertEquals( '/resources/basemodule/client/file.js?m=' . $mtime, $generator->urlForResource('basemodule/client/file.js')