Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authordiosmosis <diosmosis@users.noreply.github.com>2018-09-07 02:44:23 +0300
committerGitHub <noreply@github.com>2018-09-07 02:44:23 +0300
commitf74db0ecaffbb67e41ff38a79a1a0813873933d7 (patch)
treeb9c50600dc74116e4e2bd17cc16d4233a708daed /tests
parentc9d4cfcb7b7fb7735058a8b265801e16406c4f69 (diff)
Make sure simple datatable metadata is serialized + some test case changes (#13296)
* Make DataTable metadata protected so it will be serialized in derived classes. * Allow SystemTestCase::runAnyApiTest to test any format and use a testSuffix. * Add test for metadata serialization & note about it in field docs.
Diffstat (limited to 'tests')
-rw-r--r--tests/PHPUnit/Framework/TestCase/SystemTestCase.php10
-rw-r--r--tests/PHPUnit/Unit/DataTable/SimpleTest.php52
2 files changed, 60 insertions, 2 deletions
diff --git a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
index af729554f2..be50d0ba07 100644
--- a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
+++ b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
@@ -297,12 +297,18 @@ abstract class SystemTestCase extends PHPUnit_Framework_TestCase
protected function runAnyApiTest($apiMethod, $apiId, $requestParams, $options = array())
{
$requestParams['module'] = 'API';
- $requestParams['format'] = 'XML';
+ if (empty($requestParams['format'])) {
+ $requestParams['format'] = 'XML';
+ }
$requestParams['method'] = $apiMethod;
- $apiId = $apiMethod . '_' . $apiId . '.xml';
+ $apiId = $apiMethod . '_' . $apiId . '.' . strtolower($requestParams['format']);
$testName = 'test_' . static::getOutputPrefix();
+ if (!empty($options['testSuffix'])) {
+ $testName .= '_' . $options['testSuffix'];
+ }
+
list($processedFilePath, $expectedFilePath) =
$this->getProcessedAndExpectedPaths($testName, $apiId, $format = null, $compareAgainst = false);
diff --git a/tests/PHPUnit/Unit/DataTable/SimpleTest.php b/tests/PHPUnit/Unit/DataTable/SimpleTest.php
new file mode 100644
index 0000000000..16a8f49a84
--- /dev/null
+++ b/tests/PHPUnit/Unit/DataTable/SimpleTest.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+namespace Piwik\Tests\Unit\DataTable;
+
+
+use Piwik\DataTable;
+use Piwik\DataTable\Row;
+use Piwik\DataTable\Simple;
+
+class SimpleTest extends \PHPUnit_Framework_TestCase
+{
+ public function test_serialize_includesAllRequiredData()
+ {
+ $dataTable = new Simple();
+ $dataTable->addRowFromSimpleArray([
+ 'column1' => 'value1',
+ 'column2' => 'value2',
+ ]);
+ $dataTable->addSummaryRow(new Row([
+ Row::COLUMNS => ['column1' => 'total1', 'column2' => 'total2']
+ ]));
+ $dataTable->setAllTableMetadata([
+ 'metadataKey1' => 10,
+ 'metadataKey2' => ['a', 'b', 'c'],
+ ]);
+
+ $serialized = serialize($dataTable);
+
+ /** @var Simple $unserialized */
+ $unserialized = unserialize($serialized);
+
+ $this->assertEquals(1, $unserialized->getRowsCountWithoutSummaryRow());
+ $this->assertEquals([
+ 'column1' => 'value1',
+ 'column2' => 'value2',
+ ], $unserialized->getRows()[0]->getColumns());
+
+ $this->assertEquals(2, $unserialized->getRowsCount());
+ $this->assertEquals(['column1' => 'total1', 'column2' => 'total2'], $unserialized->getRows()[DataTable::ID_SUMMARY_ROW]->getColumns());
+
+ $this->assertEquals([
+ 'metadataKey1' => 10,
+ 'metadataKey2' => ['a', 'b', 'c'],
+ ], $unserialized->getAllTableMetadata());
+ }
+} \ No newline at end of file