From 26250412ce74209c0e1223b222afdecf554edadd Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 28 Oct 2015 01:33:43 -0400 Subject: [PATCH] Add test for the document version revert and document version download links. GL issue #230. --- mayan/apps/documents/tests/test_links.py | 95 ++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mayan/apps/documents/tests/test_links.py diff --git a/mayan/apps/documents/tests/test_links.py b/mayan/apps/documents/tests/test_links.py new file mode 100644 index 0000000000..34ce90a01d --- /dev/null +++ b/mayan/apps/documents/tests/test_links.py @@ -0,0 +1,95 @@ +# -*- coding: utf-8 -*- + +from __future__ import unicode_literals + +from django.core.files import File +from django.core.urlresolvers import reverse + +from acls.models import AccessControlList +from user_management.tests.literals import ( + TEST_USER_PASSWORD, TEST_USER_USERNAME +) + +from ..links import ( + link_document_version_download, link_document_version_revert +) +from ..permissions import ( + permission_document_download, permission_document_version_revert +) + +from .literals import TEST_SMALL_DOCUMENT_PATH +from .test_views import GenericDocumentViewTestCase + + +class DocumentsLinksTestCase(GenericDocumentViewTestCase): + def test_document_version_revert_link_no_permission(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document.new_version(file_object=File(file_object)) + + self.assertTrue(self.document.versions.count(), 2) + + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + self.add_test_view(test_object=self.document.versions.first()) + context = self.get_test_view() + resolved_link = link_document_version_revert.resolve(context=context) + + self.assertEqual(resolved_link, None) + + def test_document_version_revert_link_with_permission(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document.new_version(file_object=File(file_object)) + + self.assertTrue(self.document.versions.count(), 2) + + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + acl = AccessControlList.objects.create( + content_object=self.document, role=self.role + ) + acl.permissions.add( + permission_document_version_revert.stored_permission + ) + + self.add_test_view(test_object=self.document.versions.first()) + context = self.get_test_view() + resolved_link = link_document_version_revert.resolve(context=context) + + self.assertNotEqual(resolved_link, None) + self.assertEqual( + resolved_link.url, + reverse( + 'documents:document_version_revert', + args=(self.document.versions.first().pk,) + ) + ) + + def test_document_version_download_link_no_permission(self): + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + self.add_test_view(test_object=self.document.latest_version) + context = self.get_test_view() + resolved_link = link_document_version_download.resolve(context=context) + + self.assertEqual(resolved_link, None) + + def test_document_version_download_link_with_permission(self): + self.login(username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD) + + acl = AccessControlList.objects.create( + content_object=self.document, role=self.role + ) + acl.permissions.add(permission_document_download.stored_permission) + + self.add_test_view(test_object=self.document.latest_version) + context = self.get_test_view() + resolved_link = link_document_version_download.resolve(context=context) + + self.assertNotEqual(resolved_link, None) + self.assertEqual( + resolved_link.url, + reverse( + 'documents:document_version_download', + args=(self.document.latest_version.pk,) + ) + )