public function test() { $username = "******"; $password = "******"; $email = "*****@*****.**"; user::create_new_user($username, $password, $email); $this->assertEquals(1, user::getNumberOfUsers(), "number of users is not correct after adding a new user"); $r = user::getUserByUsername($username); $this->assertEquals($username, $r['username'], "username was not saved correctly"); $this->assertEquals($email, $r['email'], "email is not saved correctly"); $this->assertEquals(md5(md5($password) . md5($r['salt'])), $r['password'], "password not correct"); user::clear_table(); $this->assertEquals(0, user::getNumberOfUsers()); $this->assertFalse(user::doesUsernameExist($username), "doesUsernameExist() in user is broken"); user::create_new_user($username, $password, $email); $this->assertTrue(user::doesUsernameExist($username), "doesUsernameExist() in user is broken"); $this->assertFalse(user::doesEmailExist($email . "bla"), "doesEmailExist() in user is broken"); $this->assertTrue(user::doesEmailExist($email), "doesEmailExist() in user is broken"); $newPassword = "******"; user::resetPassword($username, $newPassword); $r = user::getUserByUsername($username); $this->assertEquals(md5(md5($newPassword) . md5($r['salt'])), $r['password'], "restting password is broken"); $newEmail = "*****@*****.**"; user::setEmail($username, $newEmail); $r = user::getUserByUsername($username); $this->assertEquals($newEmail, $r['email'], "setEmail is broken"); user::deleteUserByUsername($username); $this->assertFalse(user::doesUsernameExist($username), "deleteUserByUsername() in user is broken"); user::create_new_user($username, $password, $email); $this->assertTrue(user::isLogin($username, $password), "isLogin is broken"); $this->assertFalse(user::isLogin($username, $password . "d"), "isLogin is broken"); $this->assertFalse(user::isLogin($username . "d", $password), "isLogin is broken"); $user_info = user::getUserByUsername($username); $user_info2 = user::getUserById($user_info['id']); $this->assertEquals($user_info['username'], $user_info2['username'], "mismatched usernames when getting user by ID"); $gcm_id1 = "APA91bFpUo1z8PfiyCZG7HzThDyJ0MIg86BB1kj0A-ZGASK_iJ-RTu8pUB4t_5jMgwqkolWCahT4QOOAnp9nNdCox7pd9vlJao1-ncYHqvlS89lOpjdoci2_3XXGxcIWgrWwTz1tC8OlURokekQdbDCGKWuqfzfXLKrhisGxJYpF1ivuItZtJns"; $this->assertTrue(safe_input::is_valid_gcm_id($gcm_id1), "[is_valid_gcm_id()]"); //user::setGCM($user_id,$gcm_id) $this->assertTrue(user::setGCM($user_info['id'], $gcm_id1), "[user::setGCM()]"); $user_info = user::getUserByUsername($username); $this->assertEquals($gcm_id1, $user_info['gcmID'], "setGCM()"); $gcm_id2 = "APA91bHGJbxPpIUNirvnCQib7kojM12Qu2MBBd9dGHXSu0hsfB_Al2rQ4E8UWgpMXhNVIGT6IlSjLE-MB2F0RrBeN_llEYzPErIQoewxnDeON6uqBIHkLcMIY2NQtQHX3TNYBrlNc74wmh7aYec9kLMp5QGogVYSao1Q-RtIx4QV140YHBBASXM"; $this->assertTrue(user::setGCM($user_info2['id'], $gcm_id2), "[user::setGCM()]"); $user_info2 = user::getUserById($user_info['id']); $this->assertEquals($gcm_id2, $user_info2['gcmID'], "setGCM()"); }
public function registerGCM() { if (XmlRequestValidator::isValidregisterGCMRequest($this->requestData)) { $session = $this->requestData->body->session; $gcm = $this->requestData->body->gcm; if (safe_input::is_valid_session_hash($session) && safe_input::is_valid_gcm_id($gcm)) { //chkec if the session hash exists $session_info = session::get_session_by_hash($session); if ($session_info != null) { $res = Execute::registerGCM($session, $gcm); if ($res) { $this->response = XmlBuilder::registerGCMSuccessfullResponse("plain", $session); } else { $this->response = XmlBuilder::failed_response("plain", 4, XmlParseRequest::$DATABASE_ERROR, "server was unable register gcm id, try again"); } } else { //the given hash doesn't exist in the database Report::warning(__METHOD__ . "," . __LINE__, "register gcm id request contains a session hash that does not exist in the database: hash=" . $session); $this->response = XmlBuilder::failed_response("plain", 4, 1, "expired session"); } } else { //invalid data passed Report::error(__METHOD__ . "," . __LINE__, "register gcm id request contains an incorrectly formatted session hash or gcm id"); $this->response = XmlBuilder::failed_response("plain", 4, 0, "invalid session or gcm id"); } } else { //xml request was not formatted correctly Report::error(__METHOD__ . "," . __LINE__, "invalid register gcm request!"); $this->invalidRequest(); } }
public static function setGCM($user_id, $gcm_id) { if (safe_input::is_number($user_id) && safe_input::is_valid_gcm_id($gcm_id)) { $db = new database(); $query = "UPDATE `user` SET `gcmID` = '{$gcm_id}' WHERE `id` = '{$user_id}'"; return $db->query($query); } else { return false; } }