diff --git a/src/SemanticScuttle/Service/User.php b/src/SemanticScuttle/Service/User.php index 8b72274..73b71d6 100644 --- a/src/SemanticScuttle/Service/User.php +++ b/src/SemanticScuttle/Service/User.php @@ -368,13 +368,15 @@ class SemanticScuttle_Service_User extends SemanticScuttle_DbService return false; } - if ($row =& $this->db->sql_fetchrow($dbresult)) { + $row = $this->db->sql_fetchrow($dbresult); + $this->db->sql_freeresult($dbresult); + + if ($row) { $id = $_SESSION[$this->getSessionKey()] = $row[$this->getFieldName('primary')]; if ($remember) { $cookie = $id .':'. md5($username.$password); setcookie($this->cookiekey, $cookie, time() + $this->cookietime, '/'); } - $this->db->sql_freeresult($dbresult); return true; } else { return false; @@ -593,6 +595,21 @@ class SemanticScuttle_Service_User extends SemanticScuttle_DbService } + + /** + * Delete all bookmarks. + * Mainly used in unit tests. + * + * @return void + */ + public function deleteAll() + { + $query = 'TRUNCATE TABLE `'. $this->getTableName() .'`'; + $this->db->sql_query($query); + } + + + function sanitisePassword($password) { return sha1(trim($password)); } diff --git a/tests/UserTest.php b/tests/UserTest.php index 5c905a0..513011b 100644 --- a/tests/UserTest.php +++ b/tests/UserTest.php @@ -103,6 +103,21 @@ class UserTest extends TestBase $this->assertEquals($uid2, $user['uId']); } + + + /** + * Test login() function with invalid creditentials + * + * @return void + */ + public function testLoginInvalid() + { + $this->us->deleteAll(); + $this->assertFalse( + $this->us->login('doesnot', 'exist', false) + ); + } + }