Skip to content
Extraits de code Groupes Projets
Valider a75caa7b rédigé par JulienMoumne's avatar JulienMoumne
Parcourir les fichiers

refs #3207 unit tests

git-svn-id: http://dev.piwik.org/svn/trunk@6654 59fd770c-687e-43c8-a1e3-f5a4ff64c105
parent d7225365
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
* @version $Id$
*/
class DataTable_Filter_TruncateTest extends PHPUnit_Framework_TestCase
{
/**
* @group Core
* @group DataTable
* @group DataTable_Filter
* @group DataTable_Filter_Truncate
*/
public function testUnrelatedDataTableNotFiltered()
{
// remark: this unit test would become invalid and would need to be rewritten if
// AddSummaryRow filter stops calling getRowsCount() on the DataTable being filtered.
$mockedDataTable = $this->getMock('Piwik_DataTable', array('getRowsCount'));
$mockedDataTable->expects($this->never())->method('getRowsCount');
$dataTableBeingFiltered = new Piwik_DataTable();
$rowBeingFiltered = new Piwik_DataTable_Row();
$dataTableBeingFiltered->addRow($rowBeingFiltered);
// we simulate the fact that the value of Piwik_DataTable_Row::DATATABLE_ASSOCIATED retrieved
// from the database is in conflict with one of the Piwik_DataTable_Manager managed table identifiers.
// This is a rare but legitimate case as identifiers are not thoroughly synchronized
// when the expanded parameter is false.
$rowBeingFiltered->c[Piwik_DataTable_Row::DATATABLE_ASSOCIATED] = $mockedDataTable->getId();
$filter = new Piwik_DataTable_Filter_Truncate($dataTableBeingFiltered, 1);
$filter->filter($dataTableBeingFiltered);
}
/**
*
* @group Core
* @group DataTable
* @group DataTable_Filter
* @group DataTable_Filter_Truncate
*/
public function testForInfiniteRecursion()
{
$dataTableBeingFiltered = new Piwik_DataTable();
// remark: this unit test would become invalid and would need to be rewritten if
// Truncate filter stops calling getIdSubDataTable() on rows associated with a SubDataTable
$rowBeingFiltered = $this->getMock('Piwik_DataTable_Row', array('getIdSubDataTable'));
$rowBeingFiltered->expects($this->never())->method('getIdSubDataTable');
$dataTableBeingFiltered->addRow($rowBeingFiltered);
// we simulate a legitimate but rare circular reference between a Piwik_DataTable_Row and its
// enclosing Piwik_DataTable.
// This can happen because identifiers are not thoroughly synchronized when the expanded parameter
// is false.
$rowBeingFiltered->c[Piwik_DataTable_Row::DATATABLE_ASSOCIATED] = $dataTableBeingFiltered->getId();
$filter = new Piwik_DataTable_Filter_Truncate($dataTableBeingFiltered, 1);
$filter->filter($dataTableBeingFiltered);
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter