|
@@ -0,0 +1,106 @@
|
|
|
+import json
|
|
|
+
|
|
|
+from django.contrib.auth import get_user_model
|
|
|
+from django.core.urlresolvers import reverse
|
|
|
+from django.test import TestCase
|
|
|
+
|
|
|
+
|
|
|
+class ValidationAPITests(TestCase):
|
|
|
+ ajax_header = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
|
|
|
+
|
|
|
+ def test_validate_username(self):
|
|
|
+ """test API for validating username"""
|
|
|
+ response = self.client.get(reverse('misago:api_validate_username'))
|
|
|
+ self.assertEqual(response.status_code, 405)
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_username'),
|
|
|
+ data={'username': 'Bob'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 0)
|
|
|
+ self.assertIn('username', data['message'])
|
|
|
+
|
|
|
+ User = get_user_model()
|
|
|
+ user = User.objects.create_user("Bob", "bob@bob.com", "pass123")
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_username'),
|
|
|
+ data={'username': 'Bob'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 1)
|
|
|
+ self.assertIn('not available', data['message'])
|
|
|
+
|
|
|
+ test_url = reverse('misago:api_validate_username',
|
|
|
+ kwargs={'user_id': user.pk})
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ test_url, data={'username': 'Bob'}, **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 0)
|
|
|
+ self.assertIn('username', data['message'])
|
|
|
+
|
|
|
+ def test_validate_email(self):
|
|
|
+ """test API for validating email"""
|
|
|
+ response = self.client.get(reverse('misago:api_validate_email'))
|
|
|
+ self.assertEqual(response.status_code, 405)
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_email'),
|
|
|
+ data={'email': 'bob@bob.com'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 0)
|
|
|
+ self.assertIn('e-mail', data['message'])
|
|
|
+
|
|
|
+ User = get_user_model()
|
|
|
+ user = User.objects.create_user("Bob", "bob@bob.com", "pass123")
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_email'),
|
|
|
+ data={'email': 'bob@bob.com'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 1)
|
|
|
+ self.assertIn('not available', data['message'])
|
|
|
+
|
|
|
+ test_url = reverse('misago:api_validate_email',
|
|
|
+ kwargs={'user_id': user.pk})
|
|
|
+
|
|
|
+ response = self.client.post(
|
|
|
+ test_url, data={'email': 'bob@bob.com'}, **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 0)
|
|
|
+ self.assertIn('e-mail', data['message'])
|
|
|
+
|
|
|
+ def test_validate_password(self):
|
|
|
+ """test API for validating password"""
|
|
|
+ response = self.client.get(reverse('misago:api_validate_password'))
|
|
|
+ self.assertEqual(response.status_code, 405)
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_password'),
|
|
|
+ data={'password': 'pass123'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 0)
|
|
|
+ self.assertIn('password', data['message'])
|
|
|
+
|
|
|
+ response = self.client.post(reverse('misago:api_validate_password'),
|
|
|
+ data={'password': 'p'},
|
|
|
+ **self.ajax_header)
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ data = json.loads(response.content)
|
|
|
+ self.assertEqual(data['has_error'], 1)
|
|
|
+ self.assertIn('characters long', data['message'])
|