Upgrade CakePHP from 2.2.5 to 2.9.5

This commit is contained in:
Brm Ko 2017-02-26 15:29:44 +01:00
parent 5a580df460
commit 235a541597
793 changed files with 60746 additions and 23753 deletions

View file

@ -1,22 +1,17 @@
<?php
/**
* ControllerTestCaseTest file
*
* Test Case for ControllerTestCase class
*
* PHP version 5
*
* CakePHP : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2012, Cake Software Foundation, Inc.
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2005-2012, Cake Software Foundation, Inc.
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP Project
* @package Cake.Test.Case.Event
* @since CakePHP v 2.1
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
App::uses('CakeEvent', 'Event');
@ -67,7 +62,7 @@ class CakeEventTestListener {
*
* @package Cake.Test.Case.Event
*/
class CustomTestEventListerner extends CakeEventTestListener implements CakeEventListener {
class CustomTestEventListener extends CakeEventTestListener implements CakeEventListener {
public function implementedEvents() {
return array(
@ -93,7 +88,6 @@ class CustomTestEventListerner extends CakeEventTestListener implements CakeEven
/**
* Tests the CakeEventManager class functionality
*
*/
class CakeEventManagerTest extends CakeTestCase {
@ -103,7 +97,7 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testAttachListeners() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$manager->attach('fakeFunction', 'fake.event');
$expected = array(
array('callable' => 'fakeFunction', 'passParams' => false)
@ -135,7 +129,7 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testAttachMultipleEventKeys() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$manager->attach('fakeFunction', 'fake.event');
$manager->attach('fakeFunction2', 'another.event');
$manager->attach('fakeFunction3', 'another.event', array('priority' => 1, 'passParams' => true));
@ -157,7 +151,7 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testDetach() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$manager->attach(array('AClass', 'aMethod'), 'fake.event');
$manager->attach(array('AClass', 'anotherMethod'), 'another.event');
$manager->attach('fakeFunction', 'another.event', array('priority' => 1));
@ -181,7 +175,7 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testDetachFromAll() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$manager->attach(array('AClass', 'aMethod'), 'fake.event');
$manager->attach(array('AClass', 'aMethod'), 'another.event');
$manager->attach('fakeFunction', 'another.event', array('priority' => 1));
@ -198,9 +192,10 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests event dispatching
*
* @return void
* @triggers fake.event
*/
public function testDispatch() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$listener = $this->getMock('CakeEventTestListener');
$anotherListener = $this->getMock('CakeEventTestListener');
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
@ -218,8 +213,8 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testDispatchWithKeyName() {
$manager = new CakeEventManager;
$listener = new CakeEventTestListener;
$manager = new CakeEventManager();
$listener = new CakeEventTestListener();
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
$event = 'fake.event';
$manager->dispatch($event);
@ -232,13 +227,14 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests event dispatching with a return value
*
* @return void
* @triggers fake.event
*/
public function testDispatchReturnValue() {
$this->skipIf(
version_compare(PHPUnit_Runner_Version::id(), '3.7', '<'),
'These tests fail in PHPUnit 3.6'
);
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$listener = $this->getMock('CakeEventTestListener');
$anotherListener = $this->getMock('CakeEventTestListener');
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
@ -259,6 +255,7 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests that returning false in a callback stops the event
*
* @return void
* @triggers fake.event
*/
public function testDispatchFalseStopsEvent() {
$this->skipIf(
@ -266,7 +263,7 @@ class CakeEventManagerTest extends CakeTestCase {
'These tests fail in PHPUnit 3.6'
);
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$listener = $this->getMock('CakeEventTestListener');
$anotherListener = $this->getMock('CakeEventTestListener');
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
@ -286,10 +283,11 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests event dispatching using priorities
*
* @return void
* @triggers fake.event
*/
public function testDispatchPrioritized() {
$manager = new CakeEventManager;
$listener = new CakeEventTestListener;
$manager = new CakeEventManager();
$listener = new CakeEventTestListener();
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
$manager->attach(array($listener, 'secondListenerFunction'), 'fake.event', array('priority' => 5));
$event = new CakeEvent('fake.event');
@ -303,9 +301,10 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests event dispatching with passed params
*
* @return void
* @triggers fake.event $this, array('some' => 'data')
*/
public function testDispatchPassingParams() {
$manager = new CakeEventManager;
$manager = new CakeEventManager();
$listener = $this->getMock('CakeEventTestListener');
$anotherListener = $this->getMock('CakeEventTestListener');
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
@ -321,10 +320,13 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests subscribing a listener object and firing the events it subscribed to
*
* @return void
* @triggers fake.event
* @triggers another.event $this, array('some' => 'data')
* @triggers multiple.handlers
*/
public function testAttachSubscriber() {
$manager = new CakeEventManager;
$listener = $this->getMock('CustomTestEventListerner', array('secondListenerFunction'));
$manager = new CakeEventManager();
$listener = $this->getMock('CustomTestEventListener', array('secondListenerFunction'));
$manager->attach($listener);
$event = new CakeEvent('fake.event');
@ -337,8 +339,8 @@ class CakeEventManagerTest extends CakeTestCase {
$event = new CakeEvent('another.event', $this, array('some' => 'data'));
$manager->dispatch($event);
$manager = new CakeEventManager;
$listener = $this->getMock('CustomTestEventListerner', array('listenerFunction', 'thirdListenerFunction'));
$manager = new CakeEventManager();
$listener = $this->getMock('CustomTestEventListener', array('listenerFunction', 'thirdListenerFunction'));
$manager->attach($listener);
$event = new CakeEvent('multiple.handlers');
$listener->expects($this->once())->method('listenerFunction')->with($event);
@ -352,8 +354,8 @@ class CakeEventManagerTest extends CakeTestCase {
* @return void
*/
public function testDetachSubscriber() {
$manager = new CakeEventManager;
$listener = $this->getMock('CustomTestEventListerner', array('secondListenerFunction'));
$manager = new CakeEventManager();
$listener = $this->getMock('CustomTestEventListener', array('secondListenerFunction'));
$manager->attach($listener);
$expected = array(
array('callable' => array($listener, 'secondListenerFunction'), 'passParams' => true)
@ -375,7 +377,7 @@ class CakeEventManagerTest extends CakeTestCase {
*/
public function testGlobalDispatcherGetter() {
$this->assertInstanceOf('CakeEventManager', CakeEventManager::instance());
$manager = new CakeEventManager;
$manager = new CakeEventManager();
CakeEventManager::instance($manager);
$this->assertSame($manager, CakeEventManager::instance());
@ -385,25 +387,36 @@ class CakeEventManagerTest extends CakeTestCase {
* Tests that the global event manager gets the event too from any other manager
*
* @return void
* @triggers fake.event
*/
public function testDispatchWithGlobal() {
$generalManager = $this->getMock('CakeEventManager', array('dispatch'));
$manager = new CakeEventManager;
$generalManager = $this->getMock('CakeEventManager', array('prioritisedListeners'));
$manager = new CakeEventManager();
$event = new CakeEvent('fake.event');
CakeEventManager::instance($generalManager);
$generalManager->expects($this->once())->method('dispatch')->with($event);
$generalManager->expects($this->once())->method('prioritisedListeners')->with('fake.event');
$manager->dispatch($event);
CakeEventManager::instance(new CakeEventManager());
}
/**
* Tests that stopping an event will not notify the rest of the listeners
*
* @return void
* @triggers fake.event
*/
public function testStopPropagation() {
$manager = new CakeEventManager;
$listener = new CakeEventTestListener;
$generalManager = $this->getMock('CakeEventManager');
$manager = new CakeEventManager();
$listener = new CakeEventTestListener();
CakeEventManager::instance($generalManager);
$generalManager->expects($this->any())
->method('prioritisedListeners')
->with('fake.event')
->will($this->returnValue(array()));
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
$manager->attach(array($listener, 'stopListener'), 'fake.event', array('priority' => 8));
$manager->attach(array($listener, 'secondListenerFunction'), 'fake.event', array('priority' => 5));
@ -412,5 +425,110 @@ class CakeEventManagerTest extends CakeTestCase {
$expected = array('secondListenerFunction');
$this->assertEquals($expected, $listener->callStack);
CakeEventManager::instance(new CakeEventManager());
}
/**
* Tests event dispatching using priorities
*
* @return void
* @triggers fake.event
*/
public function testDispatchPrioritizedWithGlobal() {
$generalManager = $this->getMock('CakeEventManager');
$manager = new CakeEventManager();
$listener = new CustomTestEventListener();
$event = new CakeEvent('fake.event');
CakeEventManager::instance($generalManager);
$generalManager->expects($this->any())
->method('prioritisedListeners')
->with('fake.event')
->will($this->returnValue(
array(11 => array(
array('callable' => array($listener, 'secondListenerFunction'), 'passParams' => false)
))
));
$manager->attach(array($listener, 'listenerFunction'), 'fake.event');
$manager->attach(array($listener, 'thirdListenerFunction'), 'fake.event', array('priority' => 15));
$manager->dispatch($event);
$expected = array('listenerFunction', 'secondListenerFunction', 'thirdListenerFunction');
$this->assertEquals($expected, $listener->callStack);
CakeEventManager::instance(new CakeEventManager());
}
/**
* Tests event dispatching using priorities
*
* @return void
* @triggers fake.event
*/
public function testDispatchGlobalBeforeLocal() {
$generalManager = $this->getMock('CakeEventManager');
$manager = new CakeEventManager();
$listener = new CustomTestEventListener();
$event = new CakeEvent('fake.event');
CakeEventManager::instance($generalManager);
$generalManager->expects($this->any())
->method('prioritisedListeners')
->with('fake.event')
->will($this->returnValue(
array(10 => array(
array('callable' => array($listener, 'listenerFunction'), 'passParams' => false)
))
));
$manager->attach(array($listener, 'secondListenerFunction'), 'fake.event');
$manager->dispatch($event);
$expected = array('listenerFunction', 'secondListenerFunction');
$this->assertEquals($expected, $listener->callStack);
CakeEventManager::instance(new CakeEventManager());
}
/**
* test callback
*/
public function onMyEvent($event) {
$event->data['callback'] = 'ok';
}
/**
* Tests events dispatched by a local manager can be handled by
* handler registered in the global event manager
* @triggers my_event $manager
*/
public function testDispatchLocalHandledByGlobal() {
$callback = array($this, 'onMyEvent');
CakeEventManager::instance()->attach($callback, 'my_event');
$manager = new CakeEventManager();
$event = new CakeEvent('my_event', $manager);
$manager->dispatch($event);
$this->assertEquals('ok', $event->data['callback']);
}
/**
* Test that events are dispatched properly when there are global and local
* listeners at the same priority.
*
* @return void
* @triggers fake.event $this
*/
public function testDispatchWithGlobalAndLocalEvents() {
$listener = new CustomTestEventListener();
CakeEventManager::instance()->attach($listener);
$listener2 = new CakeEventTestListener();
$manager = new CakeEventManager();
$manager->attach(array($listener2, 'listenerFunction'), 'fake.event');
$manager->dispatch(new CakeEvent('fake.event', $this));
$this->assertEquals(array('listenerFunction'), $listener->callStack);
$this->assertEquals(array('listenerFunction'), $listener2->callStack);
}
}

View file

@ -4,26 +4,24 @@
*
* Test Case for ControllerTestCase class
*
* PHP version 5
*
* CakePHP : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2012, Cake Software Foundation, Inc.
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* For full copyright and license information, please see the LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2005-2012, Cake Software Foundation, Inc.
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP Project
* @package Cake.Test.Case.Event
* @since CakePHP v 2.1
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
App::uses('CakeEvent', 'Event');
/**
* Tests the CakeEvent class functionality
*
*/
class CakeEventTest extends CakeTestCase {
@ -31,6 +29,7 @@ class CakeEventTest extends CakeTestCase {
* Tests the name() method
*
* @return void
* @triggers fake.event
*/
public function testName() {
$event = new CakeEvent('fake.event');
@ -41,6 +40,8 @@ class CakeEventTest extends CakeTestCase {
* Tests the subject() method
*
* @return void
* @triggers fake.event $this
* @triggers fake.event
*/
public function testSubject() {
$event = new CakeEvent('fake.event', $this);
@ -54,6 +55,7 @@ class CakeEventTest extends CakeTestCase {
* Tests the event propagation stopping property
*
* @return void
* @triggers fake.event
*/
public function testPropagation() {
$event = new CakeEvent('fake.event');
@ -66,6 +68,7 @@ class CakeEventTest extends CakeTestCase {
* Tests that it is possible to get/set custom data in a event
*
* @return void
* @triggers fake.event $this, array('some' => 'data')
*/
public function testEventData() {
$event = new CakeEvent('fake.event', $this, array('some' => 'data'));
@ -76,10 +79,11 @@ class CakeEventTest extends CakeTestCase {
* Tests that it is possible to get the name and subject directly
*
* @return void
* @triggers fake.event $this
*/
public function testEventDirectPropertyAccess() {
$event = new CakeEvent('fake.event', $this);
$this->assertEquals($this, $event->subject);
$this->assertEquals('fake.event', $event->name);
}
}
}