Skip to content
Extraits de code Groupes Projets
Valider c81b75e3 rédigé par Stefan Giehl's avatar Stefan Giehl Validation de Matthieu Aubry
Parcourir les fichiers

Fix HTML renderer not able to handle metadata of a row (#11991)

parent 15efdb4e
Branches
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -117,6 +117,8 @@ class Html extends Renderer
foreach ($row->getMetadata() as $name => $value) {
if (is_string($value)) {
$value = "'$value'";
} else if (is_array($value)) {
$value = var_export($value, true);
}
$metadata[] = "'$name' => $value";
}
......
......@@ -9,7 +9,9 @@
namespace Piwik\Plugins\API\tests\Unit;
use Piwik\DataTable;
use Piwik\Date;
use Piwik\Plugins\API\Renderer\Html;
use Piwik\Plugins\CoreHome\Columns\Metrics\AverageTimeOnSite;
/**
* @group Plugin
......@@ -258,6 +260,52 @@ message', $response);
', $response);
}
public function test_renderDataTable_shouldRenderDataTableWithComplexMetadata()
{
$dataTable = new DataTable\Simple();
$row = new DataTable\Row();
$row->setColumn('nb_visits', 3);
$row->setColumn('nb_random', 6);
$row->setMetadata('processedRows', [
new AverageTimeOnSite(),
new \stdClass(),
Date::factory('2016-01-01 00:00:00')
]);
$dataTable->addRow($row);
$response = $this->builder->renderDataTable($dataTable);
$this->assertEquals('<table id="MultiSites_getAll" border="1">
<thead>
<tr>
<th>nb_visits</th>
<th>nb_random</th>
<th>_metadata</th>
</tr>
</thead>
<tbody>
<tr>
<td>3</td>
<td>6</td>
<td>\'processedRows\' =&gt; array (
0 =&gt;
Piwik\Plugins\CoreHome\Columns\Metrics\AverageTimeOnSite::__set_state(array(
)),
1 =&gt;
stdClass::__set_state(array(
)),
2 =&gt;
Piwik\Date::__set_state(array(
\'timestamp\' =&gt; 1451606400,
\'timezone\' =&gt; \'UTC\',
)),
)</td>
</tr>
</tbody>
</table>
', $response);
}
public function test_renderArray_ShouldConvertSimpleArrayToJson()
{
$input = array(1, 2, 5, 'string', 10);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter