|
@@ -0,0 +1,212 @@
|
|
|
+import json
|
|
|
+from django.contrib.auth.models import User
|
|
|
+from django.core.urlresolvers import reverse
|
|
|
+from django.test import TestCase, Client
|
|
|
+from jet.modules import LinkList
|
|
|
+from jet.models import UserDashboardModule, Bookmark
|
|
|
+
|
|
|
+
|
|
|
+class ViewsTestCase(TestCase):
|
|
|
+ def setUp(self):
|
|
|
+ self.assertTrue(self._login())
|
|
|
+
|
|
|
+ def _login(self):
|
|
|
+ username = 'admin'
|
|
|
+ email = 'admin@example.com'
|
|
|
+ password = 'admin'
|
|
|
+ self.admin = Client()
|
|
|
+ self.admin_user = User.objects.create_superuser(username, email, password)
|
|
|
+ return self.admin.login(username=username, password=password)
|
|
|
+
|
|
|
+ def test_module_update_view(self):
|
|
|
+ title = 'Quick links Test'
|
|
|
+ new_title = title + '2'
|
|
|
+ new_layout = 'stacked'
|
|
|
+ module = UserDashboardModule.objects.create(
|
|
|
+ title=title,
|
|
|
+ module='jet.modules.LinkList',
|
|
|
+ app_label=None,
|
|
|
+ user=self.admin_user.pk,
|
|
|
+ column=0,
|
|
|
+ order=0,
|
|
|
+ settings='{"layout": "inline"}',
|
|
|
+ children='[]'
|
|
|
+ )
|
|
|
+ response = self.admin.get(reverse('jet:update_module', kwargs={'pk': module.pk}))
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ self.assertTrue(response.context['module'] is not None)
|
|
|
+ self.assertTrue(isinstance(response.context['module'], LinkList))
|
|
|
+ self.assertEqual(response.context['module'].title, title)
|
|
|
+
|
|
|
+ post = {
|
|
|
+ 'title': new_title,
|
|
|
+ 'layout': new_layout,
|
|
|
+ 'children-TOTAL_FORMS': '2',
|
|
|
+ 'children-INITIAL_FORMS': '1',
|
|
|
+ 'children-MIN_NUM_FORMS': '0',
|
|
|
+ 'children-MAX_NUM_FORMS': '1000',
|
|
|
+ 'children-0-url': 'http://docs.djangoproject.com/',
|
|
|
+ 'children-0-title': 'Django documentation',
|
|
|
+ 'children-0-external': 'on',
|
|
|
+ 'children-1-url': '',
|
|
|
+ 'children-1-title': '',
|
|
|
+ 'children-__prefix__-url': '',
|
|
|
+ 'children-__prefix__-title': '',
|
|
|
+ '_save': 'Save'
|
|
|
+ }
|
|
|
+
|
|
|
+ self.admin.post(reverse('jet:update_module', kwargs={'pk': module.pk}), post)
|
|
|
+ module = UserDashboardModule.objects.get(pk=module.pk)
|
|
|
+ settings = json.loads(module.settings)
|
|
|
+ self.assertEqual(module.title, new_title)
|
|
|
+ self.assertEqual(settings['layout'], new_layout)
|
|
|
+
|
|
|
+ module.delete()
|
|
|
+
|
|
|
+ def test_add_bookmark_view(self):
|
|
|
+ url = 'http://test.com/'
|
|
|
+ title = 'Title'
|
|
|
+ response = self.admin.post(reverse('jet:add_bookmark'), {'url': url, 'title': title})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertNotEqual(response['id'], None)
|
|
|
+ bookmark = Bookmark.objects.get(pk=response['id'])
|
|
|
+ self.assertNotEqual(bookmark, None)
|
|
|
+ self.assertEqual(bookmark.title, title)
|
|
|
+ self.assertEqual(bookmark.url, url)
|
|
|
+
|
|
|
+ def test_add_bookmark_view_unauthorized(self):
|
|
|
+ url = 'http://test.com/'
|
|
|
+ title = 'Title'
|
|
|
+ response = self.client.post(reverse('jet:add_bookmark'), {'url': url, 'title': title})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertTrue(response['error'])
|
|
|
+
|
|
|
+ def test_remove_bookmark_view(self):
|
|
|
+ url = 'http://test.com/'
|
|
|
+ title = 'Title'
|
|
|
+ bookmark = Bookmark.objects.create(url=url, title=title, user=self.admin_user.pk)
|
|
|
+ response = self.admin.post(reverse('jet:remove_bookmark'), {'id': bookmark.id})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertFalse(Bookmark.objects.filter(pk=bookmark.pk).exists())
|
|
|
+
|
|
|
+ def test_toggle_application_pin_view(self):
|
|
|
+ app_label = 'test_app'
|
|
|
+
|
|
|
+ response = self.admin.post(reverse('jet:toggle_application_pin'), {'app_label': app_label})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertTrue(response['pinned'])
|
|
|
+
|
|
|
+ response = self.admin.post(reverse('jet:toggle_application_pin'), {'app_label': app_label})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertFalse(response['pinned'])
|
|
|
+
|
|
|
+ def test_update_dashboard_modules_view(self):
|
|
|
+ app_label = None
|
|
|
+ module_0 = UserDashboardModule.objects.create(
|
|
|
+ title='',
|
|
|
+ module='jet.modules.LinkList',
|
|
|
+ app_label=app_label,
|
|
|
+ user=self.admin_user.pk,
|
|
|
+ column=0,
|
|
|
+ order=0
|
|
|
+ )
|
|
|
+ module_1 = UserDashboardModule.objects.create(
|
|
|
+ title='',
|
|
|
+ module='jet.modules.LinkList',
|
|
|
+ app_label=app_label,
|
|
|
+ user=self.admin_user.pk,
|
|
|
+ column=0,
|
|
|
+ order=1
|
|
|
+ )
|
|
|
+ response = self.admin.post(reverse('jet:update_dashboard_modules'), {
|
|
|
+ 'app_label': '',
|
|
|
+ 'modules': json.dumps([
|
|
|
+ {'id': module_0.pk, 'column': 0, 'order': 1},
|
|
|
+ {'id': module_1.pk, 'column': 0, 'order': 0}
|
|
|
+ ])
|
|
|
+ })
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+
|
|
|
+ module_0 = UserDashboardModule.objects.get(pk=module_0.pk)
|
|
|
+ module_1 = UserDashboardModule.objects.get(pk=module_1.pk)
|
|
|
+
|
|
|
+ self.assertEqual(module_0.order, 1)
|
|
|
+ self.assertEqual(module_1.order, 0)
|
|
|
+
|
|
|
+ module_0.delete()
|
|
|
+ module_1.delete()
|
|
|
+
|
|
|
+ def test_add_user_dashboard_module_view(self):
|
|
|
+ response = self.admin.post(reverse('jet:add_user_dashboard_module_view'), {
|
|
|
+ 'app_label': '',
|
|
|
+ 'type': 'available_children',
|
|
|
+ 'module': 0
|
|
|
+ })
|
|
|
+
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertNotEqual(response['id'], None)
|
|
|
+ module = UserDashboardModule.objects.get(pk=response['id'])
|
|
|
+ self.assertNotEqual(module, None)
|
|
|
+
|
|
|
+ def test_update_dashboard_module_collapse_view(self):
|
|
|
+ module = UserDashboardModule.objects.create(
|
|
|
+ title='',
|
|
|
+ module='jet.modules.LinkList',
|
|
|
+ app_label=None,
|
|
|
+ user=self.admin_user.pk,
|
|
|
+ column=0,
|
|
|
+ order=0
|
|
|
+ )
|
|
|
+ response = self.admin.post(reverse('jet:update_dashboard_module_collapse'), {
|
|
|
+ 'id': module.pk, 'collapsed': True
|
|
|
+ })
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertTrue(response['collapsed'])
|
|
|
+
|
|
|
+ module = UserDashboardModule.objects.get(pk=module.pk)
|
|
|
+ response = self.admin.post(reverse('jet:update_dashboard_module_collapse'), {
|
|
|
+ 'id': module.pk, 'collapsed': False
|
|
|
+ })
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertFalse(response['collapsed'])
|
|
|
+
|
|
|
+ module.delete()
|
|
|
+
|
|
|
+ def test_remove_dashboard_module_view(self):
|
|
|
+ module = UserDashboardModule.objects.create(
|
|
|
+ title='',
|
|
|
+ module='jet.modules.LinkList',
|
|
|
+ app_label=None,
|
|
|
+ user=self.admin_user.pk,
|
|
|
+ column=0,
|
|
|
+ order=0
|
|
|
+ )
|
|
|
+ response = self.admin.post(reverse('jet:remove_dashboard_module'), {'id': module.pk})
|
|
|
+ self.assertEqual(response.status_code, 200)
|
|
|
+ response = json.loads(response.content)
|
|
|
+ self.assertFalse(response['error'])
|
|
|
+ self.assertFalse(UserDashboardModule.objects.filter(pk=module.pk).exists())
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|