summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php192
1 files changed, 192 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php
new file mode 100644
index 0000000..6b06b37
--- /dev/null
+++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/Component/Auth/ActionsAuthorizeTest.php
@@ -0,0 +1,192 @@
+<?php
+/**
+ * ActionsAuthorizeTest file
+ *
+ * PHP 5
+ *
+ * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
+ * Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright Copyright 2005-2012, Cake Software Foundation, Inc. (http://cakefoundation.org)
+ * @link http://cakephp.org CakePHP(tm) Project
+ * @package Cake.Test.Case.Controller.Component.Auth
+ * @since CakePHP(tm) v 2.0
+ * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
+ */
+
+App::uses('ActionsAuthorize', 'Controller/Component/Auth');
+App::uses('ComponentCollection', 'Controller');
+App::uses('AclComponent', 'Controller/Component');
+App::uses('CakeRequest', 'Network');
+App::uses('CakeResponse', 'Network');
+
+class ActionsAuthorizeTest extends CakeTestCase {
+
+/**
+ * setUp
+ *
+ * @return void
+ */
+ public function setUp() {
+ parent::setUp();
+ $this->controller = $this->getMock('Controller', array(), array(), '', false);
+ $this->Acl = $this->getMock('AclComponent', array(), array(), '', false);
+ $this->Collection = $this->getMock('ComponentCollection');
+
+ $this->auth = new ActionsAuthorize($this->Collection);
+ $this->auth->settings['actionPath'] = '/controllers';
+ }
+
+/**
+ * setup the mock acl.
+ *
+ * @return void
+ */
+ protected function _mockAcl() {
+ $this->Collection->expects($this->any())
+ ->method('load')
+ ->with('Acl')
+ ->will($this->returnValue($this->Acl));
+ }
+
+/**
+ * test failure
+ *
+ * @return void
+ */
+ public function testAuthorizeFailure() {
+ $user = array(
+ 'User' => array(
+ 'id' => 1,
+ 'user' => 'mariano'
+ )
+ );
+ $request = new CakeRequest('/posts/index', false);
+ $request->addParams(array(
+ 'plugin' => null,
+ 'controller' => 'posts',
+ 'action' => 'index'
+ ));
+
+ $this->_mockAcl();
+
+ $this->Acl->expects($this->once())
+ ->method('check')
+ ->with($user, 'controllers/Posts/index')
+ ->will($this->returnValue(false));
+
+ $this->assertFalse($this->auth->authorize($user['User'], $request));
+ }
+
+/**
+ * test isAuthorized working.
+ *
+ * @return void
+ */
+ public function testAuthorizeSuccess() {
+ $user = array(
+ 'User' => array(
+ 'id' => 1,
+ 'user' => 'mariano'
+ )
+ );
+ $request = new CakeRequest('/posts/index', false);
+ $request->addParams(array(
+ 'plugin' => null,
+ 'controller' => 'posts',
+ 'action' => 'index'
+ ));
+
+ $this->_mockAcl();
+
+ $this->Acl->expects($this->once())
+ ->method('check')
+ ->with($user, 'controllers/Posts/index')
+ ->will($this->returnValue(true));
+
+ $this->assertTrue($this->auth->authorize($user['User'], $request));
+ }
+
+/**
+ * testAuthorizeSettings
+ *
+ * @return void
+ */
+ public function testAuthorizeSettings() {
+ $request = new CakeRequest('/posts/index', false);
+ $request->addParams(array(
+ 'plugin' => null,
+ 'controller' => 'posts',
+ 'action' => 'index'
+ ));
+
+ $this->_mockAcl();
+
+ $this->auth->settings['userModel'] = 'TestPlugin.TestPluginAuthUser';
+ $user = array(
+ 'id' => 1,
+ 'user' => 'mariano'
+ );
+
+ $expected = array('TestPlugin.TestPluginAuthUser' => array('id' => 1, 'user' => 'mariano'));
+ $this->Acl->expects($this->once())
+ ->method('check')
+ ->with($expected, 'controllers/Posts/index')
+ ->will($this->returnValue(true));
+
+ $this->assertTrue($this->auth->authorize($user, $request));
+ }
+
+/**
+ * test action()
+ *
+ * @return void
+ */
+ public function testActionMethod() {
+ $request = new CakeRequest('/posts/index', false);
+ $request->addParams(array(
+ 'plugin' => null,
+ 'controller' => 'posts',
+ 'action' => 'index'
+ ));
+
+ $result = $this->auth->action($request);
+ $this->assertEquals('controllers/Posts/index', $result);
+ }
+
+/**
+ * Make sure that action() doesn't create double slashes anywhere.
+ *
+ * @return void
+ */
+ public function testActionNoDoubleSlash() {
+ $this->auth->settings['actionPath'] = '/controllers/';
+ $request = array(
+ 'plugin' => null,
+ 'controller' => 'posts',
+ 'action' => 'index'
+ );
+ $result = $this->auth->action($request);
+ $this->assertEquals('controllers/Posts/index', $result);
+ }
+
+/**
+ * test action() and plugins
+ *
+ * @return void
+ */
+ public function testActionWithPlugin() {
+ $request = new CakeRequest('/debug_kit/posts/index', false);
+ $request->addParams(array(
+ 'plugin' => 'debug_kit',
+ 'controller' => 'posts',
+ 'action' => 'index'
+ ));
+
+ $result = $this->auth->action($request);
+ $this->assertEquals('controllers/DebugKit/Posts/index', $result);
+ }
+}