Skip to content

Commit c5a68e6

Browse files
authored
Adds ability to Request Verification Emails (#369)
* adds the ability to request that verification emails be sent * Added test for already verified email
1 parent 89f2f32 commit c5a68e6

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed

src/Parse/ParseUser.php

+16
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,22 @@ public static function requestPasswordReset($email)
607607
ParseClient::_request('POST', 'requestPasswordReset', null, $json);
608608
}
609609

610+
/**
611+
* Request a verification email to be sent to the specified email address
612+
*
613+
* @param string $email Email to request a verification for
614+
*/
615+
public static function requestVerificationEmail($email)
616+
{
617+
$json = json_encode(['email' => $email]);
618+
ParseClient::_request(
619+
'POST',
620+
'verificationEmailRequest',
621+
null,
622+
$json
623+
);
624+
}
625+
610626
/**
611627
* Sets the current user to null. Used internally for testing purposes.
612628
*/

tests/Parse/ParseUserTest.php

+53
Original file line numberDiff line numberDiff line change
@@ -718,4 +718,57 @@ public function testGetCurrentUserByIdAndSession()
718718

719719
ParseUser::logOut();
720720
}
721+
722+
/**
723+
* @group verification-email
724+
*/
725+
public function testRequestVerificationEmail()
726+
{
727+
$email = '[email protected]';
728+
$user = new ParseUser();
729+
$user->setUsername('verification_email_user');
730+
$user->setPassword('password');
731+
$user->setEmail($email);
732+
$user->signUp();
733+
ParseUser::requestVerificationEmail($email);
734+
}
735+
736+
/**
737+
* @group verification-email
738+
*/
739+
public function testEmailAlreadyVerified()
740+
{
741+
$email = '[email protected]';
742+
$this->setExpectedException('Parse\ParseException', "Email {$email} is already verified.");
743+
744+
$user = new ParseUser();
745+
$user->setUsername('another_verification_email_user');
746+
$user->setPassword('password');
747+
$user->setEmail($email);
748+
$user->signUp();
749+
750+
// forcibly update emailVerification status
751+
$user->set('emailVerified', true);
752+
$user->save(true);
753+
754+
ParseUser::requestVerificationEmail($email);
755+
}
756+
757+
/**
758+
* @group verification-email
759+
*/
760+
public function testRequestVerificationEmailEmpty()
761+
{
762+
$this->setExpectedException('Parse\ParseException', 'you must provide an email');
763+
ParseUser::requestVerificationEmail('');
764+
}
765+
766+
/**
767+
* @group verification-email
768+
*/
769+
public function testRequestVerificationEmailBad()
770+
{
771+
$this->setExpectedException('Parse\ParseException', 'No user found with email not_a_known_email');
772+
ParseUser::requestVerificationEmail('not_a_known_email');
773+
}
721774
}

0 commit comments

Comments
 (0)