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

📄 behavior.test.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 3 页
字号:
 * @param mixed $field  * @access public * @return void */	function validateField(&$model, $field) {		return current($field) === 'Orange';	}/** * speakEnglish method *  * @param mixed $model  * @param mixed $method  * @param mixed $query  * @access public * @return void */	function speakEnglish(&$model, $method, $query) {		$method = preg_replace('/look for\s+/', 'Item.name = \'', $method);		$query = preg_replace('/^in\s+/', 'Location.name = \'', $query);		return $method . '\' AND ' . $query . '\'';	}}/** * Test2Behavior class *  * @package              cake * @subpackage           cake.tests.cases.libs.model */class Test2Behavior extends TestBehavior{	}/** * Test3Behavior class *  * @package              cake * @subpackage           cake.tests.cases.libs.model */class Test3Behavior extends TestBehavior{}/** * BehaviorTest class *  * @package              cake * @subpackage           cake.tests.cases.libs.model */class BehaviorTest extends CakeTestCase {/** * fixtures property *  * @var array * @access public */	var $fixtures = array('core.apple', 'core.sample');/** * testBehaviorBinding method *  * @access public * @return void */	function testBehaviorBinding() {		$Apple = new Apple();		$this->assertIdentical($Apple->Behaviors->attached(), array());		$Apple->Behaviors->attach('Test', array('key' => 'value'));		$this->assertIdentical($Apple->Behaviors->attached(), array('Test'));		$this->assertEqual(strtolower(get_class($Apple->Behaviors->Test)), 'testbehavior');		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], array('beforeFind' => 'on', 'afterFind' => 'off', 'key' => 'value'));		$this->assertEqual(array_keys($Apple->Behaviors->Test->settings), array('Apple'));		$this->assertIdentical($Apple->Sample->Behaviors->attached(), array());		$Apple->Sample->Behaviors->attach('Test', array('key2' => 'value2'));		$this->assertIdentical($Apple->Sample->Behaviors->attached(), array('Test'));		$this->assertEqual($Apple->Sample->Behaviors->Test->settings['Sample'], array('beforeFind' => 'on', 'afterFind' => 'off', 'key2' => 'value2'));		$this->assertEqual(array_keys($Apple->Behaviors->Test->settings), array('Apple'));		$this->assertEqual(array_keys($Apple->Sample->Behaviors->Test->settings), array('Sample'));		$this->assertNotIdentical($Apple->Behaviors->Test->settings['Apple'], $Apple->Sample->Behaviors->Test->settings['Sample']);		$Apple->Behaviors->attach('Test', array('key2' => 'value2', 'key3' => 'value3', 'beforeFind' => 'off'));		$Apple->Sample->Behaviors->attach('Test', array('key' => 'value', 'key3' => 'value3', 'beforeFind' => 'off'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], array('beforeFind' => 'off', 'afterFind' => 'off', 'key' => 'value', 'key2' => 'value2', 'key3' => 'value3'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], $Apple->Sample->Behaviors->Test->settings['Sample']);		$this->assertFalse(isset($Apple->Child->Behaviors->Test));		$Apple->Child->Behaviors->attach('Test', array('key' => 'value', 'key2' => 'value2', 'key3' => 'value3', 'beforeFind' => 'off'));		$this->assertEqual($Apple->Child->Behaviors->Test->settings['Child'], $Apple->Sample->Behaviors->Test->settings['Sample']);		$this->assertFalse(isset($Apple->Parent->Behaviors->Test));		$Apple->Parent->Behaviors->attach('Test', array('key' => 'value', 'key2' => 'value2', 'key3' => 'value3', 'beforeFind' => 'off'));		$this->assertEqual($Apple->Parent->Behaviors->Test->settings['Parent'], $Apple->Sample->Behaviors->Test->settings['Sample']);		$Apple->Parent->Behaviors->attach('Test', array('key' => 'value', 'key2' => 'value', 'key3' => 'value', 'beforeFind' => 'off'));		$this->assertNotEqual($Apple->Parent->Behaviors->Test->settings['Parent'], $Apple->Sample->Behaviors->Test->settings['Sample']);		$this->assertFalse($Apple->Behaviors->attach('NoSuchBehavior'));		$Apple->Behaviors->attach('Plugin.Test', array('key' => 'new value'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], array('beforeFind' => 'off', 'afterFind' => 'off', 'key' => 'new value', 'key2' => 'value2', 'key3' => 'value3'));		$current = $Apple->Behaviors->Test->settings['Apple'];		$expected = array_merge($current, array('mangle' => 'trigger mangled'));		$Apple->Behaviors->attach('Test', array('mangle' => 'trigger'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], $expected);		$Apple->Behaviors->attach('Test');		$expected = array_merge($current, array('mangle' => 'trigger mangled mangled'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], $expected);		$Apple->Behaviors->attach('Test', array('mangle' => 'trigger'));		$expected = array_merge($current, array('mangle' => 'trigger mangled'));		$this->assertEqual($Apple->Behaviors->Test->settings['Apple'], $expected);	}/** * testBehaviorToggling method *  * @access public * @return void */	function testBehaviorToggling() {		$Apple = new Apple();		$this->assertIdentical($Apple->Behaviors->enabled(), array());		$Apple->Behaviors->init('Apple', array('Test' => array('key' => 'value')));		$this->assertIdentical($Apple->Behaviors->enabled(), array('Test'));		$Apple->Behaviors->disable('Test');		$this->assertIdentical($Apple->Behaviors->attached(), array('Test'));		$this->assertIdentical($Apple->Behaviors->enabled(), array());		$Apple->Sample->Behaviors->attach('Test');		$this->assertIdentical($Apple->Sample->Behaviors->enabled('Test'), true);		$this->assertIdentical($Apple->Behaviors->enabled(), array());		$Apple->Behaviors->enable('Test');		$this->assertIdentical($Apple->Behaviors->attached('Test'), true);		$this->assertIdentical($Apple->Behaviors->enabled(), array('Test'));		$Apple->Behaviors->disable('Test');		$this->assertIdentical($Apple->Behaviors->enabled(), array());		$Apple->Behaviors->attach('Test', array('enabled' => true));		$this->assertIdentical($Apple->Behaviors->enabled(), array('Test'));		$Apple->Behaviors->attach('Test', array('enabled' => false));		$this->assertIdentical($Apple->Behaviors->enabled(), array());		$Apple->Behaviors->detach('Test');		$this->assertIdentical($Apple->Behaviors->enabled(), array());	}/** * testBehaviorFindCallbacks method *  * @access public * @return void */	function testBehaviorFindCallbacks() {		$Apple = new Apple();		$expected = $Apple->find('all');		$Apple->Behaviors->attach('Test');		$this->assertIdentical($Apple->find('all'), null);		$Apple->Behaviors->attach('Test', array('beforeFind' => 'off'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Behaviors->attach('Test', array('beforeFind' => 'test'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Behaviors->attach('Test', array('beforeFind' => 'modify'));		$expected2 = array(			array('Apple' => array('id' => '1', 'name' => 'Red Apple 1', 'mytime' => '22:57:17')),			array('Apple' => array('id' => '2', 'name' => 'Bright Red Apple', 'mytime' => '22:57:17')),			array('Apple' => array('id' => '3', 'name' => 'green blue', 'mytime' => '22:57:17'))		);		$result = $Apple->find('all', array('conditions' => array('Apple.id <' => '4')));		$this->assertEqual($result, $expected2);		$Apple->Behaviors->disable('Test');		$result = $Apple->find('all');		$this->assertEqual($result, $expected);		$Apple->Behaviors->attach('Test', array('beforeFind' => 'off', 'afterFind' => 'on'));		$this->assertIdentical($Apple->find('all'), array());		$Apple->Behaviors->attach('Test', array('afterFind' => 'off'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Behaviors->attach('Test', array('afterFind' => 'test'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Behaviors->attach('Test', array('afterFind' => 'test2'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Behaviors->attach('Test', array('afterFind' => 'modify'));		$expected = array(			array('id' => '1', 'apple_id' => '2', 'color' => 'Red 1', 'name' => 'Red Apple 1', 'created' => '2006-11-22 10:38:58', 'date' => '1951-01-04', 'modified' => '2006-12-01 13:31:26', 'mytime' => '22:57:17'),			array('id' => '2', 'apple_id' => '1', 'color' => 'Bright Red 1', 'name' => 'Bright Red Apple', 'created' => '2006-11-22 10:43:13', 'date' => '2014-01-01', 'modified' => '2006-11-30 18:38:10', 'mytime' => '22:57:17'),			array('id' => '3', 'apple_id' => '2', 'color' => 'blue green', 'name' => 'green blue', 'created' => '2006-12-25 05:13:36', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:23:24', 'mytime' => '22:57:17'),			array('id' => '4', 'apple_id' => '2', 'color' => 'Blue Green', 'name' => 'Test Name', 'created' => '2006-12-25 05:23:36', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:23:36', 'mytime' => '22:57:17'),			array('id' => '5', 'apple_id' => '5', 'color' => 'Green', 'name' => 'Blue Green', 'created' => '2006-12-25 05:24:06', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:29:16', 'mytime' => '22:57:17'),			array('id' => '6', 'apple_id' => '4', 'color' => 'My new appleOrange', 'name' => 'My new apple', 'created' => '2006-12-25 05:29:39', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:29:39', 'mytime' => '22:57:17'),			array('id' => '7', 'apple_id' => '6', 'color' => 'Some wierd color', 'name' => 'Some odd color', 'created' => '2006-12-25 05:34:21', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:34:21', 'mytime' => '22:57:17')		);		$this->assertEqual($Apple->find('all'), $expected);	}/** * testBehaviorHasManyFindCallbacks method *  * @access public * @return void */	function testBehaviorHasManyFindCallbacks() {		$Apple = new Apple();		$Apple->unbindModel(array('hasOne' => array('Sample'), 'belongsTo' => array('Parent')), false);		$expected = $Apple->find('all');		$Apple->unbindModel(array('hasMany' => array('Child')));		$wellBehaved = $Apple->find('all');		$Apple->Child->Behaviors->attach('Test', array('afterFind' => 'modify'));		$this->assertIdentical($Apple->find('all'), $wellBehaved);		$Apple->Child->Behaviors->attach('Test', array('before' => 'off'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Child->Behaviors->attach('Test', array('before' => 'test'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Child->Behaviors->attach('Test', array('before' => 'modify'));		$expected2 = array(			array(				'Apple' => array('id' => 1),				'Child' => array(					array('id' => 2,'name' => 'Bright Red Apple', 'mytime' => '22:57:17'))),			array(				'Apple' => array('id' => 2),				'Child' => array(					array('id' => 1, 'name' => 'Red Apple 1', 'mytime' => '22:57:17'),					array('id' => 3, 'name' => 'green blue', 'mytime' => '22:57:17'),					array('id' => 4, 'name' => 'Test Name', 'mytime' => '22:57:17'))),			array(				'Apple' => array('id' => 3),				'Child' => array())		);		$result = $Apple->find('all', array('fields' => array('Apple.id'), 'conditions' => array('Apple.id' => '< 4')));		$this->assertEqual($result, $expected2);		$Apple->Child->Behaviors->disable('Test');		$result = $Apple->find('all');		$this->assertEqual($result, $expected);		$Apple->Child->Behaviors->attach('Test', array('before' => 'off', 'after' => 'on'));		$this->assertIdentical($Apple->find('all'), array());		$Apple->Child->Behaviors->attach('Test', array('after' => 'off'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Child->Behaviors->attach('Test', array('after' => 'test'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Child->Behaviors->attach('Test', array('after' => 'test2'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Child->Behaviors->attach('Test', array('after' => 'modify'));		$expected = array(			array('id' => '1', 'apple_id' => '2', 'color' => 'Red 1', 'name' => 'Red Apple 1', 'created' => '2006-11-22 10:38:58', 'date' => '1951-01-04', 'modified' => '2006-12-01 13:31:26', 'mytime' => '22:57:17'),			array('id' => '2', 'apple_id' => '1', 'color' => 'Bright Red 1', 'name' => 'Bright Red Apple', 'created' => '2006-11-22 10:43:13', 'date' => '2014-01-01', 'modified' => '2006-11-30 18:38:10', 'mytime' => '22:57:17'),			array('id' => '3', 'apple_id' => '2', 'color' => 'blue green', 'name' => 'green blue', 'created' => '2006-12-25 05:13:36', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:23:24', 'mytime' => '22:57:17'),			array('id' => '4', 'apple_id' => '2', 'color' => 'Blue Green', 'name' => 'Test Name', 'created' => '2006-12-25 05:23:36', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:23:36', 'mytime' => '22:57:17'),			array('id' => '5', 'apple_id' => '5', 'color' => 'Green', 'name' => 'Blue Green', 'created' => '2006-12-25 05:24:06', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:29:16', 'mytime' => '22:57:17'),			array('id' => '6', 'apple_id' => '4', 'color' => 'My new appleOrange', 'name' => 'My new apple', 'created' => '2006-12-25 05:29:39', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:29:39', 'mytime' => '22:57:17'),			array('id' => '7', 'apple_id' => '6', 'color' => 'Some wierd color', 'name' => 'Some odd color', 'created' => '2006-12-25 05:34:21', 'date' => '2006-12-25', 'modified' => '2006-12-25 05:34:21', 'mytime' => '22:57:17')		);		$this->assertEqual($Apple->find('all'), $expected);	}	/** * testBehaviorHasOneFindCallbacks method *  * @access public * @return void */	function testBehaviorHasOneFindCallbacks() {		$Apple = new Apple();		$Apple->unbindModel(array('hasMany' => array('Child'), 'belongsTo' => array('Parent')), false);		$expected = $Apple->find('all');		$Apple->unbindModel(array('hasOne' => array('Sample')));		$wellBehaved = $Apple->find('all');		$Apple->Sample->Behaviors->attach('Test');		$this->assertIdentical($Apple->find('all'), $wellBehaved);		$Apple->Sample->Behaviors->attach('Test', array('before' => 'off'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Sample->Behaviors->attach('Test', array('before' => 'test'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Sample->Behaviors->attach('Test', array('before' => 'modify'));		$expected2 = array(			array(				'Apple' => array('id' => 1),				'Child' => array(					array('id' => 2,'name' => 'Bright Red Apple', 'mytime' => '22:57:17'))),			array(				'Apple' => array('id' => 2),

⌨️ 快捷键说明

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