Fix unit tests

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
This commit is contained in:
Kamil Tekiela 2025-11-21 21:03:11 +00:00
parent 78dc2d1252
commit d40c190742
3 changed files with 35 additions and 45 deletions

View File

@ -297,27 +297,27 @@ class ExportCsv extends ExportPlugin
);
$this->terminated = $this->setStringValue(
$request->getParsedBodyParam('csv_terminated'),
$exportConfig['csv_terminated'] ?? null,
$exportConfig['csv_terminated'] ?? $this->terminated,
);
$this->separator = $this->setStringValue(
$request->getParsedBodyParam('csv_separator'),
$exportConfig['csv_separator'] ?? null,
$exportConfig['csv_separator'] ?? $this->separator,
);
$this->columns = (bool) ($request->getParsedBodyParam('csv_columns')
?? $exportConfig['csv_columns'] ?? false);
$this->enclosed = $this->setStringValue(
$request->getParsedBodyParam('csv_enclosed'),
$exportConfig['csv_enclosed'] ?? null,
$exportConfig['csv_enclosed'] ?? $this->enclosed,
);
$this->escaped = $this->setStringValue(
$request->getParsedBodyParam('csv_escaped'),
$exportConfig['csv_escaped'] ?? null,
$exportConfig['csv_escaped'] ?? $this->escaped,
);
$this->removeCrLf = (bool) ($request->getParsedBodyParam('csv_removeCRLF')
?? $exportConfig['csv_removeCRLF'] ?? false);
$this->null = $this->setStringValue(
$request->getParsedBodyParam('csv_null'),
$exportConfig['csv_null'] ?? null,
$exportConfig['csv_null'] ?? $this->null,
);
}

View File

@ -281,17 +281,19 @@ class ExportCsvTest extends AbstractTestCase
->withParsedBody(['csv_terminated' => ';', 'csv_columns' => 'On']);
$this->object->setExportOptions($request, []);
$this->object->exportHeader();
ob_start();
self::assertTrue($this->object->exportData(
'test_db',
'test_table',
'SELECT * FROM `test_db`.`test_table`;',
'SELECT * FROM `test_db`.`test_table_csv_export`;',
));
$result = ob_get_clean();
self::assertSame(
'idnamedatetimefield;1abcd2011-01-20 02:00:02;2foo2010-01-20 02:00:02;3Abcd2012-01-20 02:00:02;',
'id,name,datetimefield;1,"ab""cd",2011-01-20 02:00:02;2,"foo;",2010-01-20 02:00:02;3,'
. "\n" . 'Abcd,2012-01-20 02:00:02;',
$result,
);
@ -300,63 +302,42 @@ class ExportCsvTest extends AbstractTestCase
->withParsedBody(['csv_enclosed' => '"', 'csv_terminated' => ';', 'csv_columns' => 'On']);
$this->object->setExportOptions($request, []);
$this->object->exportHeader();
ob_start();
self::assertTrue($this->object->exportData(
'test_db',
'test_table',
'SELECT * FROM `test_db`.`test_table`;',
'test_table_csv_export',
'SELECT * FROM `test_db`.`test_table_csv_export`;',
));
$result = ob_get_clean();
self::assertSame(
'"id""name""datetimefield";"1""abcd""2011-01-20 02:00:02";'
. '"2""foo""2010-01-20 02:00:02";"3""Abcd""2012-01-20 02:00:02";',
'id,name,datetimefield;1,"ab""cd",2011-01-20 02:00:02;2,"foo;",2010-01-20 02:00:02;3,'
. "\n" . 'Abcd,2012-01-20 02:00:02;',
$result,
);
// case 4
$request = ServerRequestFactory::create()->createServerRequest('POST', 'https://example.com/')
->withParsedBody(['csv_enclosed' => '|', 'csv_terminated' => "\n", 'csv_escaped' => '\\', 'csv_columns' => 'On']);
$this->object->setExportOptions($request, []);
$this->object->exportHeader();
ob_start();
self::assertTrue($this->object->exportData(
'test_db',
'test_table',
'SELECT * FROM `test_db`.`test_table`;',
'test_table_csv_export',
'SELECT * FROM `test_db`.`test_table_csv_export`;',
));
$result = ob_get_clean();
self::assertSame(
'"id""name""datetimefield";"1""abcd""2011-01-20 02:00:02";'
. '"2""foo""2010-01-20 02:00:02";"3""Abcd""2012-01-20 02:00:02";',
$result,
);
// case 5
ob_start();
self::assertTrue($this->object->exportData(
'test_db',
'test_table',
'SELECT * FROM `test_db`.`test_table`;',
));
$result = ob_get_clean();
self::assertSame(
'"id""name""datetimefield";"1""abcd""2011-01-20 02:00:02";'
. '"2""foo""2010-01-20 02:00:02";"3""Abcd""2012-01-20 02:00:02";',
$result,
);
// case 6
ob_start();
self::assertTrue($this->object->exportData(
'test_db',
'test_table',
'SELECT * FROM `test_db`.`test_table`;',
));
$result = ob_get_clean();
self::assertSame(
'"id""name""datetimefield";"1""abcd""2011-01-20 02:00:02";'
. '"2""foo""2010-01-20 02:00:02";"3""Abcd""2012-01-20 02:00:02";',
'id,name,datetimefield' . "\n"
. '1,ab"cd,2011-01-20 02:00:02' . "\n"
. '2,foo;,2010-01-20 02:00:02' . "\n"
. '3,|' . "\n" . 'Abcd|,2012-01-20 02:00:02' . "\n",
$result,
);
}

View File

@ -1739,6 +1739,15 @@ class DbiDummy implements DbiExtension
['3', 'Abcd', '2012-01-20 02:00:02'],
],
],
[
'query' => 'SELECT * FROM `test_db`.`test_table_csv_export`;',
'columns' => ['id', 'name', 'datetimefield'],
'result' => [
['1', 'ab"cd', '2011-01-20 02:00:02'],
['2', 'foo;', '2010-01-20 02:00:02'],
['3', "\nAbcd", '2012-01-20 02:00:02'],
],
],
[
'query' => 'SELECT * FROM `test_db`.`test_table_complex`;',
'columns' => ['f1', 'f2', 'f3', 'f4'],