summaryrefslogtreecommitdiff
path: root/fai_gestion/tests/TestCase/Controller/PagesControllerTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'fai_gestion/tests/TestCase/Controller/PagesControllerTest.php')
-rw-r--r--fai_gestion/tests/TestCase/Controller/PagesControllerTest.php97
1 files changed, 97 insertions, 0 deletions
diff --git a/fai_gestion/tests/TestCase/Controller/PagesControllerTest.php b/fai_gestion/tests/TestCase/Controller/PagesControllerTest.php
new file mode 100644
index 0000000..11b8b1d
--- /dev/null
+++ b/fai_gestion/tests/TestCase/Controller/PagesControllerTest.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice
+ *
+ * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
+ * @link https://cakephp.org CakePHP(tm) Project
+ * @since 1.2.0
+ * @license https://opensource.org/licenses/mit-license.php MIT License
+ */
+namespace App\Test\TestCase\Controller;
+
+use App\Controller\PagesController;
+use Cake\Core\App;
+use Cake\Core\Configure;
+use Cake\Http\Response;
+use Cake\Http\ServerRequest;
+use Cake\TestSuite\IntegrationTestCase;
+use Cake\View\Exception\MissingTemplateException;
+
+/**
+ * PagesControllerTest class
+ */
+class PagesControllerTest extends IntegrationTestCase
+{
+ /**
+ * testMultipleGet method
+ *
+ * @return void
+ */
+ public function testMultipleGet()
+ {
+ $this->get('/');
+ $this->assertResponseOk();
+ $this->get('/');
+ $this->assertResponseOk();
+ }
+
+ /**
+ * testDisplay method
+ *
+ * @return void
+ */
+ public function testDisplay()
+ {
+ $this->get('/pages/home');
+ $this->assertResponseOk();
+ $this->assertResponseContains('CakePHP');
+ $this->assertResponseContains('<html>');
+ }
+
+ /**
+ * Test that missing template renders 404 page in production
+ *
+ * @return void
+ */
+ public function testMissingTemplate()
+ {
+ Configure::write('debug', false);
+ $this->get('/pages/not_existing');
+
+ $this->assertResponseError();
+ $this->assertResponseContains('Error');
+ }
+
+ /**
+ * Test that missing template in debug mode renders missing_template error page
+ *
+ * @return void
+ */
+ public function testMissingTemplateInDebug()
+ {
+ Configure::write('debug', true);
+ $this->get('/pages/not_existing');
+
+ $this->assertResponseFailure();
+ $this->assertResponseContains('Missing Template');
+ $this->assertResponseContains('Stacktrace');
+ $this->assertResponseContains('not_existing.ctp');
+ }
+
+ /**
+ * Test directory traversal protection
+ *
+ * @return void
+ */
+ public function testDirectoryTraversalProtection()
+ {
+ $this->get('/pages/../Layout/ajax');
+ $this->assertResponseCode(403);
+ $this->assertResponseContains('Forbidden');
+ }
+}