2015-02-18 01:45:39 +01:00
|
|
|
import json
|
|
|
|
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
from rest_framework import status
|
|
|
|
|
|
|
|
from openslides.core.models import CustomSlide, Projector
|
2015-06-16 10:37:23 +02:00
|
|
|
from openslides.utils.test import TestCase
|
2015-02-18 01:45:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
class ProjectorAPI(TestCase):
|
|
|
|
"""
|
|
|
|
Tests requests from the anonymous user.
|
|
|
|
"""
|
|
|
|
def test_slide_on_default_projector(self):
|
|
|
|
self.client.login(username='admin', password='admin')
|
|
|
|
customslide = CustomSlide.objects.create(title='title_que1olaish5Wei7que6i', text='text_aishah8Eh7eQuie5ooji')
|
|
|
|
default_projector = Projector.objects.get(pk=1)
|
|
|
|
default_projector.config = [{'name': 'core/customslide', 'id': customslide.id}]
|
|
|
|
default_projector.save()
|
|
|
|
|
|
|
|
response = self.client.get(reverse('projector-detail', args=['1']))
|
|
|
|
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
|
|
self.assertEqual(json.loads(response.content.decode()), {
|
|
|
|
'config': [{'name': 'core/customslide', 'id': customslide.id}],
|
|
|
|
'projector_elements': [
|
|
|
|
{'name': 'core/customslide',
|
|
|
|
'scripts': 'core/customslide_slide.js',
|
|
|
|
'context': [
|
|
|
|
{'collection': 'core/customslide',
|
|
|
|
'id': customslide.id}]}]})
|
|
|
|
|
|
|
|
def test_invalid_slide_on_default_projector(self):
|
|
|
|
self.client.login(username='admin', password='admin')
|
|
|
|
default_projector = Projector.objects.get(pk=1)
|
|
|
|
default_projector.config = [{'name': 'invalid_slide'}]
|
|
|
|
default_projector.save()
|
|
|
|
|
|
|
|
response = self.client.get(reverse('projector-detail', args=['1']))
|
|
|
|
|
|
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
|
|
self.assertEqual(json.loads(response.content.decode()), {
|
|
|
|
'config': [{'name': 'invalid_slide'}],
|
|
|
|
'projector_elements': [
|
|
|
|
{'name': 'invalid_slide',
|
|
|
|
'error': 'Projector element does not exist.'}]})
|