b5b3e60e81
- Fixes white page at 'legalnotice' and 'privacypolicy' - Fixes the button to collapse the sidenav - Fixes a too long text in the headbar - Reworked the login data service: * make order of operations clear * prevent setting invalid data into the storage
96 lines
2.8 KiB
Python
96 lines
2.8 KiB
Python
import json
|
|
|
|
from django.urls import reverse
|
|
from rest_framework.test import APIClient
|
|
|
|
from openslides.utils.test import TestCase
|
|
|
|
|
|
class TestWhoAmIView(TestCase):
|
|
url = reverse("user_whoami")
|
|
|
|
def test_get_anonymous(self):
|
|
response = self.client.get(self.url)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(
|
|
json.loads(response.content.decode()),
|
|
{"user_id": None, "user": None, "permissions": [], "guest_enabled": False},
|
|
)
|
|
|
|
def test_get_authenticated_user(self):
|
|
self.client.login(username="admin", password="admin")
|
|
|
|
response = self.client.get(self.url)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(json.loads(response.content.decode()).get("user_id"), 1)
|
|
self.assertEqual(
|
|
json.loads(response.content.decode()).get("guest_enabled"), False
|
|
)
|
|
|
|
def test_post(self):
|
|
response = self.client.post(self.url)
|
|
|
|
self.assertEqual(response.status_code, 405)
|
|
|
|
|
|
class TestUserLogoutView(TestCase):
|
|
url = reverse("user_logout")
|
|
|
|
def test_get(self):
|
|
response = self.client.get(self.url)
|
|
|
|
self.assertEqual(response.status_code, 405)
|
|
|
|
def test_post_anonymous(self):
|
|
response = self.client.post(self.url)
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
def test_post_authenticated_user(self):
|
|
self.client.login(username="admin", password="admin")
|
|
self.client.session["test_key"] = "test_value"
|
|
|
|
response = self.client.post(self.url)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertFalse(hasattr(self.client.session, "test_key"))
|
|
self.assertEqual(
|
|
json.loads(response.content.decode()),
|
|
{"user_id": None, "user": None, "permissions": [], "guest_enabled": False},
|
|
)
|
|
|
|
|
|
class TestUserLoginView(TestCase):
|
|
url = reverse("user_login")
|
|
|
|
def setUp(self):
|
|
self.client = APIClient()
|
|
|
|
def test_get(self):
|
|
response = self.client.get(self.url)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertTrue(json.loads(response.content.decode()).get("login_info_text"))
|
|
|
|
def test_post_no_data(self):
|
|
response = self.client.post(self.url)
|
|
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
def test_post_correct_data(self):
|
|
response = self.client.post(
|
|
self.url, {"username": "admin", "password": "admin"}
|
|
)
|
|
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(json.loads(response.content.decode()).get("user_id"), 1)
|
|
|
|
def test_post_incorrect_data(self):
|
|
response = self.client.post(
|
|
self.url, {"username": "wrong", "password": "wrong"}
|
|
)
|
|
|
|
self.assertEqual(response.status_code, 400)
|