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©', '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©","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©', '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 + -
显示快捷键?