Router update for Settings and Setup + unit tests

This commit is contained in:
Jonathan Labreuille
2016-01-29 18:46:12 +01:00
parent b577d33414
commit d4623cf763
4 changed files with 77 additions and 5 deletions

View File

@ -10,17 +10,17 @@ class Settings {
function get() { function get() {
$settings = Setting::getAll(); $settings = Setting::getAll();
wp_send_json($settings); return $settings;
} }
function set($settings = array()) { function set($settings = array()) {
if(empty($settings)) { if(empty($settings)) {
wp_send_json(false); return false;
} else { } else {
foreach($settings as $name => $value) { foreach($settings as $name => $value) {
Setting::setValue($name, $value); Setting::setValue($name, $value);
} }
wp_send_json(true); return true;
} }
} }
} }

View File

@ -17,8 +17,8 @@ class Setup {
} catch(Exception $e) { } catch(Exception $e) {
$result = false; $result = false;
} }
wp_send_json(array( return array(
'result' => $result 'result' => $result
)); );
} }
} }

View File

@ -0,0 +1,50 @@
<?php
use \MailPoet\Router\Settings;
use \MailPoet\Models\Setting;
class SettingsCest {
function _before() {
Setting::setValue('some.setting.key', true);
}
function itCanGetSettings() {
$router = new Settings();
$settings = $router->get();
expect($settings)->notEmpty();
expect($settings['some']['setting']['key'])->true();
Setting::deleteMany();
$settings = $router->get();
expect($settings)->isEmpty();
}
function itCanSetSettings() {
$new_settings = array(
'some' => array(
'setting' => array(
'new_key' => true
),
'new_setting' => true
)
);
$router = new Settings();
$response = $router->set(/* missing data */);
expect($response)->false();
$response = $router->set($new_settings);
expect($response)->true();
$settings = $router->get();
expect($settings['some']['setting'])->hasntKey('key');
expect($settings['some']['setting']['new_key'])->true();
expect($settings['some']['new_setting'])->true();
}
function _after() {
ORM::forTable(Setting::$_table)->deleteMany();
}
}

View File

@ -0,0 +1,22 @@
<?php
use \MailPoet\Router\Setup;
use \MailPoet\Models\Setting;
class SetupCest {
function _before() {
Setting::setValue('signup_confirmation.enabled', false);
}
function itCanReinstall() {
$router = new Setup();
$response = $router->reset();
expect($response['result'])->true();
$signup_confirmation = Setting::getValue('signup_confirmation.enabled');
expect($signup_confirmation)->true();
}
function _after() {
ORM::forTable(Setting::$_table)->deleteMany();
}
}