diff --git a/tests/configured_tests.py b/tests/configured_tests.py
index 92a5d3f..f1e0d7d 100644
--- a/tests/configured_tests.py
+++ b/tests/configured_tests.py
@@ -9,6 +9,7 @@ from flask.ext.security.utils import capture_registrations, \
from flask.ext.security.forms import LoginForm, ConfirmRegisterForm, RegisterForm, \
ForgotPasswordForm, ResetPasswordForm, SendConfirmationForm, \
PasswordlessLoginForm
+from flask.ext.security.forms import TextField, SubmitField, valid_user_email
from tests import SecurityTest
@@ -493,21 +494,104 @@ class NoBlueprintTests(SecurityTest):
class ExtendFormsTest(SecurityTest):
class MyLoginForm(LoginForm):
- hidden_tag = 'not-so-secret'
+ email = TextField('My Login Email Address Field')
+
+ class MyRegisterForm(RegisterForm):
+ email = TextField('My Register Email Address Field')
APP_KWARGS = {
'login_form': MyLoginForm,
+ 'register_form': MyRegisterForm,
}
AUTH_CONFIG = {
+ 'SECURITY_CONFIRMABLE': False,
'SECURITY_REGISTERABLE': True,
}
def test_login_view(self):
- r = self._get('/login')
- self.assertIn("
Login
", r.data)
+ r = self._get('/login', follow_redirects=True)
+ self.assertIn("My Login Email Address Field", r.data)
def test_register(self):
- r = self._get('/register')
- self.assertIn('Register
', r.data)
+ r = self._get('/register', follow_redirects=True)
+ self.assertIn("My Register Email Address Field", r.data)
+
+
+class RecoverableExtendFormsTest(SecurityTest):
+
+ class MyForgotPasswordForm(ForgotPasswordForm):
+ email = TextField('My Forgot Password Email Address Field',
+ validators=[valid_user_email])
+
+ class MyResetPasswordForm(ResetPasswordForm):
+ submit = SubmitField("My Reset Password Submit Field")
+
+ APP_KWARGS = {
+ 'forgot_password_form': MyForgotPasswordForm,
+ 'reset_password_form': MyResetPasswordForm,
+ }
+
+ AUTH_CONFIG = {
+ 'SECURITY_RECOVERABLE': True,
+ }
+
+ def test_forgot_password(self):
+ r = self._get('/reset', follow_redirects=True)
+ self.assertIn("My Forgot Password Email Address Field", r.data)
+
+ def test_reset_password(self):
+ with capture_reset_password_requests() as requests:
+ self.client.post('/reset',
+ data=dict(email='joe@lp.com'),
+ follow_redirects=True)
+ token = requests[0]['token']
+ r = self._get('/reset/' + token)
+ self.assertIn("My Reset Password Submit Field", r.data)
+
+
+class PasswordlessExtendFormsTest(SecurityTest):
+
+ class MyPasswordlessLoginForm(PasswordlessLoginForm):
+ email = TextField('My Passwordless Login Email Address Field')
+
+ APP_KWARGS = {
+ 'passwordless_login_form': MyPasswordlessLoginForm,
+ }
+
+ AUTH_CONFIG = {
+ 'SECURITY_PASSWORDLESS': True,
+ }
+
+ def test_passwordless_login(self):
+ r = self._get('/login', follow_redirects=True)
+ self.assertIn("My Passwordless Login Email Address Field", r.data)
+
+
+class ConfirmableExtendFormsTest(SecurityTest):
+
+ class MyConfirmRegisterForm(ConfirmRegisterForm):
+ email = TextField('My Confirm Register Email Address Field')
+
+ class MySendConfirmationForm(SendConfirmationForm):
+ email = TextField('My Send Confirmation Email Address Field')
+
+ APP_KWARGS = {
+ 'confirm_register_form': MyConfirmRegisterForm,
+ 'send_confirmation_form': MySendConfirmationForm,
+ }
+
+ AUTH_CONFIG = {
+ 'SECURITY_CONFIRMABLE': True,
+ 'SECURITY_REGISTERABLE': True,
+ }
+
+ def test_register(self):
+ r = self._get('/register', follow_redirects=True)
+ self.assertIn("My Confirm Register Email Address Field", r.data)
+
+
+ def test_send_confirmation(self):
+ r = self._get('/confirm', follow_redirects=True)
+ self.assertIn("My Send Confirmation Email Address Field", r.data)