Browse Source

Basic tests harness for threads list.

Rafał Pitoń 10 years ago
parent
commit
e807ae6c64

+ 3 - 17
misago/templates/misago/threads/list.html

@@ -66,25 +66,11 @@
 
       <div class="table-panel">
         <table class="table">
-          {% block table-items %}
-          {% for item in items %}
-          <tr>
-            {% block table-row %}{% endblock table-row %}
-            {% if mass_actions %}
-            <td class="row-select">
-              <label>
-                <input type="checkbox" form="mass-action" name="selected_items" value="{{ item.pk }}" {% if item.pk in selected_items %} checked{% endif %}>
-              </label>
-            </td>
-            {% endif %}
-          </tr>
-          {% empty %}
           <tr class="message-row">
-            {% block emptylist %}
-            {% endblock emptylist %}
+            <td>
+              {% trans "No threads were posted in this forum, or you don't have permission to see them." %}
+            </td>
           </tr>
-          {% endfor %}
-          {% endblock table-items %}
         </table>
       </div>
 

+ 55 - 0
misago/threads/tests/test_threads_list_view.py

@@ -0,0 +1,55 @@
+from django.core.urlresolvers import reverse
+
+from misago.acl.testutils import override_acl
+from misago.admin.testutils import AdminTestCase
+
+from misago.forums.lists import get_forums_list
+from misago.forums.models import Forum
+
+
+class ThreadsListTests(AdminTestCase):
+    def setUp(self):
+        super(ThreadsListTests, self).setUp()
+
+        self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
+        self.link = self.forum.get_absolute_url()
+
+    def test_index_cant_see(self):
+        """has no permission to see forum"""
+        forums_acl = self.test_admin.acl
+        forums_acl['visible_forums'].remove(self.forum.pk)
+        forums_acl['forums'][self.forum.pk] = {
+            'can_see': 0,
+            'can_browse': 0,
+        }
+        override_acl(self.test_admin, forums_acl)
+        response = self.client.get(self.link)
+
+        self.assertEqual(response.status_code, 404)
+
+    def test_index_cant_browse(self):
+        """has no permission to browse forum"""
+        forums_acl = self.test_admin.acl
+        forums_acl['visible_forums'].append(self.forum.pk)
+        forums_acl['forums'][self.forum.pk] = {
+            'can_see': 1,
+            'can_browse': 0,
+        }
+        override_acl(self.test_admin, forums_acl)
+        response = self.client.get(self.link)
+
+        self.assertEqual(response.status_code, 403)
+
+    def test_index_can_browse_empty(self):
+        """has permission to browse forum, sees empty list"""
+        forums_acl = self.test_admin.acl
+        forums_acl['visible_forums'].append(self.forum.pk)
+        forums_acl['forums'][self.forum.pk] = {
+            'can_see': 1,
+            'can_browse': 1,
+        }
+        override_acl(self.test_admin, forums_acl)
+        response = self.client.get(self.link)
+
+        self.assertEqual(response.status_code, 200)
+        self.assertIn("No threads", response.content)