2008-05-30 11:40:08 +00:00
< ? php
/* SVN FILE: $Id$ */
/**
2009-03-18 17:55:58 +00:00
* SessionHelperTest file
2008-05-30 11:40:08 +00:00
*
* Long description for file
*
* PHP versions 4 and 5
*
* CakePHP ( tm ) Tests < https :// trac . cakephp . org / wiki / Developement / TestSuite >
2010-01-26 19:18:20 +00:00
* Copyright 2005 - 2010 , Cake Software Foundation , Inc . ( http :// cakefoundation . org )
2008-05-30 11:40:08 +00:00
*
* Licensed under The Open Group Test Suite License
* Redistributions of files must retain the above copyright notice .
*
2010-01-26 19:18:20 +00:00
* @ copyright Copyright 2005 - 2010 , Cake Software Foundation , Inc . ( http :// cakefoundation . org )
2008-10-30 17:30:26 +00:00
* @ link https :// trac . cakephp . org / wiki / Developement / TestSuite CakePHP ( tm ) Tests
2009-03-18 17:55:58 +00:00
* @ package cake
2008-10-30 17:30:26 +00:00
* @ subpackage cake . tests . cases . libs . view . helpers
* @ since CakePHP ( tm ) v 1.2 . 0.4206
* @ version $Revision $
* @ modifiedby $LastChangedBy $
* @ lastmodified $Date $
* @ license http :// www . opensource . org / licenses / opengroup . php The Open Group Test Suite License
2008-05-30 11:40:08 +00:00
*/
if ( ! defined ( 'CAKEPHP_UNIT_TEST_EXECUTION' )) {
define ( 'CAKEPHP_UNIT_TEST_EXECUTION' , 1 );
}
2009-07-21 01:33:12 +00:00
if ( ! class_exists ( 'AppError' )) {
App :: import ( 'Error' );
/**
* AppController class
*
* @ package cake
* @ subpackage cake . tests . cases . libs
*/
class AppError extends ErrorHandler {
/**
* _stop method
*
* @ access public
* @ return void
*/
function _stop () {
return ;
}
}
}
2008-05-30 11:40:08 +00:00
App :: import ( 'Core' , array ( 'Helper' , 'AppHelper' , 'Controller' , 'View' ));
App :: import ( 'Helper' , array ( 'Session' ));
/**
2009-03-18 17:55:58 +00:00
* SessionHelperTest class
2008-05-30 11:40:08 +00:00
*
2009-03-18 17:55:58 +00:00
* @ package cake
2008-10-30 17:30:26 +00:00
* @ subpackage cake . tests . cases . libs . view . helpers
2008-05-30 11:40:08 +00:00
*/
class SessionHelperTest extends CakeTestCase {
2008-06-02 19:22:55 +00:00
/**
* setUp method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2009-09-17 23:57:56 +00:00
function startTest () {
2008-05-30 11:40:08 +00:00
$this -> Session = new SessionHelper ();
$_SESSION = array (
'test' => 'info' ,
'Message' => array (
'flash' => array (
'layout' => 'default' ,
'params' => array (),
'message' => 'This is a calling'
),
'notification' => array (
'layout' => 'session_helper' ,
'params' => array ( 'title' => 'Notice!' , 'name' => 'Alert!' ),
'message' => 'This is a test of the emergency broadcasting system' ,
),
'classy' => array (
'layout' => 'default' ,
'params' => array ( 'class' => 'positive' ),
'message' => 'Recorded'
),
'bare' => array (
'layout' => null ,
'message' => 'Bare message' ,
'params' => array (),
),
),
'Deeply' => array ( 'nested' => array ( 'key' => 'value' )),
);
}
2008-06-02 19:22:55 +00:00
/**
* tearDown method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function tearDown () {
$_SESSION = array ();
unset ( $this -> Session );
}
2009-09-17 23:57:56 +00:00
/**
* test construction and initial property settings
*
* @ return void
**/
function testConstruct () {
$this -> assertFalse ( empty ( $this -> Session -> sessionTime ));
$this -> assertFalse ( empty ( $this -> Session -> security ));
}
2008-06-02 19:22:55 +00:00
/**
* testRead method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testRead () {
$result = $this -> Session -> read ( 'Deeply.nested.key' );
$this -> assertEqual ( $result , 'value' );
$result = $this -> Session -> read ( 'test' );
$this -> assertEqual ( $result , 'info' );
}
2008-06-02 19:22:55 +00:00
/**
* testCheck method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testCheck () {
$this -> assertTrue ( $this -> Session -> check ( 'test' ));
$this -> assertTrue ( $this -> Session -> check ( 'Message.flash.layout' ));
$this -> assertFalse ( $this -> Session -> check ( 'Does.not.exist' ));
$this -> assertFalse ( $this -> Session -> check ( 'Nope' ));
}
2008-06-02 19:22:55 +00:00
/**
* testWrite method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testWrite () {
$this -> expectError ();
$this -> Session -> write ( 'NoWay' , 'AccessDenied' );
}
2008-06-02 19:22:55 +00:00
/**
* testFlash method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testFlash () {
ob_start ();
$this -> Session -> flash ();
$result = ob_get_contents ();
ob_clean ();
$expected = '<div id="flashMessage" class="message">This is a calling</div>' ;
$this -> assertEqual ( $result , $expected );
$this -> assertFalse ( $this -> Session -> check ( 'Message.flash' ));
$expected = '<div id="classyMessage" class="positive">Recorded</div>' ;
ob_start ();
$this -> Session -> flash ( 'classy' );
$result = ob_get_clean ();
$this -> assertEqual ( $result , $expected );
2008-06-20 19:30:29 +00:00
2009-07-21 01:33:12 +00:00
$_viewPaths = Configure :: read ( 'viewPaths' );
2008-05-30 11:40:08 +00:00
Configure :: write ( 'viewPaths' , array ( TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views' . DS ));
2009-07-21 01:33:12 +00:00
2008-05-30 11:40:08 +00:00
$controller = new Controller ();
$this -> Session -> view = new View ( $controller );
ob_start ();
$this -> Session -> flash ( 'notification' );
$result = ob_get_contents ();
ob_clean ();
2008-06-20 19:30:29 +00:00
$result = str_replace ( " \r \n " , " \n " , $result );
2008-05-30 11:40:08 +00:00
$expected = " <div id= \" notificationLayout \" > \n \t <h1>Alert!</h1> \n \t <h3>Notice!</h3> \n \t <p>This is a test of the emergency broadcasting system</p> \n </div> " ;
$this -> assertEqual ( $result , $expected );
$this -> assertFalse ( $this -> Session -> check ( 'Message.notification' ));
ob_start ();
$this -> Session -> flash ( 'bare' );
$result = ob_get_contents ();
ob_clean ();
$expected = 'Bare message' ;
$this -> assertEqual ( $result , $expected );
$this -> assertFalse ( $this -> Session -> check ( 'Message.bare' ));
2009-07-21 01:33:12 +00:00
Configure :: write ( 'viewPaths' , $_viewPaths );
}
/**
* testFlash method
*
* @ access public
* @ return void
*/
function testFlashMissingLayout () {
$_SESSION = array (
'Message' => array (
'notification' => array (
'layout' => 'does_not_exist' ,
'params' => array ( 'title' => 'Notice!' , 'name' => 'Alert!' ),
'message' => 'This is a test of the emergency broadcasting system' ,
)
)
);
$controller = new Controller ();
$this -> Session -> view = new View ( $controller );
ob_start ();
$this -> Session -> flash ( 'notification' );
$result = ob_get_contents ();
ob_clean ();
$this -> assertPattern ( " /Missing Layout/ " , $result );
2009-10-15 21:09:58 +00:00
$this -> assertPattern ( " /layouts( \\ \ | \ /)does_not_exist.ctp/ " , $result );
2008-05-30 11:40:08 +00:00
}
2008-06-02 19:22:55 +00:00
/**
* testID method
2008-06-20 19:30:29 +00:00
*
2008-06-02 19:22:55 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testID () {
$id = session_id ();
$result = $this -> Session -> id ();
$this -> assertEqual ( $id , $result );
}
2008-06-05 15:20:45 +00:00
/**
* testError method
2008-06-20 19:30:29 +00:00
*
2008-06-05 15:20:45 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testError () {
$result = $this -> Session -> error ();
$this -> assertFalse ( $result );
$this -> Session -> read ( 'CauseError' );
$result = $this -> Session -> error ();
$expected = " CauseError doesn't exist " ;
$this -> assertEqual ( $result , $expected );
}
2008-06-05 15:20:45 +00:00
/**
* testDisabling method
2008-06-20 19:30:29 +00:00
*
2008-06-05 15:20:45 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testDisabling () {
Configure :: write ( 'Session.start' , false );
$this -> Session = new SessionHelper ();
$this -> assertFalse ( $this -> Session -> check ( 'test' ));
$this -> assertFalse ( $this -> Session -> read ( 'test' ));
$this -> Session -> read ( 'CauseError' );
$this -> assertFalse ( $this -> Session -> error ());
ob_start ();
$this -> assertFalse ( $this -> Session -> flash ( 'bare' ));
$result = ob_get_contents ();
ob_clean ();
$this -> assertFalse ( $result );
}
2008-06-05 15:20:45 +00:00
/**
* testValid method
2008-06-20 19:30:29 +00:00
*
2008-06-05 15:20:45 +00:00
* @ access public
* @ return void
*/
2008-05-30 11:40:08 +00:00
function testValid () {
//wierd it always ends up false in the test suite
//$this->assertFalse($this->Session->valid());
}
}
2008-06-27 08:17:02 +00:00
?>