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

📄 behavior.test.php

📁 Cake Framwork , Excellent
💻 PHP
📖 第 1 页 / 共 3 页
字号:
				'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->Sample->Behaviors->disable('Test');		$result = $Apple->find('all');		$this->assertEqual($result, $expected);		$Apple->Sample->Behaviors->attach('Test', array('before' => 'off', 'after' => 'on'));		$this->assertIdentical($Apple->find('all'), array());		$Apple->Sample->Behaviors->attach('Test', array('after' => 'off'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Sample->Behaviors->attach('Test', array('after' => 'test'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Sample->Behaviors->attach('Test', array('after' => 'test2'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Sample->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);	}	/** * testBehaviorBelongsToFindCallbacks method *  * @access public * @return void */	function testBehaviorBelongsToFindCallbacks() {		$Apple = new Apple();		$Apple->unbindModel(array('hasMany' => array('Child'), 'hasOne' => array('Sample')), false);		$expected = $Apple->find('all');		$Apple->unbindModel(array('belongsTo' => array('Parent')));		$wellBehaved = $Apple->find('all');		$Apple->Parent->Behaviors->attach('Test');		$this->assertIdentical($Apple->find('all'), $wellBehaved);		$Apple->Parent->Behaviors->attach('Test', array('before' => 'off'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Parent->Behaviors->attach('Test', array('before' => 'test'));		$this->assertIdentical($Apple->find('all'), $expected);		$Apple->Parent->Behaviors->attach('Test', array('before' => 'modify'));		$expected2 = array(			array(				'Apple' => array('id' => 1),				'Parent' => array('id' => 2,'name' => 'Bright Red Apple', 'mytime' => '22:57:17')),			array(				'Apple' => array('id' => 2),				'Parent' => array('id' => 1, 'name' => 'Red Apple 1', 'mytime' => '22:57:17')),			array(				'Apple' => array('id' => 3),				'Parent' => array('id' => 2,'name' => 'Bright Red Apple', 'mytime' => '22:57:17'))		);		$result = $Apple->find('all', array('fields' => array('Apple.id', 'Parent.*'), 'conditions' => array('Apple.id <' => '4')));		$this->assertEqual($result, $expected2);		$Apple->Parent->Behaviors->disable('Test');		$result = $Apple->find('all');		$this->assertEqual($result, $expected);		$Apple->Parent->Behaviors->attach('Test', array('before' => 'off', 'after' => 'on'));		$this->assertIdentical($Apple->find('all'), array());		$Apple->Parent->Behaviors->attach('Test', array('after' => 'off'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Parent->Behaviors->attach('Test', array('after' => 'test'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Parent->Behaviors->attach('Test', array('after' => 'test2'));		$this->assertEqual($Apple->find('all'), $expected);		$Apple->Parent->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);	}/** * testBehaviorSaveCallbacks method *  * @access public * @return void */	function testBehaviorSaveCallbacks() {		$Sample = new Sample();		$record = array('Sample' => array('apple_id' => 6, 'name' => 'sample99'));		$Sample->Behaviors->attach('Test', array('beforeSave' => 'on'));		$Sample->create();		$this->assertIdentical($Sample->save($record), false);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'off'));		$Sample->create();		$this->assertIdentical($Sample->save($record), $record);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'test'));		$Sample->create();		$this->assertIdentical($Sample->save($record), $record);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'modify'));		$expected = Set::insert($record, 'Sample.name', 'sample99 modified before');		$Sample->create();		$this->assertIdentical($Sample->save($record), $expected);				$Sample->Behaviors->disable('Test');		$this->assertIdentical($Sample->save($record), $record);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'off', 'afterSave' => 'on'));		$expected = Set::merge($record, array('Sample' => array('aftersave' => 'modified after on create')));		$Sample->create();		$this->assertIdentical($Sample->save($record), $expected);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'modify', 'afterSave' => 'modify'));		$expected = Set::merge($record, array('Sample' => array('name' => 'sample99 modified before modified after on create')));		$Sample->create();		$this->assertIdentical($Sample->save($record), $expected);		$Sample->Behaviors->attach('Test', array('beforeSave' => 'off', 'afterSave' => 'test'));		$Sample->create();		$this->assertIdentical($Sample->save($record), $record);				$Sample->Behaviors->attach('Test', array('afterSave' => 'test2'));		$Sample->create();		$this->assertIdentical($Sample->save($record), $record);				$Sample->Behaviors->attach('Test', array('beforeFind' => 'off', 'afterFind' => 'off'));		$Sample->recursive = -1;		$record2 = $Sample->read(null, 1);		$Sample->Behaviors->attach('Test', array('afterSave' => 'on'));		$expected = Set::merge($record2, array('Sample' => array('aftersave' => 'modified after')));		$Sample->create();		$this->assertIdentical($Sample->save($record2), $expected);		$Sample->Behaviors->attach('Test', array('afterSave' => 'modify'));		$expected = Set::merge($record2, array('Sample' => array('name' => 'sample1 modified after')));		$Sample->create();		$this->assertIdentical($Sample->save($record2), $expected);	}	function testBehaviorDeleteCallbacks() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test', array('beforeFind' => 'off', 'beforeDelete' => 'off'));		$this->assertIdentical($Apple->del(6), true);		$Apple->Behaviors->attach('Test', array('beforeDelete' => 'on'));		$this->assertIdentical($Apple->delete(4), false);		$Apple->Behaviors->attach('Test', array('beforeDelete' => 'test2'));		if (ob_start()) {			$results = $Apple->del(4);			$this->assertIdentical(trim(ob_get_clean()), 'beforeDelete success (cascading)');			$this->assertIdentical($results, true);		}		if (ob_start()) {			$results = $Apple->del(3, false);			$this->assertIdentical(trim(ob_get_clean()), 'beforeDelete success');			$this->assertIdentical($results, true);		}		$Apple->Behaviors->attach('Test', array('beforeDelete' => 'off', 'afterDelete' => 'on'));		if (ob_start()) {			$results = $Apple->del(2, false);			$this->assertIdentical(trim(ob_get_clean()), 'afterDelete success');			$this->assertIdentical($results, true);		}	}		function testBehaviorOnErrorCallback() {		$Apple = new Apple();				$Apple->Behaviors->attach('Test', array('beforeFind' => 'off', 'onError' => 'on'));		if (ob_start()) {			$Apple->Behaviors->Test->onError($Apple);			$this->assertIdentical(trim(ob_get_clean()), 'onError trigger success');		}		if (ob_start()) {			$Apple->del(99);			$this->assertIdentical(trim(ob_get_clean()), 'onError trigger success');		}	}		function testBehaviorValidateCallback() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test');		$this->assertIdentical($Apple->validates(), true);		$Apple->Behaviors->attach('Test', array('validate' => 'on'));		$this->assertIdentical($Apple->validates(), false);		$this->assertIdentical($Apple->validationErrors, array('name' => true));				$Apple->Behaviors->attach('Test', array('validate' => 'stop'));		$this->assertIdentical($Apple->validates(), false);		$this->assertIdentical($Apple->validationErrors, array('name' => true));		$Apple->Behaviors->attach('Test', array('validate' => 'whitelist'));		$Apple->validates();		$this->assertIdentical($Apple->whitelist, array());				$Apple->whitelist = array('unknown');		$Apple->validates();		$this->assertIdentical($Apple->whitelist, array('unknown', 'name'));	}	function testBehaviorValidateMethods() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test');		$Apple->validate['color'] = 'validateField';		$result = $Apple->save(array('name' => 'Genetically Modified Apple', 'color' => 'Orange'));		$this->assertEqual(array_keys($result['Apple']), array('name', 'color', 'modified', 'created'));		$Apple->create();		$result = $Apple->save(array('name' => 'Regular Apple', 'color' => 'Red'));		$this->assertFalse($result);	}	function testBehaviorMethodDispatching() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test');		$expected = 'working';		$this->assertEqual($Apple->testMethod(), $expected);		$this->assertEqual($Apple->Behaviors->dispatchMethod($Apple, 'testMethod'), $expected);		$result = $Apple->Behaviors->dispatchMethod($Apple, 'wtf');		$this->assertEqual($result, array('unhandled'));		$result = $Apple->{'look for the remote'}('in the couch');		$expected = "Item.name = 'the remote' AND Location.name = 'the couch'";		$this->assertEqual($result, $expected);	}	function testBehaviorMethodDispatchingWithData() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test');		$Apple->set('field', 'value');		$this->assertTrue($Apple->testData());		$this->assertTrue($Apple->data['Apple']['field_2']);	}	function testBehaviorTrigger() {		$Apple = new Apple();		$Apple->Behaviors->attach('Test');		$Apple->Behaviors->attach('Test2');		$Apple->Behaviors->attach('Test3');		$Apple->beforeTestResult = array();		$Apple->Behaviors->trigger($Apple, 'beforeTest');		$expected = array('TestBehavior', 'Test2Behavior', 'Test3Behavior');		$this->assertIdentical($Apple->beforeTestResult, $expected);		$Apple->beforeTestResult = array();		$Apple->Behaviors->trigger($Apple, 'beforeTest', array(), array('break' => true, 'breakOn' => 'Test2Behavior'));		$expected = array('TestBehavior', 'Test2Behavior');		$this->assertIdentical($Apple->beforeTestResult, $expected);		$Apple->beforeTestResult = array();		$Apple->Behaviors->trigger($Apple, 'beforeTest', array(), array('break' => true, 'breakOn' => array('Test2Behavior', 'Test3Behavior')));		$expected = array('TestBehavior', 'Test2Behavior');		$this->assertIdentical($Apple->beforeTestResult, $expected);	}	function tearDown() {		ClassRegistry::flush();	}}?>

⌨️ 快捷键说明

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