diff --git a/core/modules/user/lib/Drupal/user/Tests/UserActionsTest.php b/core/modules/user/lib/Drupal/user/Tests/UserActionsTest.php new file mode 100644 index 0000000..c2a3193 --- /dev/null +++ b/core/modules/user/lib/Drupal/user/Tests/UserActionsTest.php @@ -0,0 +1,69 @@ + 'User actions', + 'description' => 'Test actions provided by the user module.', + 'group' => 'User', + ); + } + + function setUp() { + parent::setUp('dblog'); + } + + /** + * Tests user block and unblock actions. + */ + function testUserBlockUnBlockActions() { + $unblocked_user = $this->drupalCreateUser(); + + $this->clearWatchdog(); + + // Block a user. + user_block_user_action($unblocked_user); + $this->assertWatchdogMessage('Blocked user %name.', array('%name' => $unblocked_user->name), t('Found watchdog message')); + + $this->clearWatchdog(); + $blocked_user = user_load($unblocked_user->uid); + + // Unblock a user. + user_unblock_user_action($blocked_user); + $this->assertWatchdogMessage('Unblocked user %name.', array('%name' => $blocked_user->name), t('Found watchdog message')); + } + + /** + * Verifies that a watchdog message has been entered. + * + * @param $watchdog_message + * The watchdog message. + * @param $variables + * The array of variables passed to watchdog(). + * @param $message + * The assertion message. + */ + function assertWatchdogMessage($watchdog_message, $variables, $message) { + $status = (bool) db_query_range("SELECT 1 FROM {watchdog} WHERE message = :message AND variables = :variables", 0, 1, array(':message' => $watchdog_message, ':variables' => serialize($variables)))->fetchField(); + return $this->assert($status, $message); + } + + /** + * Clears watchdog. + */ + function clearWatchdog() { + db_truncate('watchdog')->execute(); + } +} diff --git a/core/modules/user/user.module b/core/modules/user/user.module index bf36dc0..0526e8b 100644 --- a/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -3414,7 +3414,7 @@ function user_action_info() { 'triggers' => array('any'), ), 'user_unblock_user_action' => array( - 'label' => t('Unblock current user'), + 'label' => t('Unblock a user'), 'type' => 'user', 'configurable' => FALSE, 'triggers' => array('any'), @@ -3457,6 +3457,7 @@ function user_unblock_user_action(&$entity, $context = array()) { if (isset($entity->uid)) { $uid = $entity->uid; } + // Otherwise get user ID from the context. elseif (isset($context['uid'])) { $uid = $context['uid']; }