08.11
php
saved
Vizjerai
Note
Sample code to get redirects to work and be able to test for the redirected url and status code for CakePHP v1.2 RC2.
Sample code to get redirects to work and be able to test for the redirected url and status code for CakePHP v1.2 RC2.
- // cake/tests/lib/cake_test_case.php
- // In CakeTestDispatcher class. Copied code from cake/dispatcher.php
- // Note: looks for the <Controller Name>TestController to use the test controller class.
- function __loadController($params) {
- $pluginName = $pluginPath = $controller = null;
- $this->plugin = $params['plugin'];
- $pluginName = Inflector::camelize($params['plugin']);
- $pluginPath = $pluginName . '.';
- $this->params['controller'] = $this->plugin;
- $controller = $pluginName;
- }
- $controller = Inflector::camelize($params['controller']);
- }
- if ($pluginPath . $controller) {
- if (App::import('Controller', $pluginPath . $controller)) {
- return $controller.'Test'; //Added for test suite.
- } else {
- return $controller;
- }
- }
- }
- return false;
- }
- // app/tests/cases/controllers/reports_controler.test.php
- App::import('Controller','Reports');
- class ReportsTestController extends ReportsController {
- function redirect($url = null, $status = null) {
- }
- }
- class TestReports extends ReportsTestController {
- var $autoRender = false;
- }
- class ReportsControlllerTest extends CakeTestCase {
- var $Reports = null;
- function setUp() {
- $this->Reports = new TestReports();
- }
- function testReportsView() {
- $result = $this->testAction('/reports/view');
- 'controller' => 'reports',
- 'action' => 'index'
- ),
- 'status' => 301
- );
- $this->assertEqual($result, $expect);
- }
- function tearDown() {
- }
- }
- // app/controllers/reports_controller.php
- class ReportsController extends AppController {
- var $name = 'Reports';
- function view() {
- return $this->redirect(
- 'controller' => 'reports',
- 'action' => 'index'
- ),
- 301
- );
- }
- }
Parsed in 0.121 seconds, using GeSHi 1.0.7.14