Test deleting all values when a multi field is updated inline

This test has a very limited scope: only the save method, and it will catch
very few errors in the inline editor. For that,
\action_plugin_struct_inline must be refactored into more manageable
public methods.
This commit is contained in:
Anna Dabrowska
2020-07-20 17:20:35 +02:00
parent 777be84f3a
commit 7b5b21b7f0
3 changed files with 82 additions and 1 deletions

View File

@ -60,6 +60,18 @@ class AccessTableDataDBMulti_struct_test extends StructTest {
),
789
);
// global data
$this->saveData(
'',
'testtable',
[
'testMulitColumn2' => ['value1.1b', 'value1.2b'],
'testMulitColumn' => ['value2.1b', 'value2.2b']
],
0,
1
);
}
public function test_getDataFromDB_currentRev() {
@ -78,4 +90,58 @@ class AccessTableDataDBMulti_struct_test extends StructTest {
$this->assertEquals($expected_data, $actual_data, '');
}
public function test_getDataFromDB_deleteMultiPage() {
$this->saveData(
'testpage',
'testtable',
[
'testMulitColumn2' => '',
'testMulitColumn' => ['value2.1a'],
]
);
$expected = [
[
'out1' => 'value1.1a' . Search::CONCAT_SEPARATOR . 'value1.2a',
'out2' => 'value2.1a' . Search::CONCAT_SEPARATOR . 'value2.2a',
'PID' => 'testpage',
],
];
$access = mock\AccessTable::getPageAccess('testtable', 'testpage');
$actual = $access->getDataFromDB();
$this->assertEquals($expected, $actual);
}
public function test_getDataFromDB_deleteMultiGlobal()
{
$this->saveData(
'',
'testtable',
[
'testMulitColumn2' => ['value1.1c', 'value1.2c'],
'testMulitColumn' => ['']
],
0,
1
);
$expected = [
[
'out1' => 'value1.1c' . Search::CONCAT_SEPARATOR . 'value1.2c',
'out2' => '',
'RID' => '1',
],
];
$access = mock\AccessTable::getGlobalAccess('testtable', 1);
$actual = $access->getDataFromDB();
$this->assertEquals($expected, $actual);
}
}

View File

@ -3,7 +3,6 @@
namespace dokuwiki\plugin\struct\test\mock;
use dokuwiki\plugin\struct\meta;
use dokuwiki\plugin\struct\meta\AccessTableGlobal;
use dokuwiki\plugin\struct\meta\Schema;
abstract class AccessTable extends meta\AccessTable {
@ -14,6 +13,12 @@ abstract class AccessTable extends meta\AccessTable {
return new AccessTablePage($schema, $pid, $ts, 0);
}
public static function getGlobalAccess($tablename, $rid = 0)
{
$schema = new Schema($tablename, 0);
return new AccessTableGlobal($schema, '', 0, $rid);
}
/**
* @param Schema $schema
* @param int|string $pid

View File

@ -0,0 +1,10 @@
<?php
namespace dokuwiki\plugin\struct\test\mock;
class AccessTableGlobal extends \dokuwiki\plugin\struct\meta\AccessTableGlobal {
public function getDataFromDB() {
return parent::getDataFromDB();
}
}