renderer.test.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 1,050 行 · 第 1/3 页

PHP
1,050
字号
<?phpif(!defined("PATH_TEST_TO_ROOT")) {	define('PATH_TEST_TO_ROOT', '../../..');}if(!defined('CONFIG_TEST_INCLUDED')){	require_once "../../../tests/config_test.php";}require_once 'DataTable.php';require_once 'DataTable/Simple.php';require_once 'DataTable/Array.php';require_once 'DataTable/Renderer/Xml.php';require_once 'DataTable/Renderer/Csv.php';require_once 'DataTable/Renderer/Json.php';require_once 'DataTable/Renderer/Php.php';class Test_Piwik_DataTable_Renderer extends UnitTestCase{	function __construct( $title = '')	{		parent::__construct( $title );	}		public function setUp()	{		Piwik_DataTable_Manager::getInstance()->deleteAll();	}		public function tearDown()	{	}			/**	 * DATA TESTS 	 * -----------------------	 * for each renderer we test the case	 * - datatableSimple	 * - normal datatable  with 2 row (including columns and metadata)	 *	 */	protected function getDataTableTest()	{		$arraySubTableForRow2 = array ( 			array ( Piwik_DataTable_Row::COLUMNS => array( 'label' => 'sub1', 'count' => 1) ), 			array ( Piwik_DataTable_Row::COLUMNS => array( 'label' => 'sub2', 'count' => 2) ), 		);		$subDataTableForRow2 = new Piwik_DataTable();		$subDataTableForRow2->loadFromArray($arraySubTableForRow2);				$subtable = 		$array = array ( 			array ( Piwik_DataTable_Row::COLUMNS => array( 'label' => 'Google&copy;', 'nb_uniq_visitors' => 11, 'nb_visits' => 11, 'nb_actions' => 17, 'max_actions' => '5', 'sum_visit_length' => 517, 'bounce_count' => 9), 						Piwik_DataTable_Row::METADATA => array('url' => 'http://www.google.com', 'logo' => './plugins/Referers/images/searchEngines/www.google.com.png'), 					 ), 			array ( Piwik_DataTable_Row::COLUMNS => array( 'label' => 'Yahoo!', 'nb_uniq_visitors' => 15, 'nb_visits' => 151, 'nb_actions' => 147, 'max_actions' => '50', 'sum_visit_length' => 517, 'bounce_count' => 90), 						Piwik_DataTable_Row::METADATA => array('url' => 'http://www.yahoo.com', 'logo' => './plugins/Referers/images/searchEngines/www.yahoo.com.png'),						Piwik_DataTable_Row::DATATABLE_ASSOCIATED => $subDataTableForRow2,					 )			);		$dataTable = new Piwik_DataTable();		$dataTable->loadFromArray($array);		return $dataTable;	}	protected function getDataTableSimpleTest()	{		$array = array ( 'max_actions' => 14.0, 'nb_uniq_visitors' => 57.0, 'nb_visits' => 66.0, 'nb_actions' => 151.0, 'sum_visit_length' => 5118.0, 'bounce_count' => 44.0, );				$table = new Piwik_DataTable_Simple;		$table->loadFromArray($array);		return $table;	}	protected function getDataTableSimpleOneRowTest()	{		$array = array ( 'nb_visits' => 14.0 );				$table = new Piwik_DataTable_Simple;		$table->loadFromArray($array);		return $table;	}	protected function getDataTableEmpty()	{		$table = new Piwik_DataTable;		return $table;	}	protected function getDataTableSimpleOneZeroRowTest()	{		$array = array ( 'nb_visits' => 0 );				$table = new Piwik_DataTable_Simple;		$table->loadFromArray($array);		return $table;	}			/**	 * START TESTS	 * -----------------------	 *	 */	function test_XML_test1()	{		$dataTable = $this->getDataTableTest();	  	$render = new Piwik_DataTable_Renderer_Xml($dataTable, true);		$expected = '<?xml version="1.0" encoding="utf-8" ?><result>	<row>		<label>Google漏</label>		<nb_uniq_visitors>11</nb_uniq_visitors>		<nb_visits>11</nb_visits>		<nb_actions>17</nb_actions>		<max_actions>5</max_actions>		<sum_visit_length>517</sum_visit_length>		<bounce_count>9</bounce_count>		<url>http://www.google.com</url>		<logo>./plugins/Referers/images/searchEngines/www.google.com.png</logo>	</row>	<row>		<label>Yahoo!</label>		<nb_uniq_visitors>15</nb_uniq_visitors>		<nb_visits>151</nb_visits>		<nb_actions>147</nb_actions>		<max_actions>50</max_actions>		<sum_visit_length>517</sum_visit_length>		<bounce_count>90</bounce_count>		<url>http://www.yahoo.com</url>		<logo>./plugins/Referers/images/searchEngines/www.yahoo.com.png</logo>		<idsubdatatable>0</idsubdatatable>		<subtable>			<row>				<label>sub1</label>				<count>1</count>			</row>			<row>				<label>sub2</label>				<count>2</count>			</row>		</subtable>	</row></result>';		$rendered = $render->render();		$this->assertEqual( $expected,$rendered);	}	function test_XML_test2()	{		$dataTable = $this->getDataTableSimpleTest();	  	$render = new Piwik_DataTable_Renderer_Xml($dataTable);		$expected = '<?xml version="1.0" encoding="utf-8" ?><result>	<max_actions>14</max_actions>	<nb_uniq_visitors>57</nb_uniq_visitors>	<nb_visits>66</nb_visits>	<nb_actions>151</nb_actions>	<sum_visit_length>5118</sum_visit_length>	<bounce_count>44</bounce_count></result>';		$this->assertEqual( $expected,$render->render());	}	function test_XML_test3()	{		$dataTable = $this->getDataTableSimpleOneRowTest();	  	$render = new Piwik_DataTable_Renderer_Xml($dataTable);		$expected = '<?xml version="1.0" encoding="utf-8" ?><result>14</result>';		$this->assertEqual( $expected,$render->render());	}	function test_XML_test4()	{		$dataTable = $this->getDataTableEmpty();	  	$render = new Piwik_DataTable_Renderer_Xml($dataTable);		$expected = '<?xml version="1.0" encoding="utf-8" ?><result />';		$this->assertEqual( $expected,$render->render());	}		function test_XML_test5()	{		$dataTable = $this->getDataTableSimpleOneZeroRowTest();	  	$render = new Piwik_DataTable_Renderer_Xml($dataTable);		$expected = '<?xml version="1.0" encoding="utf-8" ?><result>0</result>';		$this->assertEqual( $expected,$render->render());	}			function test_CSV_test1()	{		$dataTable = $this->getDataTableTest();	  	$render = new Piwik_DataTable_Renderer_Csv($dataTable);	  	$render->convertToUnicode = false;		$expected = 'label,nb_uniq_visitors,nb_visits,nb_actions,max_actions,sum_visit_length,bounce_count,metadata_url,metadata_logoGoogle漏,11,11,17,5,517,9,http://www.google.com,./plugins/Referers/images/searchEngines/www.google.com.pngYahoo!,15,151,147,50,517,90,http://www.yahoo.com,./plugins/Referers/images/searchEngines/www.yahoo.com.png';		$this->assertEqual( $expected,$render->render());	}	function test_CSV_test2()	{		$dataTable = $this->getDataTableSimpleTest();	  	$render = new Piwik_DataTable_Renderer_Csv($dataTable);	  	$render->convertToUnicode = false;		$expected = 'label,valuemax_actions,14nb_uniq_visitors,57nb_visits,66nb_actions,151sum_visit_length,5118bounce_count,44';		$this->assertEqual( $expected,$render->render());	}	function test_CSV_test3()	{		$dataTable = $this->getDataTableSimpleOneRowTest();	  	$render = new Piwik_DataTable_Renderer_Csv($dataTable);	  	$render->convertToUnicode = false;		$expected = "value\n14";		$this->assertEqual( $expected,$render->render());	}	function test_CSV_test4()	{		$dataTable = $this->getDataTableEmpty();	  	$render = new Piwik_DataTable_Renderer_Csv($dataTable);	  	$render->convertToUnicode = false;		$expected = 'No data available';		$this->assertEqual( $expected,$render->render());	}	function test_CSV_test5()	{		$dataTable = $this->getDataTableSimpleOneZeroRowTest();	  	$render = new Piwik_DataTable_Renderer_Csv($dataTable);	  	$render->convertToUnicode = false;		$expected = "value\n0";		$this->assertEqual( $expected,$render->render());	}		function test_JSON_test1()	{		$dataTable = $this->getDataTableTest();	  	$render = new Piwik_DataTable_Renderer_Json($dataTable, true);		$expected = '[{"label":"Google&copy;","nb_uniq_visitors":11,"nb_visits":11,"nb_actions":17,"max_actions":"5","sum_visit_length":517,"bounce_count":9,"url":"http:\/\/www.google.com","logo":".\/plugins\/Referers\/images\/searchEngines\/www.google.com.png"},{"label":"Yahoo!","nb_uniq_visitors":15,"nb_visits":151,"nb_actions":147,"max_actions":"50","sum_visit_length":517,"bounce_count":90,"url":"http:\/\/www.yahoo.com","logo":".\/plugins\/Referers\/images\/searchEngines\/www.yahoo.com.png","idsubdatatable":0,"subtable":[{"label":"sub1","count":1},{"label":"sub2","count":2}]}]';		$rendered = $render->render();				$this->assertEqual( $expected,$rendered);	}	function test_JSON_test2()	{		$dataTable = $this->getDataTableSimpleTest();	  	$render = new Piwik_DataTable_Renderer_Json($dataTable);		$expected = '{"max_actions":14,"nb_uniq_visitors":57,"nb_visits":66,"nb_actions":151,"sum_visit_length":5118,"bounce_count":44}';		$this->assertEqual( $expected,$render->render());	}	function test_JSON_test3()	{		$dataTable = $this->getDataTableSimpleOneRowTest();	  	$render = new Piwik_DataTable_Renderer_Json($dataTable);		$expected = '{"value":14}';		$this->assertEqual( $expected,$render->render());	}	function test_JSON_test4()	{		$dataTable = $this->getDataTableEmpty();	  	$render = new Piwik_DataTable_Renderer_Json($dataTable);		$expected = '[]';		$this->assertEqual( $expected,$render->render());	}	function test_JSON_test5()	{		$dataTable = $this->getDataTableSimpleOneZeroRowTest();	  	$render = new Piwik_DataTable_Renderer_Json($dataTable);		$expected = '{"value":0}';		$this->assertEqual( $expected,$render->render());	}		function test_PHP_test1()	{		$dataTable = $this->getDataTableTest();	  	$render = new Piwik_DataTable_Renderer_Php($dataTable, true);		$expected = serialize(array (					  0 => 					  array (					    'label' => 'Google&copy;',					    'nb_uniq_visitors' => 11,					    'nb_visits' => 11,					    'nb_actions' => 17,					    'max_actions' => '5',					    'sum_visit_length' => 517,					    'bounce_count' => 9,					    'url' => 'http://www.google.com',					    'logo' => './plugins/Referers/images/searchEngines/www.google.com.png',					  ),					  1 => 					  array (					    'label' => 'Yahoo!',					    'nb_uniq_visitors' => 15,					    'nb_visits' => 151,					    'nb_actions' => 147,					    'max_actions' => '50',					    'sum_visit_length' => 517,					    'bounce_count' => 90,					    'url' => 'http://www.yahoo.com',					    'logo' => './plugins/Referers/images/searchEngines/www.yahoo.com.png',					  	'idsubdatatable' => 0,					    'subtable' => 						    array (						      0 => 						      array (						        'label' => 'sub1',						        'count' => 1,						      ),						      1 => 						      array (						        'label' => 'sub2',						        'count' => 2,						      ),					    ),					  ),					));		$rendered = $render->render(null);		$this->assertEqual( $expected,$rendered);	}	function test_PHP_test2()	{		$dataTable = $this->getDataTableSimpleTest();	  	$render = new Piwik_DataTable_Renderer_Php($dataTable);		$expected = serialize(array (				  'max_actions' => 14.0,				  'nb_uniq_visitors' => 57.0,				  'nb_visits' => 66.0,				  'nb_actions' => 151.0,				  'sum_visit_length' => 5118.0,				  'bounce_count' => 44.0,				));		$this->assertEqual( $expected,$render->render());	}	function test_PHP_test3()	{		$dataTable = $this->getDataTableSimpleOneRowTest();	  	$render = new Piwik_DataTable_Renderer_Php($dataTable);		$expected = serialize(14.0);		$this->assertEqual( $expected,$render->render());

⌨️ 快捷键说明

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