Passed
Push — master ( 02927c...129236 )
by Maurício
21:52 queued 10:36
created

ImportFormTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 123
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 96
c 1
b 0
f 0
dl 0
loc 123
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testRegisteredForms() 0 80 1
A testGetFields() 0 34 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpMyAdmin\Tests\Config\Forms\User;
6
7
use PhpMyAdmin\Config\ConfigFile;
8
use PhpMyAdmin\Config\Form;
9
use PhpMyAdmin\Config\FormDisplay;
10
use PhpMyAdmin\Config\Forms\BaseForm;
11
use PhpMyAdmin\Config\Forms\User\ImportForm;
12
use PhpMyAdmin\Tests\AbstractTestCase;
13
use PHPUnit\Framework\Attributes\CoversClass;
0 ignored issues
show
Bug introduced by
The type PHPUnit\Framework\Attributes\CoversClass was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
15
#[CoversClass(ImportForm::class)]
16
#[CoversClass(BaseForm::class)]
17
#[CoversClass(FormDisplay::class)]
18
#[CoversClass(Form::class)]
19
final class ImportFormTest extends AbstractTestCase
20
{
21
    public function testRegisteredForms(): void
22
    {
23
        Form::resetGroupCounter();
24
25
        $importForm = new ImportForm(new ConfigFile([]), 1);
26
        self::assertSame('Import', ImportForm::getName());
27
28
        $forms = $importForm->getRegisteredForms();
29
        self::assertCount(4, $forms);
30
31
        self::assertArrayHasKey('Import_defaults', $forms);
0 ignored issues
show
Bug introduced by
It seems like $forms can also be of type Countable; however, parameter $array of PHPUnit\Framework\Assert::assertArrayHasKey() does only seem to accept ArrayAccess|array, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

31
        self::assertArrayHasKey('Import_defaults', /** @scrutinizer ignore-type */ $forms);
Loading history...
32
        $form = $forms['Import_defaults'];
33
        self::assertSame('Import_defaults', $form->name);
34
        self::assertSame(1, $form->index);
35
        self::assertSame([], $form->default);
36
        self::assertSame(
37
            [
38
                'format' => 'Import/format',
39
                'charset' => 'Import/charset',
40
                'allow_interrupt' => 'Import/allow_interrupt',
41
                'skip_queries' => 'Import/skip_queries',
42
                'enable_drag_drop_import' => 'enable_drag_drop_import',
43
            ],
44
            $form->fields,
45
        );
46
47
        self::assertArrayHasKey('Sql', $forms);
48
        $form = $forms['Sql'];
49
        self::assertSame('Sql', $form->name);
50
        self::assertSame(1, $form->index);
51
        self::assertSame([], $form->default);
52
        self::assertSame(
53
            [
54
                'sql_compatibility' => 'Import/sql_compatibility',
55
                'sql_no_auto_value_on_zero' => 'Import/sql_no_auto_value_on_zero',
56
                'sql_read_as_multibytes' => 'Import/sql_read_as_multibytes',
57
            ],
58
            $form->fields,
59
        );
60
61
        self::assertArrayHasKey('Csv', $forms);
62
        $form = $forms['Csv'];
63
        self::assertSame('Csv', $form->name);
64
        self::assertSame(1, $form->index);
65
        self::assertSame([], $form->default);
66
        self::assertSame(
67
            [
68
                ':group:CSV' => ':group:CSV',
69
                'csv_replace' => 'Import/csv_replace',
70
                'csv_ignore' => 'Import/csv_ignore',
71
                'csv_terminated' => 'Import/csv_terminated',
72
                'csv_enclosed' => 'Import/csv_enclosed',
73
                'csv_escaped' => 'Import/csv_escaped',
74
                'csv_col_names' => 'Import/csv_col_names',
75
                ':group:end:0' => ':group:end:0',
76
                ':group:CSV using LOAD DATA' => ':group:CSV using LOAD DATA',
77
                'ldi_replace' => 'Import/ldi_replace',
78
                'ldi_ignore' => 'Import/ldi_ignore',
79
                'ldi_terminated' => 'Import/ldi_terminated',
80
                'ldi_enclosed' => 'Import/ldi_enclosed',
81
                'ldi_escaped' => 'Import/ldi_escaped',
82
                'ldi_local_option' => 'Import/ldi_local_option',
83
            ],
84
            $form->fields,
85
        );
86
87
        self::assertArrayHasKey('Open_Document', $forms);
88
        $form = $forms['Open_Document'];
89
        self::assertSame('Open_Document', $form->name);
90
        self::assertSame(1, $form->index);
91
        self::assertSame([], $form->default);
92
        self::assertSame(
93
            [
94
                ':group:OpenDocument Spreadsheet' => ':group:OpenDocument Spreadsheet',
95
                'ods_col_names' => 'Import/ods_col_names',
96
                'ods_empty_rows' => 'Import/ods_empty_rows',
97
                'ods_recognize_percentages' => 'Import/ods_recognize_percentages',
98
                'ods_recognize_currency' => 'Import/ods_recognize_currency',
99
            ],
100
            $form->fields,
101
        );
102
    }
103
104
    public function testGetFields(): void
105
    {
106
        self::assertSame(
107
            [
108
                'Import/format',
109
                'Import/charset',
110
                'Import/allow_interrupt',
111
                'Import/skip_queries',
112
                'enable_drag_drop_import',
113
                'Import/sql_compatibility',
114
                'Import/sql_no_auto_value_on_zero',
115
                'Import/sql_read_as_multibytes',
116
                ':group:CSV',
117
                'Import/csv_replace',
118
                'Import/csv_ignore',
119
                'Import/csv_terminated',
120
                'Import/csv_enclosed',
121
                'Import/csv_escaped',
122
                'Import/csv_col_names',
123
                ':group:end',
124
                ':group:CSV using LOAD DATA',
125
                'Import/ldi_replace',
126
                'Import/ldi_ignore',
127
                'Import/ldi_terminated',
128
                'Import/ldi_enclosed',
129
                'Import/ldi_escaped',
130
                'Import/ldi_local_option',
131
                ':group:OpenDocument Spreadsheet',
132
                'Import/ods_col_names',
133
                'Import/ods_empty_rows',
134
                'Import/ods_recognize_percentages',
135
                'Import/ods_recognize_currency',
136
            ],
137
            ImportForm::getFields(),
138
        );
139
    }
140
}
141