Skip to content

Commit e1dc022

Browse files
committed
Add basic test for Table\Structure\SaveController
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
1 parent c3acdee commit e1dc022

1 file changed

Lines changed: 73 additions & 2 deletions

File tree

‎test/classes/Controllers/Table/Structure/SaveControllerTest.php‎

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use PhpMyAdmin\Controllers\Table\StructureController;
1010
use PhpMyAdmin\Template;
1111
use PhpMyAdmin\Tests\AbstractTestCase;
12-
use PhpMyAdmin\Tests\Stubs\ResponseRenderer as ResponseStub;
12+
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
1313
use PhpMyAdmin\Transformations;
1414
use ReflectionClass;
1515

@@ -19,6 +19,77 @@
1919
class SaveControllerTest extends AbstractTestCase
2020
{
2121
public function testSaveController(): void
22+
{
23+
$_POST = [
24+
'db' => 'test_db',
25+
'table' => 'test_table',
26+
'orig_num_fields' => '1',
27+
'orig_field_where' => '',
28+
'orig_after_field' => '',
29+
'selected' => ['name'],
30+
'field_orig' => ['name'],
31+
'field_type_orig' => ['VARCHAR'],
32+
'field_length_orig' => ['20'],
33+
'field_default_value_orig' => [''],
34+
'field_default_type_orig' => ['NONE'],
35+
'field_collation_orig' => ['utf8mb4_general_ci'],
36+
'field_attribute_orig' => [''],
37+
'field_null_orig' => ['NO'],
38+
'field_extra_orig' => [''],
39+
'field_comments_orig' => [''],
40+
'field_virtuality_orig' => [''],
41+
'field_expression_orig' => [''],
42+
'primary_indexes' => '[]',
43+
'unique_indexes' => '[]',
44+
'indexes' => '[]',
45+
'fulltext_indexes' => '[]',
46+
'spatial_indexes' => '[]',
47+
'field_name' => ['new_name'],
48+
'field_type' => ['VARCHAR'],
49+
'field_length' => ['21'],
50+
'field_default_type' => ['NONE'],
51+
'field_default_value' => [''],
52+
'field_collation' => ['utf8mb4_general_ci'],
53+
'field_attribute' => [''],
54+
'field_adjust_privileges' => ['NULL'],
55+
'field_comments' => [''],
56+
'field_virtuality' => [''],
57+
'field_expression' => [''],
58+
'field_move_to' => [''],
59+
'field_mimetype' => [''],
60+
'field_transformation' => [''],
61+
'field_transformation_options' => [''],
62+
'field_input_transformation' => [''],
63+
'field_input_transformation_options' => [''],
64+
'do_save_data' => 'Save',
65+
];
66+
67+
$GLOBALS['db'] = 'test_db';
68+
$GLOBALS['table'] = 'test_table';
69+
70+
$this->dummyDbi->addSelectDb('test_db');
71+
$this->dummyDbi->addResult(
72+
'ALTER TABLE `test_table` CHANGE `name` `new_name` VARCHAR(21)'
73+
. ' CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;',
74+
[]
75+
);
76+
77+
$mock = $this->createMock(StructureController::class);
78+
$mock->expects($this->once())->method('__invoke');
79+
80+
(new SaveController(
81+
new ResponseRenderer(),
82+
new Template(),
83+
new Relation($this->dbi),
84+
new Transformations(),
85+
$this->dbi,
86+
$mock
87+
))();
88+
89+
$this->assertArrayNotHasKey('selected', $_POST);
90+
}
91+
92+
public function testAdjustColumnPrivileges(): void
2293
{
2394
$GLOBALS['server'] = 1;
2495
$GLOBALS['text_dir'] = 'ltr';
@@ -31,7 +102,7 @@ public function testSaveController(): void
31102
$method->setAccessible(true);
32103

33104
$ctrl = new SaveController(
34-
new ResponseStub(),
105+
new ResponseRenderer(),
35106
new Template(),
36107
new Relation($this->dbi),
37108
new Transformations(),

0 commit comments

Comments
 (0)