|
16 | 16 | class viewonline_test extends boardrules_functional_base |
17 | 17 | { |
18 | 18 | /** |
19 | | - * Visit rules page as user "admin" |
| 19 | + * Create a fresh admin session on the board rules page. |
20 | 20 | */ |
21 | | - public function test_viewonline_visit_rules() |
| 21 | + protected function visit_rules_as_admin() |
22 | 22 | { |
23 | | - // Send the admin to the Rules page |
| 23 | + $db = $this->get_db(); |
| 24 | + |
| 25 | + // XXX hardcoded user id |
| 26 | + $sql = 'DELETE FROM ' . SESSIONS_TABLE . ' WHERE session_user_id = 2'; |
| 27 | + $db->sql_query($sql); |
| 28 | + |
24 | 29 | $this->login(); |
25 | | - $crawler = self::request('GET', "app.php/rules?sid={$this->sid}"); |
| 30 | + $crawler = self::request('GET', "app.php/rules?sid=$this->sid"); |
26 | 31 | $this->assertContainsLang('BOARDRULES_HEADER', $crawler->filter('h2')->text()); |
27 | 32 | } |
28 | 33 |
|
29 | 34 | /** |
30 | 35 | * Test viewonline page for admin |
31 | | - * |
32 | | - * We use a second function here, so we get a new session and can login |
33 | | - * without having to log out "admin" first. |
34 | | - * |
35 | | - * @depends test_viewonline_visit_rules |
36 | 36 | */ |
37 | 37 | public function test_viewonline_check_viewonline() |
38 | 38 | { |
39 | | - // Create user1 and send them to the Viewonline |
40 | | - $this->create_user('user1'); |
41 | | - $this->login('user1'); |
42 | | - $crawler = self::request('GET', "viewonline.php?sid={$this->sid}"); |
| 39 | + $this->visit_rules_as_admin(); |
| 40 | + |
| 41 | + // Create a second user and check who is online from a separate session. |
| 42 | + self::$client->restart(); |
| 43 | + $this->create_user('boardrules-viewonline-user1'); |
| 44 | + $this->login('boardrules-viewonline-user1'); |
| 45 | + // PHP goes faster than DBMS, make sure session data got written to the database. |
| 46 | + sleep(1); |
| 47 | + $crawler = self::request('GET', "viewonline.php?sid=$this->sid"); |
43 | 48 |
|
44 | | - // Is admin still viewing Rules page |
| 49 | + // Is admin still viewing Rules page? |
45 | 50 | self::assertStringContainsString('admin', $crawler->filter('#page-body table.table1')->text()); |
46 | 51 |
|
47 | 52 | $session_entries = $crawler->filter('#page-body table.table1 tr')->count(); |
|
0 commit comments