deleteAll();
}
/**
* DATA TESTS
* -----------------------
* for each renderer we test the case
* - datatableSimple
* - normal datatable with 2 row (including columns and metadata)
*/
protected function _getDataTableTest()
{
$dataTable = new DataTable();
$arraySubTableForRow2 = array(
array(Row::COLUMNS => array('label' => 'sub1', 'count' => 1, 'bool' => false)),
array(Row::COLUMNS => array('label' => 'sub2', 'count' => 2, 'bool' => true)),
);
$subDataTableForRow2 = new DataTable();
$subDataTableForRow2->addRowsFromArray($arraySubTableForRow2);
$array = array(
array(Row::COLUMNS => array('label' => 'Google©', 'bool' => false, 'goals' => array('idgoal=1' => array('revenue' => 5.5, 'nb_conversions' => 10)), 'nb_uniq_visitors' => 11, 'nb_visits' => 11, 'nb_actions' => 17, 'max_actions' => '5', 'sum_visit_length' => 517, 'bounce_count' => 9),
Row::METADATA => array('url' => 'http://www.google.com/display"and,properly', 'logo' => './plugins/Referers/images/searchEngines/www.google.com.png'),
),
array(Row::COLUMNS => array('label' => 'Yahoo!', 'nb_uniq_visitors' => 15, 'bool' => true, 'nb_visits' => 151, 'nb_actions' => 147, 'max_actions' => '50', 'sum_visit_length' => 517, 'bounce_count' => 90),
Row::METADATA => array('url' => 'http://www.yahoo.com', 'logo' => './plugins/Referers/images/searchEngines/www.yahoo.com.png'),
Row::DATATABLE_ASSOCIATED => $subDataTableForRow2,
)
);
$dataTable->addRowsFromArray($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 Simple;
$table->addRowsFromArray($array);
return $table;
}
protected function _getDataTableSimpleOneRowTest()
{
$array = array('nb_visits' => 14.0);
$table = new Simple;
$table->addRowsFromArray($array);
return $table;
}
protected function _getDataTableEmpty()
{
$table = new DataTable;
return $table;
}
protected function _getDataTableSimpleOneZeroRowTest()
{
$array = array('nb_visits' => 0);
$table = new Simple;
$table->addRowsFromArray($array);
return $table;
}
protected function _getDataTableSimpleOneFalseRowTest()
{
$array = array('is_excluded' => false);
$table = new Simple;
$table->addRowsFromArray($array);
return $table;
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest1()
{
$dataTable = $this->_getDataTableTest();
$render = new Xml();
$render->setTable($dataTable);
$render->setRenderSubTables(true);
$expected = '
0
5.5
10
11
11
17
5
517
9
http://www.google.com/display"and,properly
./plugins/Referers/images/searchEngines/www.google.com.png
15
1
151
147
50
517
90
http://www.yahoo.com
./plugins/Referers/images/searchEngines/www.yahoo.com.png
2
1
0
2
1
';
$rendered = $render->render();
$this->assertEquals($expected, $rendered);
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest2()
{
$dataTable = $this->_getDataTableSimpleTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14
57
66
151
5118
44
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest3()
{
$dataTable = $this->_getDataTableSimpleOneRowTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest4()
{
$dataTable = $this->_getDataTableEmpty();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest5()
{
$dataTable = $this->_getDataTableSimpleOneZeroRowTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
0';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLTest6()
{
$dataTable = $this->_getDataTableSimpleOneFalseRowTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
0';
$this->assertEquals($expected, $render->render());
}
/**
* DATA OF DATATABLE_ARRAY
* -------------------------
*/
protected function _getDataTableArrayTest()
{
$array1 = array(
array(Row::COLUMNS => array('label' => 'Google', 'nb_uniq_visitors' => 11, 'nb_visits' => 11,),
Row::METADATA => array('url' => 'http://www.google.com', 'logo' => './plugins/Referers/images/searchEngines/www.google.com.png'),
),
array(Row::COLUMNS => array('label' => 'Yahoo!', 'nb_uniq_visitors' => 15, 'nb_visits' => 151,),
Row::METADATA => array('url' => 'http://www.yahoo.com', 'logo' => './plugins/Referers/images/searchEngines/www.yahoo.com.png'),
)
);
$table1 = new DataTable();
$table1->addRowsFromArray($array1);
$array2 = array(
array(Row::COLUMNS => array('label' => 'Google1©', 'nb_uniq_visitors' => 110, 'nb_visits' => 110,),
Row::METADATA => array('url' => 'http://www.google.com1', 'logo' => './plugins/Referers/images/searchEngines/www.google.com.png1'),
),
array(Row::COLUMNS => array('label' => 'Yahoo!1', 'nb_uniq_visitors' => 150, 'nb_visits' => 1510,),
Row::METADATA => array('url' => 'http://www.yahoo.com1', 'logo' => './plugins/Referers/images/searchEngines/www.yahoo.com.png1'),
)
);
$table2 = new DataTable();
$table2->addRowsFromArray($array2);
$table3 = new DataTable();
$table = new DataTable\Map();
$table->setKeyName('testKey');
$table->addTable($table1, 'date1');
$table->addTable($table2, 'date2');
$table->addTable($table3, 'date3');
return $table;
}
protected function _getDataTableSimpleArrayTest()
{
$array1 = array('max_actions' => 14.0, 'nb_uniq_visitors' => 57.0,);
$table1 = new Simple;
$table1->addRowsFromArray($array1);
$array2 = array('max_actions' => 140.0, 'nb_uniq_visitors' => 570.0,);
$table2 = new Simple;
$table2->addRowsFromArray($array2);
$table3 = new Simple;
$table = new DataTable\Map();
$table->setKeyName('testKey');
$table->addTable($table1, 'row1');
$table->addTable($table2, 'row2');
$table->addTable($table3, 'row3');
return $table;
}
protected function _getDataTableSimpleOneRowArrayTest()
{
$array1 = array('nb_visits' => 14.0);
$table1 = new Simple;
$table1->addRowsFromArray($array1);
$array2 = array('nb_visits' => 15.0);
$table2 = new Simple;
$table2->addRowsFromArray($array2);
$table3 = new Simple;
$table = new DataTable\Map();
$table->setKeyName('testKey');
$table->addTable($table1, 'row1');
$table->addTable($table2, 'row2');
$table->addTable($table3, 'row3');
return $table;
}
protected function _getDataTableArray_containsDataTableArray_normal()
{
$table = new DataTable\Map();
$table->setKeyName('parentArrayKey');
$table->addTable($this->_getDataTableArrayTest(), 'idSite');
return $table;
}
protected function _getDataTableArray_containsDataTableArray_simple()
{
$table = new DataTable\Map();
$table->setKeyName('parentArrayKey');
$table->addTable($this->_getDataTableSimpleArrayTest(), 'idSite');
return $table;
}
protected function _getDataTableArray_containsDataTableArray_simpleOneRow()
{
$table = new DataTable\Map();
$table->setKeyName('parentArrayKey');
$table->addTable($this->_getDataTableSimpleOneRowArrayTest(), 'idSite');
return $table;
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayTest1()
{
$dataTable = $this->_getDataTableArrayTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
11
11
http://www.google.com
./plugins/Referers/images/searchEngines/www.google.com.png
15
151
http://www.yahoo.com
./plugins/Referers/images/searchEngines/www.yahoo.com.png
110
110
http://www.google.com1
./plugins/Referers/images/searchEngines/www.google.com.png1
150
1510
http://www.yahoo.com1
./plugins/Referers/images/searchEngines/www.yahoo.com.png1
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayIsMadeOfArrayTest1()
{
$dataTable = $this->_getDataTableArray_containsDataTableArray_normal();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
11
11
http://www.google.com
./plugins/Referers/images/searchEngines/www.google.com.png
15
151
http://www.yahoo.com
./plugins/Referers/images/searchEngines/www.yahoo.com.png
110
110
http://www.google.com1
./plugins/Referers/images/searchEngines/www.google.com.png1
150
1510
http://www.yahoo.com1
./plugins/Referers/images/searchEngines/www.yahoo.com.png1
';
$rendered = $render->render();
$this->assertEquals($expected, $rendered);
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayTest2()
{
$dataTable = $this->_getDataTableSimpleArrayTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14
57
140
570
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayIsMadeOfArrayTest2()
{
$dataTable = $this->_getDataTableArray_containsDataTableArray_simple();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14
57
140
570
';
$rendered = $render->render();
$this->assertEquals($expected, $rendered);
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayTest3()
{
$dataTable = $this->_getDataTableSimpleOneRowArrayTest();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14
15
';
$rendered = $render->render();
$this->assertEquals($expected, $rendered);
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testXMLArrayIsMadeOfArrayTest3()
{
$dataTable = $this->_getDataTableArray_containsDataTableArray_simpleOneRow();
$render = new Xml();
$render->setTable($dataTable);
$expected = '
14
15
';
$rendered = $render->render();
$this->assertEquals($expected, $rendered);
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testRenderArray1()
{
$data = array();
$render = new Xml();
$render->setTable($data);
$expected = '
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testRenderArray2()
{
$data = array("firstElement",
array("firstElement",
"secondElement"),
"thirdElement");
$render = new Xml();
$render->setTable($data);
$expected = '
firstElement
firstElement
secondElement
thirdElement
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testRenderArray3()
{
$data = array('a' => 'b', 'c' => 'd', 'e' => 'f', 5 => 'g');
$render = new Xml();
$render->setTable($data);
$expected = '
b
d
f
g
';
$this->assertEquals($expected, $render->render());
}
/**
* @group Core
* @group DataTable
* @group DataTable_Renderer
* @group DataTable_Renderer_XML
*/
public function testRenderArray4()
{
$data = array('c' => array(1, 2, 3, 4), 'e' => array('f' => 'g', 'h' => 'i', 'j' => 'k'));
$render = new Xml();
$render->setTable($data);
$expected = '
1
2
3
4
g
i
k
';
$this->assertEquals($expected, $render->render());
}
}