⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 security.test.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* SVN FILE: $Id: security.test.php 7118 2008-06-04 20:49:29Z gwoo $ *//** * Short description for file. * * Long description for file * * PHP versions 4 and 5 * * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> * Copyright 2005-2008, Cake Software Foundation, Inc. *								1785 E. Sahara Avenue, Suite 490-204 *								Las Vegas, Nevada 89104 * *  Licensed under The Open Group Test Suite License *  Redistributions of files must retain the above copyright notice. * * @filesource * @copyright		Copyright 2005-2008, Cake Software Foundation, Inc. * @link				https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests * @package			cake.tests * @subpackage		cake.tests.cases.libs.controller.components * @since			CakePHP(tm) v 1.2.0.5435 * @version			$Revision: 7118 $ * @modifiedby		$LastChangedBy: gwoo $ * @lastmodified	$Date: 2008-06-04 13:49:29 -0700 (Wed, 04 Jun 2008) $ * @license			http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */uses('controller' . DS . 'components' . DS .'security');/*** Short description for class.** @package		cake.tests* @subpackage	cake.tests.cases.libs.controller.components*/class SecurityTestController extends Controller {/** * name property *  * @var string 'SecurityTest' * @access public */	var $name = 'SecurityTest';/** * components property *  * @var array * @access public */	var $components = array('Security');/** * failed property *  * @var bool false * @access public */	var $failed = false;/** * fail method *  * @access public * @return void */	function fail() {		$this->failed = true;	}/** * redirect method *  * @param mixed $option  * @param mixed $code  * @param mixed $exit  * @access public * @return void */	function redirect($option, $code, $exit) {		return $code;	}}/** * Short description for class. * * @package		cake.tests * @subpackage	cake.tests.cases.libs.controller.components */class SecurityComponentTest extends CakeTestCase {/** * setUp method *  * @access public * @return void */	function setUp() {		$this->Controller =& new SecurityTestController();		$this->Controller->Component->init($this->Controller);		$this->Controller->Security->blackHoleCallback = 'fail';	}/** * testStartup method *  * @access public * @return void */	function testStartup() {		$this->Controller->Security->startup($this->Controller);		$result = $this->Controller->params['_Token']['key'];		$this->assertNotNull($result);		$this->assertTrue($this->Controller->Session->check('_Token'));	}/** * testRequirePostFail method *  * @access public * @return void */	function testRequirePostFail() {		$_SERVER['REQUEST_METHOD'] = 'GET';		$this->Controller->action = 'posted';		$this->Controller->Security->requirePost('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequirePostSucceed method *  * @access public * @return void */	function testRequirePostSucceed() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'posted';		$this->Controller->Security->requirePost('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireSecureFail method *  * @access public * @return void */	function testRequireSecureFail() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'posted';		$this->Controller->Security->requireSecure('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequireSecureSucceed method *  * @access public * @return void */	function testRequireSecureSucceed() {		$_SERVER['REQUEST_METHOD'] = 'Secure';		$this->Controller->action = 'posted';		$_SERVER['HTTPS'] = true;		$this->Controller->Security->requireSecure('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireAuthFail method *  * @access public * @return void */	function testRequireAuthFail() {		$_SERVER['REQUEST_METHOD'] = 'AUTH';		$this->Controller->action = 'posted';		$this->Controller->data = array('username' => 'willy', 'password' => 'somePass');		$this->Controller->Security->requireAuth('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);		$this->Controller->Session->write('_Token', array('allowedControllers' => array()));		$this->Controller->data = array('username' => 'willy', 'password' => 'somePass');		$this->Controller->action = 'posted';		$this->Controller->Security->requireAuth('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);		$this->Controller->Session->write('_Token', array('allowedControllers' => array('SecurityTest'), 'allowedActions' => array('posted2')));		$this->Controller->data = array('username' => 'willy', 'password' => 'somePass');		$this->Controller->action = 'posted';		$this->Controller->Security->requireAuth('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequireAuthSucceed method *  * @access public * @return void */	function testRequireAuthSucceed() {		$_SERVER['REQUEST_METHOD'] = 'AUTH';		$this->Controller->action = 'posted';		$this->Controller->Security->requireAuth('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);		$this->Controller->Security->Session->write('_Token', serialize(array('allowedControllers' => array('SecurityTest'), 'allowedActions' => array('posted'))));		$this->Controller->params['controller'] = 'SecurityTest';		$this->Controller->params['action'] = 'posted';		$this->Controller->data = array('username' => 'willy', 'password' => 'somePass', '__Token' => '');		$this->Controller->action = 'posted';		$this->Controller->Security->requireAuth('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequirePostSucceedWrongMethod method *  * @access public * @return void */	function testRequirePostSucceedWrongMethod() {		$_SERVER['REQUEST_METHOD'] = 'GET';		$this->Controller->action = 'getted';		$this->Controller->Security->requirePost('posted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireGetFail method *  * @access public * @return void */	function testRequireGetFail() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'getted';		$this->Controller->Security->requireGet('getted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequireGetSucceed method *  * @access public * @return void */	function testRequireGetSucceed() {		$_SERVER['REQUEST_METHOD'] = 'GET';		$this->Controller->action = 'getted';		$this->Controller->Security->requireGet('getted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireLogin method *  * @access public * @return void */	function testRequireLogin() {		$this->Controller->action = 'posted';		$this->Controller->Security->requireLogin(			'posted',			array('type' => 'basic', 'users' => array('admin' => 'password'))		); 		$_SERVER['PHP_AUTH_USER'] = 'admin';		$_SERVER['PHP_AUTH_PW'] = 'password';		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);		$this->Controller->action = 'posted';		$this->Controller->Security->requireLogin(			'posted',			array('type' => 'basic', 'users' => array('admin' => 'password'))		); 		$_SERVER['PHP_AUTH_USER'] = 'admin2';		$_SERVER['PHP_AUTH_PW'] = 'password';		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);		$this->Controller->action = 'posted';		$this->Controller->Security->requireLogin(			'posted',			array('type' => 'basic', 'users' => array('admin' => 'password'))		); 		$_SERVER['PHP_AUTH_USER'] = 'admin';		$_SERVER['PHP_AUTH_PW'] = 'password2';		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testDigestAuth method *  * @access public * @return void */	function testDigestAuth() {		$this->Controller->action = 'posted';		$_SERVER['PHP_AUTH_DIGEST'] = $digest = <<<DIGEST		Digest username="Mufasa",		realm="testrealm@host.com",		nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",		uri="/dir/index.html",		qop=auth,		nc=00000001,		cnonce="0a4f113b",		response="460d0d3c6867c2f1ab85b1ada1aece48",		opaque="5ccc069c403ebaf9f0171e9517f40e41"DIGEST;		$this->Controller->Security->requireLogin(			'posted',			array('type' => 'digest', 'users' => array('Mufasa' => 'password'), 'realm' => 'testrealm@host.com')		);		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireGetSucceedWrongMethod method *  * @access public * @return void */	function testRequireGetSucceedWrongMethod() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'posted';		$this->Controller->Security->requireGet('getted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequirePutFail method *  * @access public * @return void */	function testRequirePutFail() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'putted';		$this->Controller->Security->requirePut('putted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequirePutSucceed method *  * @access public * @return void */	function testRequirePutSucceed() {		$_SERVER['REQUEST_METHOD'] = 'PUT';		$this->Controller->action = 'putted';		$this->Controller->Security->requirePut('putted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequirePutSucceedWrongMethod method *  * @access public * @return void */	function testRequirePutSucceedWrongMethod() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'posted';		$this->Controller->Security->requirePut('putted');		$this->Controller->Security->startup($this->Controller);		$this->assertFalse($this->Controller->failed);	}/** * testRequireDeleteFail method *  * @access public * @return void */	function testRequireDeleteFail() {		$_SERVER['REQUEST_METHOD'] = 'POST';		$this->Controller->action = 'deleted';		$this->Controller->Security->requireDelete('deleted');		$this->Controller->Security->startup($this->Controller);		$this->assertTrue($this->Controller->failed);	}/** * testRequireDeleteSucceed method *  * @access public * @return void */	function testRequireDeleteSucceed() {		$_SERVER['REQUEST_METHOD'] = 'DELETE';		$this->Controller->action = 'deleted';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -