public function testScGetLastContents() { $room = 'njiSeDkea2'; $name = 'foo'; $idstr = '123'; $content = 'Hello <b>world</b>'; $dat_filename = sc_dat_filename($room); if (file_exists($dat_filename)) { unlink($dat_filename); } for ($i = 1; $i <= 20; $i++) { sc_add_content($room, $name, $idstr, $i); } $contents = sc_get_last_contents($room, 0); $this->assertEquals(21, sizeof($contents)); $this->assertEquals(1, $contents[0][1]); $this->assertEquals(20, $contents[0][2]); $chat = $contents[1]; $this->assertEquals($name, $chat[0]); $this->assertEquals($idstr, $chat[1]); $this->assertEquals("1", $chat[3]); $chat = $contents[sizeof($contents) - 1]; $this->assertEquals($name, $chat[0]); $this->assertEquals($idstr, $chat[1]); $this->assertEquals("20", $chat[3]); for ($i = 21; $i <= MAX_MSGS_LEN + 20; $i++) { sc_add_content($room, $name, $idstr, $i); } $contents = sc_get_last_contents($room, 0); $this->assertEquals(MAX_MSGS_LEN + 1, sizeof($contents)); $this->assertEquals(21, $contents[0][1]); $this->assertEquals(MAX_MSGS_LEN + 20, $contents[0][2]); $chat = $contents[1]; $this->assertEquals($name, $chat[0]); $this->assertEquals($idstr, $chat[1]); $this->assertEquals("21", $chat[3]); $chat = $contents[sizeof($contents) - 1]; $this->assertEquals($name, $chat[0]); $this->assertEquals($idstr, $chat[1]); $this->assertEquals("" . (MAX_MSGS_LEN + 20), $chat[3]); }
function sc_wipeout_content($room, $idstr) { $fp = fopen(sc_dat_filename($room), "w"); if (flock($fp, LOCK_EX)) { fwrite($fp, sc_dat_encode($room) . "\n"); $output = serialize(array('', $idstr, time(), sc_dat_encode("wiped out"))) . "\n"; fwrite($fp, $output); flock($fp, LOCK_UN); } fclose($fp); }