private function MongoDBLogTestCase::doUser in MongoDB 6
Same name and namespace in other branches
- 8 mongodb_watchdog/mongodb_watchdog.test \MongoDBLogTestCase::doUser()
- 7 mongodb_watchdog/mongodb_watchdog.test \MongoDBLogTestCase::doUser()
Generate and verify user events.
1 call to MongoDBLogTestCase::doUser()
- MongoDBLogTestCase::verifyEvents in mongodb_watchdog/
mongodb_watchdog.test - Verify events.
File
- mongodb_watchdog/
mongodb_watchdog.test, line 320 - Test class for MongoDB_watchdog.
Class
- MongoDBLogTestCase
- Test the behaviour of watchdog() mongodb_watchdog, not dblog.
Code
private function doUser() {
// Set user variables.
$name = $this
->randomName();
$pass = user_password();
// Add user using form to generate add user event, which is not triggered by
// drupalCreateUser().
$edit = array();
$edit['name'] = $name;
$edit['mail'] = $name . '@example.com';
$edit['pass[pass1]'] = $pass;
$edit['pass[pass2]'] = $pass;
$edit['status'] = 1;
$this
->drupalPost('admin/user/user/create', $edit, t('Create new account'));
$this
->assertResponse(200);
// Retrieve user object.
$user = user_load(array(
'name' => $name,
));
$this
->assertTrue($user != NULL, t('User @name was loaded', array(
'@name' => $name,
)));
// Needed by drupalLogin.
$user->pass_raw = $pass;
// Login user.
$this
->drupalLogin($user);
// Logout user.
$this
->drupalLogout();
// Fetch row ids in watchdog that relate to the user.
$collection = mongodb_collection(variable_get('mongodb_watchdog', 'watchdog'));
$query = array(
'uid' => $user->uid,
);
$result = $collection
->find($query, array(
'_id' => 1,
));
foreach ($result as $row) {
$ids[] = $row['_id'];
}
$count_before = isset($ids) ? count($ids) : 0;
$this
->assertTrue($count_before > 0, t('DBLog contains @count records for @name', array(
'@count' => $count_before,
'@name' => $user->name,
)));
// Login the admin user.
$this
->drupalLogin($this->bigUser);
// On D6, delete user. On D7, cancel it.
user_delete(array(), $user->uid);
// Count rows that have uids for the user.
$count = $collection
->find($query)
->count();
$this
->assertTrue($count == 0, t('DBLog contains @count records for @name', array(
'@count' => $count,
'@name' => $user->name,
)));
// Count rows in watchdog that previously related to the deleted user.
if (!empty($ids)) {
$query['_id']['$in'] = $ids;
}
$count_after = $collection
->find($query)
->count();
$this
->assertTrue($count_after == $count_before, t('DBLog contains @count records for @name that now have uid = 0', array(
'@count' => $count_before,
'@name' => $user->name,
)));
unset($ids);
// Fetch row ids in watchdog that relate to the user.
$result = $collection
->find($query, array(
'_id' => 1,
));
foreach ($result as $row) {
$ids[] = $row->wid;
}
$this
->assertTrue(!isset($ids), t('DBLog contains no records for @name', array(
'@name' => $user->name,
)));
// View the dblog report.
$this
->drupalGet('admin/reports/dblog');
$this
->assertResponse(200);
// Verify events were recorded.
// Add user. Default display includes name and email address; if too long,
// then email is replaced by three periods.
$this
->assertRaw(t('New user: %name (%mail)', array(
'%name' => $edit['name'],
'%mail' => $edit['mail'],
)), t('DBLog event was recorded: [add user]'));
$this
->assertRaw(t('New user: %name', array(
'%name' => $name,
)), t('DBLog event was recorded: [add user]'));
// Login user.
$this
->assertRaw(t('Session opened for %name', array(
'%name' => $name,
)), t('DBLog event was recorded: [login user]'));
// Logout user.
$this
->assertRaw(t('Session closed for %name', array(
'%name' => $name,
)), t('DBLog event was recorded: [logout user]'));
// Delete user.
$this
->assertRaw(t('Deleted user: %name', array(
'%name' => $name,
)), t('DBLog event was recorded: [delete user]'));
}