| 7 user.test | UserBlocksUnitTests::testWhosOnlineBlock() |
| 8 user.test | UserBlocksUnitTests::testWhosOnlineBlock() |
Test the Who's Online block.
File
- modules/
user/ user.test, line 1532 - Tests for user.module.
Code
function testWhosOnlineBlock() {
// Generate users and make sure there are no current user sessions.
$user1 = $this->drupalCreateUser(array());
$user2 = $this->drupalCreateUser(array());
$user3 = $this->drupalCreateUser(array());
$this->assertEqual(db_query("SELECT COUNT(*) FROM {sessions}")->fetchField(), 0, t('Sessions table is empty.'));
// Insert a user with two sessions.
$this->insertSession(array('uid' => $user1->uid));
$this->insertSession(array('uid' => $user1->uid));
$this->assertEqual(db_query("SELECT COUNT(*) FROM {sessions} WHERE uid = :uid", array(':uid' => $user1->uid))->fetchField(), 2, t('Duplicate user session has been inserted.'));
// Insert a user with only one session.
$this->insertSession(array('uid' => $user2->uid, 'timestamp' => REQUEST_TIME + 1));
// Insert an inactive logged-in user who should not be seen in the block.
$this->insertSession(array('uid' => $user3->uid, 'timestamp' => (REQUEST_TIME - variable_get('user_block_seconds_online', 900) - 1)));
// Insert two anonymous user sessions.
$this->insertSession();
$this->insertSession();
// Test block output.
$block = user_block_view('online');
$this->drupalSetContent($block['content']);
$this->assertRaw(t('2 users'), t('Correct number of online users (2 users).'));
$this->assertText($user1->name, t('Active user 1 found in online list.'));
$this->assertText($user2->name, t('Active user 2 found in online list.'));
$this->assertNoText($user3->name, t("Inactive user not found in online list."));
$this->assertTrue(strpos($this->drupalGetContent(), $user1->name) > strpos($this->drupalGetContent(), $user2->name), t('Online users are ordered correctly.'));
}
Login or register to post comments