add handle action test

This commit is contained in:
John Bintz 2009-06-28 21:53:23 -04:00
parent 05ce3cdb6c
commit eb14822995
2 changed files with 30 additions and 8 deletions

View File

@ -164,12 +164,11 @@ class PluginWonderful {
} }
function handle_action() { function handle_action() {
$action = "handle_action_" . str_replace("-", "_", preg_replace('#[^a-z\-]#', '', strtolower($_POST['action']))); if (!empty($_POST['_pw_nonce'])) {
if (method_exists($this, $action)) { call_user_func(array($this, $action)); } if (wp_verify_nonce($_POST['_pw_nonce'], 'plugin-wonderful')) {
$action = "handle_action_" . str_replace("-", "_", preg_replace('#[^a-z\-]#', '', strtolower($_POST['action'])));
// handle widget updates if (method_exists($this, $action)) { call_user_func(array($this, $action)); }
if (isset($_POST['pw']['_nonce'])) { }
if (wp_verify_nonce($_POST['pw']['_nonce'], "plugin-wonderful")) { $this->handle_action_save_widgets(); }
} }
} }

View File

@ -266,8 +266,31 @@ class PluginWonderfulTest extends PHPUnit_Framework_TestCase {
} }
} }
function testHandleAction() { function providerTestHandleAction() {
$this->markTestIncomplete(); return array(
array(false, false, false),
array(true, false, false),
array(true, true, true)
);
}
/**
* @dataProvider providerTestHandleAction
*/
function testHandleAction($has_nonce, $has_verify_nonce, $method_exists) {
if ($has_nonce) { $_POST['_pw_nonce'] = "12345"; }
_set_valid_nonce('plugin-wonderful', $has_verify_nonce ? '12345' : '54321');
$pw = $this->getMock('PluginWonderful', $method_exists ? array('handle_action_test') : array('handle_action_invalid'));
$_POST['action'] = 'test';
if ($method_exists) {
$pw->expects($this->once())->method('handle_action_test');
} else {
$pw->expects($this->never())->method('handle_action_invalid');
}
$pw->handle_action();
} }
function testHandleActionSaveWidgets() { function testHandleActionSaveWidgets() {