summaryrefslogtreecommitdiff
path: root/poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.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/ComponentTest.php')
-rw-r--r--poc/poc02-compiling-cake/src/vendor/cakephp-2.2.1-0-gcc44130/lib/Cake/Test/Case/Controller/ComponentTest.php305
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);
+ }
+
+}