123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- from django.core.urlresolvers import reverse
- from misago.acl.testutils import override_acl
- from misago.categories.models import Category
- from misago.users.testutils import AuthenticatedUserTestCase
- from misago.threads.models import Thread, Event
- from misago.threads.testutils import post_thread, reply_thread
- class EventsViewTestCase(AuthenticatedUserTestCase):
- ajax_header = {'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest'}
- def setUp(self):
- super(EventsViewTestCase, self).setUp()
- self.category = Category.objects.all_categories().filter(role='forum')[:1][0]
- self.category.labels = []
- self.thread = post_thread(self.category)
- def override_acl(self, new_acl):
- new_acl.update({
- 'can_see': True,
- 'can_browse': True,
- 'can_see_all_threads': True,
- 'can_see_own_threads': False,
- 'can_pin_threads': True
- })
- categories_acl = self.user.acl
- categories_acl['visible_categories'].append(self.category.pk)
- categories_acl['categories'][self.category.pk] = new_acl
- override_acl(self.user, categories_acl)
- def test_hide_event(self):
- """its possible to hide event"""
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'pin'})
- self.assertEqual(response.status_code, 302)
- event = self.thread.event_set.all()[0]
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'toggle'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 403)
- self.override_acl({'can_hide_events': 1})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'toggle'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 200)
- event = Event.objects.get(id=event.id)
- self.assertTrue(event.is_hidden)
- def test_show_event(self):
- """its possible to unhide event"""
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'pin'})
- self.assertEqual(response.status_code, 302)
- event = self.thread.event_set.all()[0]
- event.is_hidden = True
- event.save()
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'toggle'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 403)
- self.override_acl({'can_hide_events': 1})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'toggle'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 200)
- event = Event.objects.get(id=event.id)
- self.assertFalse(event.is_hidden)
- def test_delete_event(self):
- """its possible to delete event"""
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'pin'})
- self.assertEqual(response.status_code, 302)
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(self.thread.get_absolute_url(),
- data={'thread_action': 'unpin'})
- self.assertEqual(response.status_code, 302)
- event = self.thread.event_set.all()[0]
- self.override_acl({'can_hide_events': 0})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'delete'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 403)
- self.override_acl({'can_hide_events': 1})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'delete'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 403)
- self.override_acl({'can_hide_events': 2})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'delete'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 200)
- thread = Thread.objects.get(id=self.thread.id)
- self.assertTrue(thread.has_events)
- self.assertTrue(thread.event_set.exists())
- event = self.thread.event_set.all()[0]
- self.override_acl({'can_hide_events': 2})
- response = self.client.post(
- reverse('misago:edit_event', kwargs={'event_id': event.id}),
- data={'action': 'delete'},
- **self.ajax_header)
- self.assertEqual(response.status_code, 200)
- thread = Thread.objects.get(id=self.thread.id)
- self.assertFalse(thread.has_events)
- self.assertFalse(thread.event_set.exists())
|