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..97c6f29 --- /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(); + } + + /** + * Tests user block and unblock actions. + */ + function testUserBlockUnBlockActions() { + $blocked_user = $this->drupalCreateUser(); + + // Block a user + user_block_user_action($blocked_user); + $this->assertWatchdogMessage('Blocked user %name.', array('%name' => $blocked_user->name), t('Found watchdog message')); + $this->clearWatchdog(); + + // Unblock a user + user_unblock_user_action($blocked_user); + $this->assertWatchdogMessage('Unblocked user %name.', array('%name' => $blocked_user->name), t('Found watchdog message')); + $this->clearWatchdog(); + } + + /** + * 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(); + } + +} + +