Mercurial > hg > Members > shoshi > webvirt
diff cake/tests/cases/libs/view/helpers/session.test.php @ 0:261e66bd5a0c
hg init
author | Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 24 Jul 2011 21:08:31 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cake/tests/cases/libs/view/helpers/session.test.php Sun Jul 24 21:08:31 2011 +0900 @@ -0,0 +1,236 @@ +<?php +/** + * SessionHelperTest file + * + * PHP versions 4 and 5 + * + * CakePHP(tm) Tests <http://book.cakephp.org/view/1196/Testing> + * Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) + * + * Licensed under The Open Group Test Suite License + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright 2005-2010, Cake Software Foundation, Inc. (http://cakefoundation.org) + * @link http://book.cakephp.org/view/1196/Testing CakePHP(tm) Tests + * @package cake + * @subpackage cake.tests.cases.libs.view.helpers + * @since CakePHP(tm) v 1.2.0.4206 + * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License + */ +if (!defined('CAKEPHP_UNIT_TEST_EXECUTION')) { + define('CAKEPHP_UNIT_TEST_EXECUTION', 1); +} +App::import('Core', array('Helper', 'AppHelper', 'Controller', 'View')); +App::import('Helper', array('Session')); + +/** + * SessionHelperTest class + * + * @package cake + * @subpackage cake.tests.cases.libs.view.helpers + */ +class SessionHelperTest extends CakeTestCase { + +/** + * setUp method + * + * @access public + * @return void + */ + function startTest() { + $this->Session = new SessionHelper(); + + $_SESSION = array( + 'test' => 'info', + 'Message' => array( + 'flash' => array( + 'element' => 'default', + 'params' => array(), + 'message' => 'This is a calling' + ), + 'notification' => array( + 'element' => 'session_helper', + 'params' => array('title' => 'Notice!', 'name' => 'Alert!'), + 'message' => 'This is a test of the emergency broadcasting system', + ), + 'classy' => array( + 'element' => 'default', + 'params' => array('class' => 'positive'), + 'message' => 'Recorded' + ), + 'bare' => array( + 'element' => null, + 'message' => 'Bare message', + 'params' => array(), + ), + ), + 'Deeply' => array('nested' => array('key' => 'value')), + ); + } + +/** + * tearDown method + * + * @access public + * @return void + */ + function tearDown() { + $_SESSION = array(); + unset($this->Session); + } + +/** + * endTest + * + * @access public + * @return void + */ + function endTest() { + App::build(); + } + +/** + * test construction and initial property settings + * + * @return void + */ + function testConstruct() { + $this->assertFalse(empty($this->Session->sessionTime)); + $this->assertFalse(empty($this->Session->security)); + } +/** + * testRead method + * + * @access public + * @return void + */ + function testRead() { + $result = $this->Session->read('Deeply.nested.key'); + $this->assertEqual($result, 'value'); + + $result = $this->Session->read('test'); + $this->assertEqual($result, 'info'); + } + +/** + * testCheck method + * + * @access public + * @return void + */ + function testCheck() { + $this->assertTrue($this->Session->check('test')); + + $this->assertTrue($this->Session->check('Message.flash.element')); + + $this->assertFalse($this->Session->check('Does.not.exist')); + + $this->assertFalse($this->Session->check('Nope')); + } + +/** + * testWrite method + * + * @access public + * @return void + */ + function testWrite() { + $this->expectError(); + $this->Session->write('NoWay', 'AccessDenied'); + } + +/** + * testFlash method + * + * @access public + * @return void + */ + function testFlash() { + $result = $this->Session->flash('flash', true); + $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>'; + $result = $this->Session->flash('classy', true); + $this->assertEqual($result, $expected); + + App::build(array( + 'views' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS) + )); + $controller = new Controller(); + $this->Session->view = new View($controller); + + $result = $this->Session->flash('notification', true); + $result = str_replace("\r\n", "\n", $result); + $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')); + + $result = $this->Session->flash('bare'); + $expected = 'Bare message'; + $this->assertEqual($result, $expected); + $this->assertFalse($this->Session->check('Message.bare')); + } + +/** + * testID method + * + * @access public + * @return void + */ + function testID() { + $id = session_id(); + $result = $this->Session->id(); + $this->assertEqual($id, $result); + } + +/** + * testError method + * + * @access public + * @return void + */ + 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); + } + +/** + * testDisabling method + * + * @access public + * @return void + */ + 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); + } + +/** + * testValid method + * + * @access public + * @return void + */ + function testValid() { + //wierd it always ends up false in the test suite + //$this->assertFalse($this->Session->valid()); + } +}