diff options
Diffstat (limited to 'poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php')
-rw-r--r-- | poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php | 305 |
1 files changed, 305 insertions, 0 deletions
diff --git a/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php new file mode 100644 index 0000000..6085407 --- /dev/null +++ b/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php @@ -0,0 +1,305 @@ +<?php +/** + * ComponentTest file + * + * PHP 5 + * + * CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html> + * 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://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests + * @package Cake.Test.Case.Controller + * @since CakePHP(tm) v 1.2.0.5436 + * @license MIT License (http://www.opensource.org/licenses/mit-license.php) + */ + +App::uses('Controller', 'Controller'); +App::uses('Component', 'Controller'); + +/** + * ParamTestComponent + * + * @package Cake.Test.Case.Controller + */ +class ParamTestComponent extends Component { + +/** + * name property + * + * @var string 'ParamTest' + */ + public $name = 'ParamTest'; + +/** + * components property + * + * @var array + */ + public $components = array('Banana' => array('config' => 'value')); +} + +/** + * ComponentTestController class + * + * @package Cake.Test.Case.Controller + */ +class ComponentTestController extends Controller { + +/** + * name property + * + * @var string 'ComponentTest' + */ + public $name = 'ComponentTest'; + +/** + * uses property + * + * @var array + */ + public $uses = array(); + +} + +/** + * AppleComponent class + * + * @package Cake.Test.Case.Controller + */ +class AppleComponent extends Component { + +/** + * components property + * + * @var array + */ + public $components = array('Orange'); + +/** + * testName property + * + * @var mixed null + */ + public $testName = null; + +/** + * startup method + * + * @param Controller $controller + * @return void + */ + public function startup(Controller $controller) { + $this->testName = $controller->name; + } + +} + +/** + * OrangeComponent class + * + * @package Cake.Test.Case.Controller + */ +class OrangeComponent extends Component { + +/** + * components property + * + * @var array + */ + public $components = array('Banana'); + +/** + * initialize method + * + * @param Controller $controller + * @return void + */ + public function initialize(Controller $controller) { + $this->Controller = $controller; + $this->Banana->testField = 'OrangeField'; + } + +/** + * startup method + * + * @param Controller $controller + * @return string + */ + public function startup(Controller $controller) { + $controller->foo = 'pass'; + } + +} + +/** + * BananaComponent class + * + * @package Cake.Test.Case.Controller + */ +class BananaComponent extends Component { + +/** + * testField property + * + * @var string 'BananaField' + */ + public $testField = 'BananaField'; + +/** + * startup method + * + * @param Controller $controller + * @return string + */ + public function startup(Controller $controller) { + $controller->bar = 'fail'; + } + +} + +/** + * MutuallyReferencingOneComponent class + * + * @package Cake.Test.Case.Controller + */ +class MutuallyReferencingOneComponent extends Component { + +/** + * components property + * + * @var array + */ + public $components = array('MutuallyReferencingTwo'); +} + +/** + * MutuallyReferencingTwoComponent class + * + * @package Cake.Test.Case.Controller + */ +class MutuallyReferencingTwoComponent extends Component { + +/** + * components property + * + * @var array + */ + public $components = array('MutuallyReferencingOne'); +} + +/** + * SomethingWithEmailComponent class + * + * @package Cake.Test.Case.Controller + */ +class SomethingWithEmailComponent extends Component { + +/** + * components property + * + * @var array + */ + public $components = array('Email'); +} + + +/** + * ComponentTest class + * + * @package Cake.Test.Case.Controller + */ +class ComponentTest extends CakeTestCase { + +/** + * setUp method + * + * @return void + */ + public function setUp() { + parent::setUp(); + $this->_pluginPaths = App::path('plugins'); + App::build(array( + 'Plugin' => array(CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS) + )); + } + +/** + * test accessing inner components. + * + * @return void + */ + public function testInnerComponentConstruction() { + $Collection = new ComponentCollection(); + $Component = new AppleComponent($Collection); + + $this->assertInstanceOf('OrangeComponent', $Component->Orange, 'class is wrong'); + } + +/** + * test component loading + * + * @return void + */ + public function testNestedComponentLoading() { + $Collection = new ComponentCollection(); + $Apple = new AppleComponent($Collection); + + $this->assertInstanceOf('OrangeComponent', $Apple->Orange, 'class is wrong'); + $this->assertInstanceOf('BananaComponent', $Apple->Orange->Banana, 'class is wrong'); + $this->assertTrue(empty($Apple->Session)); + $this->assertTrue(empty($Apple->Orange->Session)); + } + +/** + * test that component components are not enabled in the collection. + * + * @return void + */ + public function testInnerComponentsAreNotEnabled() { + $Collection = new ComponentCollection(); + $Apple = $Collection->load('Apple'); + + $this->assertInstanceOf('OrangeComponent', $Apple->Orange, 'class is wrong'); + $result = $Collection->enabled(); + $this->assertEquals(array('Apple'), $result, 'Too many components enabled.'); + } + +/** + * test a component being used more than once. + * + * @return void + */ + public function testMultipleComponentInitialize() { + $Collection = new ComponentCollection(); + $Banana = $Collection->load('Banana'); + $Orange = $Collection->load('Orange'); + + $this->assertSame($Banana, $Orange->Banana, 'Should be references'); + $Banana->testField = 'OrangeField'; + + $this->assertSame($Banana->testField, $Orange->Banana->testField, 'References are broken'); + } + +/** + * Test mutually referencing components. + * + * @return void + */ + public function testSomethingReferencingEmailComponent() { + $Controller = new ComponentTestController(); + $Controller->components = array('SomethingWithEmail'); + $Controller->uses = false; + $Controller->constructClasses(); + $Controller->Components->trigger('initialize', array(&$Controller)); + $Controller->beforeFilter(); + $Controller->Components->trigger('startup', array(&$Controller)); + + $this->assertInstanceOf('SomethingWithEmailComponent', $Controller->SomethingWithEmail); + $this->assertInstanceOf('EmailComponent', $Controller->SomethingWithEmail->Email); + } + +} |