📄 behavior.test.php
字号:
* @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 + -