mirror of
https://github.com/cosmocode/dokuwiki-plugin-struct.git
synced 2025-08-15 21:43:17 +00:00
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:
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
10
_test/mock/AccessTableGlobal.php
Normal file
10
_test/mock/AccessTableGlobal.php
Normal 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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user