set.test.php
来自「Cake Framwork , Excellent」· PHP 代码 · 共 1,605 行 · 第 1/5 页
PHP
1,605 行
'string' => 1, 'another' => 'string', 'some' => 'thing else', 'Array2' => array( 0 => array('Array2Data1' => 1, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 1 => array('Array2Data1' => 2, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 2 => array('Array2Data1' => 3, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 3 => array('Array2Data1' => 4, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 4 => array('Array2Data1' => 5, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4')), 'Array3' => array( 0 => array('Array3Data1' => 1, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 1 => array('Array3Data1' => 2, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 2 => array('Array3Data1' => 3, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 3 => array('Array3Data1' => 4, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 4 => array('Array3Data1' => 5, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'))); $map = Set::map($expected, true); $result = Set::reverse($map); $this->assertIdentical($result, $expected); $expected = array( 'Array1' => array( 'Array1Data1' => 'Array1Data1 value 1', 'Array1Data2' => 'Array1Data2 value 2', 'Array1Data3' => 'Array1Data3 value 3','Array1Data4' => 'Array1Data4 value 4', 'Array1Data5' => 'Array1Data5 value 5', 'Array1Data6' => 'Array1Data6 value 6', 'Array1Data7' => 'Array1Data7 value 7', 'Array1Data8' => 'Array1Data8 value 8'), 'string' => 1, 'another' => 'string', 'some' => 'thing else', 'Array2' => array( 0 => array('Array2Data1' => 1, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 1 => array('Array2Data1' => 2, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 2 => array('Array2Data1' => 3, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 3 => array('Array2Data1' => 4, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4'), 4 => array('Array2Data1' => 5, 'Array2Data2' => 'Array2Data2 value 2', 'Array2Data3' => 'Array2Data3 value 2', 'Array2Data4' => 'Array2Data4 value 4')), 'string2' => 1, 'another2' => 'string', 'some2' => 'thing else', 'Array3' => array( 0 => array('Array3Data1' => 1, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 1 => array('Array3Data1' => 2, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 2 => array('Array3Data1' => 3, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 3 => array('Array3Data1' => 4, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4'), 4 => array('Array3Data1' => 5, 'Array3Data2' => 'Array3Data2 value 2', 'Array3Data3' => 'Array3Data3 value 2', 'Array3Data4' => 'Array3Data4 value 4')), 'string3' => 1, 'another3' => 'string', 'some3' => 'thing else'); $map = Set::map($expected, true); $result = Set::reverse($map); $this->assertIdentical($result, $expected); $expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851))); $map = Set::map($expected); $result = Set::reverse($map); $this->assertIdentical($result, $expected); $expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851))); $class = new stdClass; $class->User = new stdClass; $class->User->psword = 'whatever'; $class->User->Icon = new stdClass; $class->User->Icon->id = 851; $result = Set::reverse($class); $this->assertIdentical($result, $expected); $expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851), 'Profile' => array('name' => 'Some Name', 'address' => 'Some Address'))); $class = new stdClass; $class->User = new stdClass; $class->User->psword = 'whatever'; $class->User->Icon = new stdClass; $class->User->Icon->id = 851; $class->User->Profile = new stdClass; $class->User->Profile->name = 'Some Name'; $class->User->Profile->address = 'Some Address'; $result = Set::reverse($class); $this->assertIdentical($result, $expected); $expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851), 'Profile' => array('name' => 'Some Name', 'address' => 'Some Address'), 'Comment' => array( array('id' => 1, 'article_id' => 1, 'user_id' => 1, 'comment' => 'First Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'), array('id' => 2, 'article_id' => 1, 'user_id' => 2, 'comment' => 'Second Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31')))); $class = new stdClass; $class->User = new stdClass; $class->User->psword = 'whatever'; $class->User->Icon = new stdClass; $class->User->Icon->id = 851; $class->User->Profile = new stdClass; $class->User->Profile->name = 'Some Name'; $class->User->Profile->address = 'Some Address'; $class->User->Comment = new stdClass; $class->User->Comment->{'0'} = new stdClass; $class->User->Comment->{'0'}->id = 1; $class->User->Comment->{'0'}->article_id = 1; $class->User->Comment->{'0'}->user_id = 1; $class->User->Comment->{'0'}->comment = 'First Comment for First Article'; $class->User->Comment->{'0'}->published = 'Y'; $class->User->Comment->{'0'}->created = '2007-03-18 10:47:23'; $class->User->Comment->{'0'}->updated = '2007-03-18 10:49:31'; $class->User->Comment->{'1'} = new stdClass; $class->User->Comment->{'1'}->id = 2; $class->User->Comment->{'1'}->article_id = 1; $class->User->Comment->{'1'}->user_id = 2; $class->User->Comment->{'1'}->comment = 'Second Comment for First Article'; $class->User->Comment->{'1'}->published = 'Y'; $class->User->Comment->{'1'}->created = '2007-03-18 10:47:23'; $class->User->Comment->{'1'}->updated = '2007-03-18 10:49:31'; $result = Set::reverse($class); $this->assertIdentical($result, $expected); $expected = array('User' => array('psword'=> 'whatever', 'Icon' => array('id'=> 851), 'Profile' => array('name' => 'Some Name', 'address' => 'Some Address'), 'Comment' => array( array('id' => 1, 'article_id' => 1, 'user_id' => 1, 'comment' => 'First Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31'), array('id' => 2, 'article_id' => 1, 'user_id' => 2, 'comment' => 'Second Comment for First Article', 'published' => 'Y', 'created' => '2007-03-18 10:47:23', 'updated' => '2007-03-18 10:49:31')))); $class = new stdClass; $class->User = new stdClass; $class->User->psword = 'whatever'; $class->User->Icon = new stdClass; $class->User->Icon->id = 851; $class->User->Profile = new stdClass; $class->User->Profile->name = 'Some Name'; $class->User->Profile->address = 'Some Address'; $class->User->Comment = array(); $comment = new stdClass; $comment->id = 1; $comment->article_id = 1; $comment->user_id = 1; $comment->comment = 'First Comment for First Article'; $comment->published = 'Y'; $comment->created = '2007-03-18 10:47:23'; $comment->updated = '2007-03-18 10:49:31'; $comment2 = new stdClass; $comment2->id = 2; $comment2->article_id = 1; $comment2->user_id = 2; $comment2->comment = 'Second Comment for First Article'; $comment2->published = 'Y'; $comment2->created = '2007-03-18 10:47:23'; $comment2->updated = '2007-03-18 10:49:31'; $class->User->Comment = array($comment, $comment2); $result = Set::reverse($class); $this->assertIdentical($result, $expected); uses('model'.DS.'model'); $model = new Model(array('id' => false, 'name' => 'Model', 'table' => false)); $expected = array( 'Behaviors' => array('modelName' => 'Model', '_attached' => array(), '_disabled' => array(), '__methods' => array(), '__mappedMethods' => array(), '_log' => null), 'useDbConfig' => 'default', 'useTable' => false, 'displayField' => null, 'id' => false, 'data' => array(), 'table' => false, 'primaryKey' => 'id', '_schema' => null, 'validate' => array(), 'validationErrors' => array(), 'tablePrefix' => null, 'name' => 'Model', 'alias' => 'Model', 'tableToModel' => array(), 'logTransactions' => false, 'transactional' => false, 'cacheQueries' => false, 'belongsTo' => array(), 'hasOne' => array(), 'hasMany' => array(), 'hasAndBelongsToMany' => array(), 'actsAs' => null, 'whitelist' => array(), 'cacheSources' => true, 'findQueryType' => null, 'recursive' => 1, 'order' => null, '__exists' => null, '__associationKeys' => array( 'belongsTo' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'counterCache'), 'hasOne' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'dependent'), 'hasMany' => array('className', 'foreignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'dependent', 'exclusive', 'finderQuery', 'counterQuery'), 'hasAndBelongsToMany' => array('className', 'joinTable', 'with', 'foreignKey', 'associationForeignKey', 'conditions', 'fields', 'order', 'limit', 'offset', 'unique', 'finderQuery', 'deleteQuery', 'insertQuery')), '__associations' => array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'), '__backAssociation' => array(), '__insertID' => null, '__numRows' => null, '__affectedRows' => null, '__findMethods' => array('all' => true, 'first' => true, 'count' => true, 'neighbors' => true, 'list' => true), '_log' => null); $result = Set::reverse($model); ksort($result); ksort($expected); $this->assertIdentical($result, $expected); $class = new stdClass; $class->User = new stdClass; $class->User->id = 100; $class->someString = 'this is some string'; $class->Profile = new stdClass; $class->Profile->name = 'Joe Mamma'; $result = Set::reverse($class); $expected = array('User' => array('id' => '100'), 'someString'=> 'this is some string', 'Profile' => array('name' => 'Joe Mamma')); $this->assertEqual($result, $expected); }/** * testFormatting method * * @access public * @return void */ function testFormatting() { $data = array( array('Person' => array('first_name' => 'Nate', 'last_name' => 'Abele', 'city' => 'Boston', 'state' => 'MA', 'something' => '42')), array('Person' => array('first_name' => 'Larry', 'last_name' => 'Masters', 'city' => 'Boondock', 'state' => 'TN', 'something' => '{0}')), array('Person' => array('first_name' => 'Garrett', 'last_name' => 'Woodworth', 'city' => 'Venice Beach', 'state' => 'CA', 'something' => '{1}'))); $result = Set::format($data, '{1}, {0}', array('{n}.Person.first_name', '{n}.Person.last_name')); $expected = array('Abele, Nate', 'Masters, Larry', 'Woodworth, Garrett'); $this->assertEqual($result, $expected); $result = Set::format($data, '{0}, {1}', array('{n}.Person.last_name', '{n}.Person.first_name')); $this->assertEqual($result, $expected); $result = Set::format($data, '{0}, {1}', array('{n}.Person.city', '{n}.Person.state')); $expected = array('Boston, MA', 'Boondock, TN', 'Venice Beach, CA'); $this->assertEqual($result, $expected); $result = Set::format($data, '{{0}, {1}}', array('{n}.Person.city', '{n}.Person.state')); $expected = array('{Boston, MA}', '{Boondock, TN}', '{Venice Beach, CA}'); $this->assertEqual($result, $expected); $result = Set::format($data, '{{0}, {1}}', array('{n}.Person.something', '{n}.Person.something')); $expected = array('{42, 42}', '{{0}, {0}}', '{{1}, {1}}'); $this->assertEqual($result, $expected); $result = Set::format($data, '{%2$d, %1$s}', array('{n}.Person.something', '{n}.Person.something')); $expected = array('{42, 42}', '{0, {0}}', '{0, {1}}'); $this->assertEqual($result, $expected); $result = Set::format($data, '{%1$s, %1$s}', array('{n}.Person.something', '{n}.Person.something')); $expected = array('{42, 42}', '{{0}, {0}}', '{{1}, {1}}'); $this->assertEqual($result, $expected); $result = Set::format($data, '%2$d, %1$s', array('{n}.Person.first_name', '{n}.Person.something')); $expected = array('42, Nate', '0, Larry', '0, Garrett'); $this->assertEqual($result, $expected); $result = Set::format($data, '%1$s, %2$d', array('{n}.Person.first_name', '{n}.Person.something')); $expected = array('Nate, 42', 'Larry, 0', 'Garrett, 0'); $this->assertEqual($result, $expected); }/** * testCountDim method * * @access public * @return void */ function testCountDim() { $data = array('one', '2', 'three'); $result = Set::countDim($data); $this->assertEqual($result, 1); $data = array('1' => '1.1', '2', '3'); $result = Set::countDim($data); $this->assertEqual($result, 1); $data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => '3.1.1')); $result = Set::countDim($data); $this->assertEqual($result, 2); $data = array('1' => '1.1', '2', '3' => array('3.1' => '3.1.1')); $result = Set::countDim($data); $this->assertEqual($result, 1); $data = array('1' => '1.1', '2', '3' => array('3.1' => '3.1.1')); $result = Set::countDim($data, true); $this->assertEqual($result, 2); $data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => array('3.1.1' => '3.1.1.1'))); $result = Set::countDim($data); $this->assertEqual($result, 2); $data = array('1' => array('1.1' => '1.1.1'), '2', '3' => array('3.1' => array('3.1.1' => '3.1.1.1'))); $result = Set::countDim($data, true); $this->assertEqual($result, 3); $data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => '2.1.1.1'))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1'))); $result = Set::countDim($data, true); $this->assertEqual($result, 4); $data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => array('2.1.1.1')))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1'))); $result = Set::countDim($data, true); $this->assertEqual($result, 5); $data = array('1' => array('1.1' => '1.1.1'), array('2' => array('2.1' => array('2.1.1' => array('2.1.1.1' => '2.1.1.1.1')))), '3' => array('3.1' => array('3.1.1' => '3.1.1.1'))); $result = Set::countDim($data, true); $this->assertEqual($result, 5); }/** * testMapNesting method * * @access public * @return void */ function testMapNesting() { $expected = array( array( "IndexedPage" => array( "id" => 1, "url" => 'http://blah.com/', 'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5', 'headers' => array( 'Date' => "Wed, 14 Nov 2007 15:51:42 GMT", 'Server' => "Apache", 'Expires' => "Thu, 19 Nov 1981 08:52:00 GMT", 'Cache-Control' => "private", 'Pragma' => "no-cache", 'Content-Type' => "text/html; charset=UTF-8", 'X-Original-Transfer-Encoding' => "chunked", 'Content-Length' => "50210", ), 'meta' => array( 'keywords' => array('testing','tests'), 'description'=>'describe me', ), 'get_vars' => '', 'post_vars' => array(), 'cookies' => array('PHPSESSID' => "dde9896ad24595998161ffaf9e0dbe2d"), 'redirect' => '', 'created' => "1195055503", 'updated' => "1195055503", ) ), array( "IndexedPage" => array( "id" => 2, "url" => 'http://blah.com/', 'hash' => '68a9f053b19526d08e36c6a9ad150737933816a5', 'headers' => array( 'Date' => "Wed, 14 Nov 2007 15:51:42 GMT", 'Server' => "Apache", 'Expires' => "Thu, 19 Nov 1981 08:52:00 GMT", 'Cache-Control' => "private", 'Pragma' => "no-cache", 'Content-Type' => "text/html; charset=UTF-8",
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?