xml.test.php

来自「Cake Framwork , Excellent」· PHP 代码 · 共 520 行 · 第 1/2 页

PHP
520
字号
<?php/* SVN FILE: $Id: xml.test.php 7118 2008-06-04 20:49:29Z gwoo $ *//** * Short description for file. * * Long description for file * * PHP versions 4 and 5 * * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite> * Copyright 2005-2008, Cake Software Foundation, Inc. *								1785 E. Sahara Avenue, Suite 490-204 *								Las Vegas, Nevada 89104 * *  Licensed under The Open Group Test Suite License *  Redistributions of files must retain the above copyright notice. * * @filesource * @copyright		Copyright 2005-2008, Cake Software Foundation, Inc. * @link				https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests * @package			cake.tests * @subpackage		cake.tests.cases.libs * @since			CakePHP(tm) v 1.2.0.5432 * @version			$Revision: 7118 $ * @modifiedby		$LastChangedBy: gwoo $ * @lastmodified	$Date: 2008-06-04 13:49:29 -0700 (Wed, 04 Jun 2008) $ * @license			http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License */App::import('Core', 'Xml');/** * Short description for class. * * @package    cake.tests * @subpackage cake.tests.cases.libs */class XmlTest extends UnitTestCase {/** * testRootTagParsing method *  * @access public * @return void */	function testRootTagParsing() {		$input = '<' . '?xml version="1.0" encoding="UTF-8" ?' . '>' . "\n" . '<plugin id="1" version_id="1" name="my_plugin" title="My Plugin" author="Me" author_email="me@cakephp.org" description="My awesome package" created="2008-01-28 18:21:13" updated="2008-01-28 18:21:13"><current id="1" plugin_id="1" name="1.0" file="" created="2008-01-28 18:21:13" updated="2008-01-28 18:21:13" /><version id="1" plugin_id="1" name="1.0" file="" created="2008-01-28 18:21:13" updated="2008-01-28 18:21:13" /></plugin>';		$xml = new Xml($input);		$this->assertEqual($xml->children[0]->name, 'plugin');		$this->assertEqual($xml->children[0]->children[0]->name, 'current');		$this->assertEqual($xml->toString(true), $input);	}/** * testSerialization method *  * @access public * @return void */	function testSerialization() {		$input = array(			array(				'Project' => array('id' => 1, 'title' => null, 'client_id' => 1, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 1, 'industry_id' => 1, 'modified' => null, 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 1, 'name' => 'Touch Screen Kiosk'),				'Industry' => array('id' => 1, 'name' => 'Financial')			),			array(				'Project' => array('id' => 2, 'title' => null, 'client_id' => 2, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 2, 'industry_id' => 2, 'modified' => '2007-11-26 14:48:36', 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 2, 'name' => 'Awareness Campaign'),				'Industry' => array('id' => 2, 'name' => 'Education')			)		);		$xml = new Xml($input);		$result = preg_replace("/\n/",'', $xml->toString(false));		$expected = '<project id="1" title="" client_id="1" show="1" is_spotlight="" style_id="0" job_type_id="1" industry_id="1" modified="" created=""><style id="" name="" /><job_type id="1" name="Touch Screen Kiosk" /><industry id="1" name="Financial" /></project><project id="2" title="" client_id="2" show="1" is_spotlight="" style_id="0" job_type_id="2" industry_id="2" modified="2007-11-26 14:48:36" created=""><style id="" name="" /><job_type id="2" name="Awareness Campaign" /><industry id="2" name="Education" /></project>';		$this->assertEqual($result, $expected);		$input = array(			'Project' => array('id' => 1, 'title' => null, 'client_id' => 1, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 1, 'industry_id' => 1, 'modified' => null, 'created' => null),			'Style' => array('id' => null, 'name' => null),			'JobType' => array('id' => 1, 'name' => 'Touch Screen Kiosk'),			'Industry' => array('id' => 1, 'name' => 'Financial')		);		$expected = '<project id="1" title="" client_id="1" show="1" is_spotlight="" style_id="0" job_type_id="1" industry_id="1" modified="" created=""><style id="" name="" /><job_type id="1" name="Touch Screen Kiosk" /><industry id="1" name="Financial" /></project>';		$xml = new Xml($input);		$result = preg_replace("/\n/",'', $xml->toString(false));		$this->assertEqual($result, $expected);	}/** * testSimpleArray method *  * @access public * @return void */	function testSimpleArray() {		$xml = new Xml(array('hello' => 'world'), array('format' => 'tags'));		$result = $xml->toString(false);		$expected = '<hello><![CDATA[world]]></hello>';		$this->assertEqual($expected, $result);	}/** * testSimpleObject method *  * @access public * @return void */	function testSimpleObject() {		$input = new StdClass();		$input->hello = 'world';		$xml = new Xml($input, array('format' => 'tags'));		$result = $xml->toString(false);		$expected = '<hello><![CDATA[world]]></hello>';		$this->assertEqual($expected, $result);	}	/** * testHeader method *  * @access public * @return void */	function testHeader() {		$input = new stdClass();		$input->hello = 'world';		$xml = new Xml($input, array('format' => 'tags'));		$result = $xml->toString(array('header' => true));		$expected = '<'.'?xml version="1.0" encoding="UTF-8" ?'.'>'."\n".'<hello><![CDATA[world]]></hello>';		$this->assertEqual($expected, $result);	}/** * testOwnerAssignment method *  * @access public * @return void */	function testOwnerAssignment() {		$xml = new Xml();		$node =& $xml->createElement('hello', 'world');		$owner =& $node->document();		$this->assertTrue($xml == $owner);		$children =& $node->children;		$childOwner =& $children[0]->document();		$this->assertTrue($xml == $childOwner);	}/** * testArraySingleSerialization method *  * @access public * @return void */	function testArraySingleSerialization() {		$input = array(			'Post' => array('id' => '1', 'author_id' => '1', 'title' => 'First Post', 'body' => 'First Post Body', 'published' => 'Y', 'created' => '2007-03-18 10:39:23', 'updated' => '2007-03-18 10:41:31'),			'Author' => array('id' => '1', 'user' => 'mariano', 'password' => '5f4dcc3b5aa765d61d8327deb882cf99', 'created' => '2007-03-17 01:16:23', 'updated' => '2007-03-17 01:18:31', 'test' => 'working'),		);		$expected = '<post><id>1</id><author_id>1</author_id><title><![CDATA[First Post]]></title><body><![CDATA[First Post Body]]></body><published><![CDATA[Y]]></published><created><![CDATA[2007-03-18 10:39:23]]></created><updated><![CDATA[2007-03-18 10:41:31]]></updated><author><id>1</id><user><![CDATA[mariano]]></user><password><![CDATA[5f4dcc3b5aa765d61d8327deb882cf99]]></password><created><![CDATA[2007-03-17 01:16:23]]></created><updated><![CDATA[2007-03-17 01:18:31]]></updated><test><![CDATA[working]]></test></author></post>';		$xml = new Xml($input, array('format' => 'tags'));		$result = $xml->toString(false);		$this->assertEqual($expected, $result);	}/** * testArraySerialization method *  * @access public * @return void */	function testArraySerialization() {		$input = array(			array(				'Project' => array('id' => 1, 'title' => null, 'client_id' => 1, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 1, 'industry_id' => 1, 'modified' => null, 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 1, 'name' => 'Touch Screen Kiosk'),				'Industry' => array('id' => 1, 'name' => 'Financial')			),			array(				'Project' => array('id' => 2, 'title' => null, 'client_id' => 2, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 2, 'industry_id' => 2, 'modified' => '2007-11-26 14:48:36', 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 2, 'name' => 'Awareness Campaign'),				'Industry' => array('id' => 2, 'name' => 'Education'),			)		);		$expected = '<project><id>1</id><title /><client_id>1</client_id><show>1</show><is_spotlight /><style_id>0</style_id><job_type_id>1</job_type_id><industry_id>1</industry_id><modified /><created /><style><id /><name /></style><job_type><id>1</id><name>Touch Screen Kiosk</name></job_type><industry><id>1</id><name>Financial</name></industry></project><project><id>2</id><title /><client_id>2</client_id><show>1</show><is_spotlight /><style_id>0</style_id><job_type_id>2</job_type_id><industry_id>2</industry_id><modified>2007-11-26 14:48:36</modified><created /><style><id /><name /></style><job_type><id>2</id><name>Awareness Campaign</name></job_type><industry><id>2</id><name>Education</name></industry></project>';		$xml = new Xml($input, array('format' => 'tags'));		$result = $xml->toString(array('header' => false, 'cdata' => false));		$this->assertEqual($expected, $result);	}/** * testNestedArraySerialization method *  * @access public * @return void */	function testNestedArraySerialization() {		$input = array(			array(				'Project' => array('id' => 1, 'title' => null, 'client_id' => 1, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 1, 'industry_id' => 1, 'modified' => null, 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 1, 'name' => 'Touch Screen Kiosk'),				'Industry' => array('id' => 1, 'name' => 'Financial'),				'BusinessSolution' => array(array('id' => 6, 'name' => 'Convert Sales')),				'MediaType' => array(					array('id' => 15, 'name' => 'Print'),					array('id' => 7, 'name' => 'Web Demo'),					array('id' => 6, 'name' => 'CD-ROM')				)			),			array(				'Project' => array('id' => 2, 'title' => null, 'client_id' => 2, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 2, 'industry_id' => 2, 'modified' => '2007-11-26 14:48:36', 'created' => null),				'Style' => array('id' => null, 'name' => null),				'JobType' => array('id' => 2, 'name' => 'Awareness Campaign'),				'Industry' => array('id' => 2, 'name' => 'Education'),				'BusinessSolution' => array(					array('id' => 4, 'name' => 'Build Relationship'),					array('id' => 6, 'name' => 'Convert Sales')				),				'MediaType' => array(					array('id' => 17, 'name' => 'Web'),					array('id' => 6, 'name' => 'CD-ROM')				)			)		);		$expected = '<project><id>1</id><title /><client_id>1</client_id><show>1</show><is_spotlight /><style_id>0</style_id><job_type_id>1</job_type_id><industry_id>1</industry_id><modified /><created /><style><id /><name /></style><job_type><id>1</id><name>Touch Screen Kiosk</name></job_type><industry><id>1</id><name>Financial</name></industry><business_solution><id>6</id><name>Convert Sales</name></business_solution><media_type><id>15</id><name>Print</name></media_type><media_type><id>7</id><name>Web Demo</name></media_type><media_type><id>6</id><name>CD-ROM</name></media_type></project><project><id>2</id><title /><client_id>2</client_id><show>1</show><is_spotlight /><style_id>0</style_id><job_type_id>2</job_type_id><industry_id>2</industry_id><modified>2007-11-26 14:48:36</modified><created /><style><id /><name /></style><job_type><id>2</id><name>Awareness Campaign</name></job_type><industry><id>2</id><name>Education</name></industry><business_solution><id>4</id><name>Build Relationship</name></business_solution><business_solution><id>6</id><name>Convert Sales</name></business_solution><media_type><id>17</id><name>Web</name></media_type><media_type><id>6</id><name>CD-ROM</name></media_type></project>';			$xml = new Xml($input, array('format' => 'tags'));		$result = $xml->toString(array('header' => false, 'cdata' => false));		$this->assertEqual($expected, $result);	}	/*	 * Not implemented yet	 */	// function testChildFilter() {	// 	$input = array(	// 		array(	// 			'Project' => array('id' => 1, 'title' => null, 'client_id' => 1, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 1, 'industry_id' => 1, 'modified' => null, 'created' => null),	// 			'Style' => array('id' => null, 'name' => null),	// 			'JobType' => array('id' => 1, 'name' => 'Touch Screen Kiosk'),	// 			'Industry' => array('id' => 1, 'name' => 'Financial'),	// 			'BusinessSolution' => array(array('id' => 6, 'name' => 'Convert Sales')),	// 			'MediaType' => array(	// 				array('id' => 15, 'name' => 'Print'),	// 				array('id' => 7, 'name' => 'Web Demo'),	// 				array('id' => 6, 'name' => 'CD-ROM')	// 			)	// 		),	// 		array(	// 			'Project' => array('id' => 2, 'title' => null, 'client_id' => 2, 'show' => 1, 'is_spotlight' => null, 'style_id' => 0, 'job_type_id' => 2, 'industry_id' => 2, 'modified' => '2007-11-26 14:48:36', 'created' => null),	// 			'Style' => array('id' => null, 'name' => null),	// 			'JobType' => array('id' => 2, 'name' => 'Awareness Campaign'),	// 			'Industry' => array('id' => 2, 'name' => 'Education'),	// 			'BusinessSolution' => array(	// 				array('id' => 4, 'name' => 'Build Relationship'),	// 				array('id' => 6, 'name' => 'Convert Sales')	// 			),	// 			'MediaType' => array(

⌨️ 快捷键说明

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