more unit-testing, enhancements in Store-functions
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -115,7 +115,7 @@ class Store
|
|||||||
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||||
|
|
||||||
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'panel' && isset($fielddata['varname']) && $fielddata['varname'] == 'default_theme') {
|
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'panel' && isset($fielddata['varname']) && $fielddata['varname'] == 'default_theme') {
|
||||||
// now, if changing themes is disabled we recursivly set
|
// now, if changing themes is disabled we manually set
|
||||||
// the new theme (customers and admin, depending on settings)
|
// the new theme (customers and admin, depending on settings)
|
||||||
if (Settings::Get('panel.allow_theme_change_customer') == '0') {
|
if (Settings::Get('panel.allow_theme_change_customer') == '0') {
|
||||||
$upd_stmt = Database::prepare("
|
$upd_stmt = Database::prepare("
|
||||||
@@ -171,18 +171,14 @@ class Store
|
|||||||
|
|
||||||
public static function storeSettingFieldInsertBindTask($fieldname, $fielddata, $newfieldvalue)
|
public static function storeSettingFieldInsertBindTask($fieldname, $fielddata, $newfieldvalue)
|
||||||
{
|
{
|
||||||
if (is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] != '' && isset($fielddata['varname']) && $fielddata['varname'] != '') {
|
// first save the setting itself
|
||||||
if (Settings::Set($fielddata['settinggroup'] . '.' . $fielddata['varname'], $newfieldvalue) !== false) {
|
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||||
return array(
|
|
||||||
$fielddata['settinggroup'] . '.' . $fielddata['varname'] => $newfieldvalue
|
if ($returnvalue !== false) {
|
||||||
);
|
\Froxlor\System\Cronjob::inserttask('4');
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public static function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
|
public static function storeSettingHostname($fieldname, $fielddata, $newfieldvalue)
|
||||||
{
|
{
|
||||||
@@ -297,25 +293,9 @@ class Store
|
|||||||
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
$returnvalue = self::storeSettingField($fieldname, $fielddata, $newfieldvalue);
|
||||||
|
|
||||||
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'catchall' && isset($fielddata['varname']) && $fielddata['varname'] == 'catchall_enabled' && $newfieldvalue == '0') {
|
if ($returnvalue !== false && is_array($fielddata) && isset($fielddata['settinggroup']) && $fielddata['settinggroup'] == 'catchall' && isset($fielddata['varname']) && $fielddata['varname'] == 'catchall_enabled' && $newfieldvalue == '0') {
|
||||||
|
Database::query("
|
||||||
$result_stmt = Database::query("
|
UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `iscatchall` = '0' WHERE `iscatchall` = '1'
|
||||||
SELECT `id`, `email`, `email_full`, `iscatchall` FROM `" . TABLE_MAIL_VIRTUAL . "`
|
|
||||||
WHERE `iscatchall` = '1'
|
|
||||||
");
|
");
|
||||||
|
|
||||||
if (Database::num_rows() > 0) {
|
|
||||||
|
|
||||||
$upd_stmt = Database::prepare("
|
|
||||||
UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `email` = :email, `iscatchall` = '0' WHERE `id` = :id
|
|
||||||
");
|
|
||||||
|
|
||||||
while ($result_row = $result_stmt->fetch(\PDO::FETCH_ASSOC)) {
|
|
||||||
Database::pexecute($upd_stmt, array(
|
|
||||||
'email' => $result_row['email_full'],
|
|
||||||
'id' => $result_row['id']
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $returnvalue;
|
return $returnvalue;
|
||||||
|
|||||||
@@ -94,4 +94,61 @@ class StoreTest extends TestCase
|
|||||||
// we assume there are entries
|
// we assume there are entries
|
||||||
$this->assertTrue(count($current_result) > 0);
|
$this->assertTrue(count($current_result) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testStoreSettingDefaultTheme()
|
||||||
|
{
|
||||||
|
$current_theme = Settings::Get('panel.default_theme');
|
||||||
|
// allow theme changing for admins/customers so a new default won't overwrite
|
||||||
|
Settings::Set('panel.allow_theme_change_customer', 1);
|
||||||
|
Settings::Set('panel.allow_theme_change_admin', 1);
|
||||||
|
$fielddata = array(
|
||||||
|
'label' => 'panel_default_theme',
|
||||||
|
'settinggroup' => 'panel',
|
||||||
|
'varname' => 'default_theme'
|
||||||
|
);
|
||||||
|
Store::storeSettingDefaultTheme('panel_default_theme', $fielddata, "newTheme");
|
||||||
|
$this->assertTrue($current_theme != Settings::Get('panel.default_theme'));
|
||||||
|
$this->assertEquals("newTheme", Settings::Get('panel.default_theme'));
|
||||||
|
// validate admin/customer field did not change
|
||||||
|
$sel_stmt = Database::prepare("
|
||||||
|
SELECT * FROM `" . TABLE_PANEL_ADMINS . "`
|
||||||
|
WHERE `theme` = :newtheme
|
||||||
|
");
|
||||||
|
Database::pexecute($sel_stmt, array('newtheme' => "newTheme"));
|
||||||
|
$current_result = $sel_stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
// we assume there are entries
|
||||||
|
$this->assertTrue(count($current_result) == 0);
|
||||||
|
$sel_stmt = Database::prepare("
|
||||||
|
SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "`
|
||||||
|
WHERE `theme` = :newtheme
|
||||||
|
");
|
||||||
|
Database::pexecute($sel_stmt, array('newtheme' => "newTheme"));
|
||||||
|
$current_result = $sel_stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
// we assume there are entries
|
||||||
|
$this->assertTrue(count($current_result) == 0);
|
||||||
|
// now do not allow changing of themes so the theme should get updated for all admins/customers
|
||||||
|
// allow theme changing for admins/customers so a new default won't overwrite
|
||||||
|
Settings::Set('panel.allow_theme_change_customer', 0);
|
||||||
|
Settings::Set('panel.allow_theme_change_admin', 0);
|
||||||
|
Store::storeSettingDefaultTheme('panel_default_theme', $fielddata, "newTheme");
|
||||||
|
// validate admin/customer field did change
|
||||||
|
$sel_stmt = Database::prepare("
|
||||||
|
SELECT * FROM `" . TABLE_PANEL_ADMINS . "`
|
||||||
|
WHERE `theme` = :newtheme
|
||||||
|
");
|
||||||
|
Database::pexecute($sel_stmt, array('newtheme' => "newTheme"));
|
||||||
|
$current_result = $sel_stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
// we assume there are entries
|
||||||
|
$this->assertTrue(count($current_result) > 0);
|
||||||
|
$sel_stmt = Database::prepare("
|
||||||
|
SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "`
|
||||||
|
WHERE `theme` = :newtheme
|
||||||
|
");
|
||||||
|
Database::pexecute($sel_stmt, array('newtheme' => "newTheme"));
|
||||||
|
$current_result = $sel_stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
// we assume there are entries
|
||||||
|
$this->assertTrue(count($current_result) > 0);
|
||||||
|
// set back to default
|
||||||
|
Store::storeSettingDefaultTheme('panel_default_theme', $fielddata, $current_theme);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user