|
@@ -1,17 +1,11 @@
|
|
from django.urls import reverse
|
|
from django.urls import reverse
|
|
|
|
|
|
from misago.acl.testutils import override_acl
|
|
from misago.acl.testutils import override_acl
|
|
|
|
+from misago.threads.search import SearchThreads
|
|
from misago.users.testutils import AuthenticatedUserTestCase
|
|
from misago.users.testutils import AuthenticatedUserTestCase
|
|
|
|
|
|
|
|
|
|
class LandingTests(AuthenticatedUserTestCase):
|
|
class LandingTests(AuthenticatedUserTestCase):
|
|
- """
|
|
|
|
- todo:
|
|
|
|
-
|
|
|
|
- - no search providers registered
|
|
|
|
- - no search providers allowed
|
|
|
|
- - redirect to first search provider
|
|
|
|
- """
|
|
|
|
def setUp(self):
|
|
def setUp(self):
|
|
super(LandingTests, self).setUp()
|
|
super(LandingTests, self).setUp()
|
|
|
|
|
|
@@ -24,16 +18,22 @@ class LandingTests(AuthenticatedUserTestCase):
|
|
})
|
|
})
|
|
|
|
|
|
response = self.client.get(self.test_link)
|
|
response = self.client.get(self.test_link)
|
|
|
|
+
|
|
self.assertContains(
|
|
self.assertContains(
|
|
response, "have permission to search site", status_code=403)
|
|
response, "have permission to search site", status_code=403)
|
|
|
|
|
|
|
|
+ def test_redirect_to_provider(self):
|
|
|
|
+ """view validates permission to search forum"""
|
|
|
|
+ response = self.client.get(self.test_link)
|
|
|
|
+
|
|
|
|
+ self.assertEqual(response.status_code, 302)
|
|
|
|
+ self.assertIn(SearchThreads.url, response['location'])
|
|
|
|
+
|
|
|
|
|
|
class SearchTests(AuthenticatedUserTestCase):
|
|
class SearchTests(AuthenticatedUserTestCase):
|
|
"""
|
|
"""
|
|
todo:
|
|
todo:
|
|
|
|
|
|
- - no search providers registered
|
|
|
|
- - search provider name not found
|
|
|
|
- search provider disallowed
|
|
- search provider disallowed
|
|
- noscript view displayed
|
|
- noscript view displayed
|
|
"""
|
|
"""
|
|
@@ -45,5 +45,32 @@ class SearchTests(AuthenticatedUserTestCase):
|
|
|
|
|
|
response = self.client.get(
|
|
response = self.client.get(
|
|
reverse('misago:search', kwargs={'search_provider': 'users'}))
|
|
reverse('misago:search', kwargs={'search_provider': 'users'}))
|
|
|
|
+
|
|
self.assertContains(
|
|
self.assertContains(
|
|
response, "have permission to search site", status_code=403)
|
|
response, "have permission to search site", status_code=403)
|
|
|
|
+
|
|
|
|
+ def test_not_found(self):
|
|
|
|
+ """view raises 404 for not found provider"""
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ reverse('misago:search', kwargs={'search_provider': 'nada'}))
|
|
|
|
+
|
|
|
|
+ self.assertEqual(response.status_code, 404)
|
|
|
|
+
|
|
|
|
+ def test_provider_no_permission(self):
|
|
|
|
+ """provider raises 403 without permission"""
|
|
|
|
+ override_acl(self.user, {
|
|
|
|
+ 'can_search_users': 0
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ reverse('misago:search', kwargs={'search_provider': 'users'}))
|
|
|
|
+
|
|
|
|
+ self.assertContains(
|
|
|
|
+ response, "have permission to search users", status_code=403)
|
|
|
|
+
|
|
|
|
+ def test_provider(self):
|
|
|
|
+ """provider displays no script page"""
|
|
|
|
+ response = self.client.get(
|
|
|
|
+ reverse('misago:search', kwargs={'search_provider': 'threads'}))
|
|
|
|
+
|
|
|
|
+ self.assertContains(response, "enable JavaScript")
|