phpmyadmin/tests/unit/Config/Forms/User/ImportFormTest.php
William Desportes 2c03905eea
Merge #19802 - Fix #19381 - Implement csv empty to null
Pull-request: #19802
Fixes: #19381

Co-Authored-By: William Desportes <williamdes@wdes.fr>
Signed-off-by: William Desportes <williamdes@wdes.fr>
2026-04-09 16:59:10 +02:00

143 lines
5.2 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Config\Forms\User;
use PhpMyAdmin\Config\ConfigFile;
use PhpMyAdmin\Config\Form;
use PhpMyAdmin\Config\FormDisplay;
use PhpMyAdmin\Config\Forms\BaseForm;
use PhpMyAdmin\Config\Forms\User\ImportForm;
use PhpMyAdmin\Tests\AbstractTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
#[CoversClass(ImportForm::class)]
#[CoversClass(BaseForm::class)]
#[CoversClass(FormDisplay::class)]
#[CoversClass(Form::class)]
final class ImportFormTest extends AbstractTestCase
{
public function testRegisteredForms(): void
{
Form::resetGroupCounter();
$importForm = new ImportForm(new ConfigFile([]), 1);
self::assertSame('Import', ImportForm::getName());
$forms = $importForm->getRegisteredForms();
self::assertCount(4, $forms);
self::assertArrayHasKey('Import_defaults', $forms);
$form = $forms['Import_defaults'];
self::assertSame('Import_defaults', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
'format' => 'Import/format',
'charset' => 'Import/charset',
'allow_interrupt' => 'Import/allow_interrupt',
'skip_queries' => 'Import/skip_queries',
'enable_drag_drop_import' => 'enable_drag_drop_import',
],
$form->fields,
);
self::assertArrayHasKey('Sql', $forms);
$form = $forms['Sql'];
self::assertSame('Sql', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
'sql_compatibility' => 'Import/sql_compatibility',
'sql_no_auto_value_on_zero' => 'Import/sql_no_auto_value_on_zero',
'sql_read_as_multibytes' => 'Import/sql_read_as_multibytes',
],
$form->fields,
);
self::assertArrayHasKey('Csv', $forms);
$form = $forms['Csv'];
self::assertSame('Csv', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
':group:CSV' => ':group:CSV',
'csv_replace' => 'Import/csv_replace',
'csv_ignore' => 'Import/csv_ignore',
'csv_empty_as_null' => 'Import/csv_empty_as_null',
'csv_terminated' => 'Import/csv_terminated',
'csv_enclosed' => 'Import/csv_enclosed',
'csv_escaped' => 'Import/csv_escaped',
'csv_col_names' => 'Import/csv_col_names',
':group:end:0' => ':group:end:0',
':group:CSV using LOAD DATA' => ':group:CSV using LOAD DATA',
'ldi_replace' => 'Import/ldi_replace',
'ldi_ignore' => 'Import/ldi_ignore',
'ldi_terminated' => 'Import/ldi_terminated',
'ldi_enclosed' => 'Import/ldi_enclosed',
'ldi_escaped' => 'Import/ldi_escaped',
'ldi_local_option' => 'Import/ldi_local_option',
],
$form->fields,
);
self::assertArrayHasKey('Open_Document', $forms);
$form = $forms['Open_Document'];
self::assertSame('Open_Document', $form->name);
self::assertSame(1, $form->index);
self::assertSame([], $form->default);
self::assertSame(
[
':group:OpenDocument Spreadsheet' => ':group:OpenDocument Spreadsheet',
'ods_col_names' => 'Import/ods_col_names',
'ods_empty_rows' => 'Import/ods_empty_rows',
'ods_recognize_percentages' => 'Import/ods_recognize_percentages',
'ods_recognize_currency' => 'Import/ods_recognize_currency',
],
$form->fields,
);
}
public function testGetFields(): void
{
self::assertSame(
[
'Import/format',
'Import/charset',
'Import/allow_interrupt',
'Import/skip_queries',
'enable_drag_drop_import',
'Import/sql_compatibility',
'Import/sql_no_auto_value_on_zero',
'Import/sql_read_as_multibytes',
':group:CSV',
'Import/csv_replace',
'Import/csv_ignore',
'Import/csv_empty_as_null',
'Import/csv_terminated',
'Import/csv_enclosed',
'Import/csv_escaped',
'Import/csv_col_names',
':group:end',
':group:CSV using LOAD DATA',
'Import/ldi_replace',
'Import/ldi_ignore',
'Import/ldi_terminated',
'Import/ldi_enclosed',
'Import/ldi_escaped',
'Import/ldi_local_option',
':group:OpenDocument Spreadsheet',
'Import/ods_col_names',
'Import/ods_empty_rows',
'Import/ods_recognize_percentages',
'Import/ods_recognize_currency',
],
ImportForm::getFields(),
);
}
}