From ccf33092af674ac5809f5225f93bb37f4c7df12a Mon Sep 17 00:00:00 2001 From: aksinha Date: Tue, 28 Feb 2017 19:42:32 +0530 Subject: [PATCH] Functional tests added - first pass --- app/config/config_test.yml | 5 + .../Controller/ApiExceptionController.php | 2 +- .../Tests/Controller/UserControllerTest.php | 102 ++++++++++++++++++ .../Controller/DefaultControllerTest.php | 18 ---- 4 files changed, 108 insertions(+), 19 deletions(-) create mode 100644 src/ApiBundle/Tests/Controller/UserControllerTest.php delete mode 100644 src/AppBundle/Tests/Controller/DefaultControllerTest.php diff --git a/app/config/config_test.yml b/app/config/config_test.yml index 2f6d925..6beda7d 100644 --- a/app/config/config_test.yml +++ b/app/config/config_test.yml @@ -14,3 +14,8 @@ web_profiler: swiftmailer: disable_delivery: true + +security: + firewalls: + main: + http_basic: ~ diff --git a/src/ApiBundle/Controller/ApiExceptionController.php b/src/ApiBundle/Controller/ApiExceptionController.php index 0ffa1d1..c6bddc4 100644 --- a/src/ApiBundle/Controller/ApiExceptionController.php +++ b/src/ApiBundle/Controller/ApiExceptionController.php @@ -49,7 +49,7 @@ public function showAction(Request $request, $exception, DebugLoggerInterface $l $currentContent = $this->getAndCleanOutputBuffering($request->headers->get('X-Php-Ob-Level', -1)); $code = $this->getStatusCode($exception); - $errMessageArray = split('#showme#', $exception->getMessage()); + $errMessageArray = explode('#showme#', $exception->getMessage()); $errorMessage = $errMessageArray[0]; $showMessage = count($errMessageArray) > 1 ? $errMessageArray[1] : ''; diff --git a/src/ApiBundle/Tests/Controller/UserControllerTest.php b/src/ApiBundle/Tests/Controller/UserControllerTest.php new file mode 100644 index 0000000..512be2b --- /dev/null +++ b/src/ApiBundle/Tests/Controller/UserControllerTest.php @@ -0,0 +1,102 @@ + 'aUser', + 'PHP_AUTH_PW' => 'test1test1', + ]); + + $url = $client->getContainer()->get('router')->generate('admin_user_index'); + $client->request('GET', $url); + // echo $client->getResponse()->getContent();die; + + $this->assertEquals(Response::HTTP_FORBIDDEN, $client->getResponse()->getStatusCode()); + } + + public function testAdministratorUsersCanAccessToTheBackend() + { + $client = static::createClient([], [ + 'PHP_AUTH_USER' => 'admin', + 'PHP_AUTH_PW' => 'admin', + ]); + + $url = $client->getContainer()->get('router')->generate('admin_user_index'); + $client->request('GET', $url); + + $this->assertEquals(Response::HTTP_OK, $client->getResponse()->getStatusCode()); + } + + public function testNormalUsersCannotAccessAdminLink() + { + $client = static::createClient([], [ + 'PHP_AUTH_USER' => 'aUser', + 'PHP_AUTH_PW' => 'test1test1', + ]); + + $url = $client->getContainer()->get('router')->generate('user_index'); + $crawler = $client->request('GET', $url); + + $this->assertCount( + 0, + $crawler->filterXPath("//a[contains(.,'Admin')]"), + 'The Backend->Admin does not exist for normal user.' + ); + } + + public function testAdminUsersCanAccessAdminLink() + { + $client = static::createClient([], [ + 'PHP_AUTH_USER' => 'admin', + 'PHP_AUTH_PW' => 'admin', + ]); + + $url = $client->getContainer()->get('router')->generate('admin_user_index'); + $crawler = $client->request('GET', $url); + + $this->assertCount( + 1, + $crawler->filterXPath("//a[contains(.,'Admin')]"), + 'The Backend->Admin does exist for admin user.' + ); + } + + public function testUserManagementList() + { + $client = static::createClient([], [ + 'PHP_AUTH_USER' => 'admin', + 'PHP_AUTH_PW' => 'admin', + ]); + + $url = $client->getContainer()->get('router')->generate('admin_user_index'); + $crawler = $client->request('GET', $url); + + $link = $crawler->selectLink('Admin')->link(); + $client->click($link); + + $link = $crawler->selectLink('User Management')->link(); + $client->click($link); + + $this->assertCount( + 2, + $crawler->filter('div#main table tbody tr'), + 'The Backend->Admin->User Management page displays all the available users.' + ); + } +} diff --git a/src/AppBundle/Tests/Controller/DefaultControllerTest.php b/src/AppBundle/Tests/Controller/DefaultControllerTest.php deleted file mode 100644 index 87989da..0000000 --- a/src/AppBundle/Tests/Controller/DefaultControllerTest.php +++ /dev/null @@ -1,18 +0,0 @@ -request('GET', '/'); - - $this->assertEquals(200, $client->getResponse()->getStatusCode()); - $this->assertContains('Welcome to Symfony', $crawler->filter('#container h1')->text()); - } -}