[navigation] split tests, add test for __start out of bound
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Tue, 04 Aug 2009 15:30:54 +0200
changeset 2676 1282a15eb20f
parent 2675 f84ba1a66abb
child 2677 8df54acd6613
[navigation] split tests, add test for __start out of bound
web/test/unittest_views_navigation.py
--- a/web/test/unittest_views_navigation.py	Tue Aug 04 15:08:18 2009 +0200
+++ b/web/test/unittest_views_navigation.py	Tue Aug 04 15:30:54 2009 +0200
@@ -16,15 +16,18 @@
 
 class NavigationTC(EnvBasedTC):
 
-    def test_navigation_selection(self):
+    def test_navigation_selection_whatever(self):
+        req = self.request()
         rset = self.execute('Any X,N WHERE X name N')
-        req = self.request()
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, PageNavigation)
         req.set_search_state('W:X:Y:Z')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, PageNavigation)
         req.set_search_state('normal')
+
+    def test_navigation_selection_ordered(self):
+        req = self.request()
         rset = self.execute('Any X,N ORDERBY N WHERE X name N')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, SortedNavigation)
@@ -32,6 +35,10 @@
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, SortedNavigation)
         req.set_search_state('normal')
+        html = navcomp.render()
+
+    def test_navigation_selection_not_enough(self):
+        req = self.request()
         rset = self.execute('Any X,N LIMIT 10 WHERE X name N')
         navcomp = self.vreg['components'].select_object('navigation', req, rset=rset)
         self.assertEquals(navcomp, None)
@@ -39,6 +46,9 @@
         navcomp = self.vreg['components'].select_object('navigation', req, rset=rset)
         self.assertEquals(navcomp, None)
         req.set_search_state('normal')
+
+    def test_navigation_selection_not_enough(self):
+        req = self.request()
         rset = self.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N WHERE RDEF relation_type RT, RT name N')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, SortedNavigation)
@@ -46,25 +56,42 @@
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         self.assertIsInstance(navcomp, SortedNavigation)
 
-
-    def test_sorted_navigation(self):
-        rset = self.execute('Any X,N ORDERBY N WHERE X name N')
+    def test_navigation_selection_wrong_boundary(self):
+        req = self.request()
+        rset = self.execute('Any X,N WHERE X name N')
         req = self.request()
-        req.set_search_state('W:X:Y:Z')
-        navcomp = self.vreg['components'].select('navigation', rset.req, rset=rset)
+        req.form['__start'] = 1000000
+        print 'len', len(rset)
+        navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         html = navcomp.render()
+        print html
+
+    def test_sorted_navigation_1(self):
+        req = self.request()
         rset = self.execute('Any RDEF ORDERBY RT WHERE RDEF relation_type RT')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         html = navcomp.render()
+
+    def test_sorted_navigation_2(self):
+        req = self.request()
         rset = self.execute('Any RDEF ORDERBY RDEF WHERE RDEF relation_type RT')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         html = navcomp.render()
+
+    def test_sorted_navigation_3(self):
+        req = self.request()
         rset = self.execute('CWAttribute RDEF ORDERBY RDEF')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         html = navcomp.render()
+
+    def test_sorted_navigation_4(self):
+        req = self.request()
         rset = self.execute('Any RDEF ORDERBY N WHERE RDEF relation_type RT, RT name N')
         navcomp = self.vreg['components'].select('navigation', req, rset=rset)
         html = navcomp.render()
+
+    def test_sorted_navigation_5(self):
+        req = self.request()
         rset = self.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N WHERE RDEF relation_type RT, RT name N')
         navcomp = self.vreg['components'].select('navigation', rset.req, rset=rset)
         html = navcomp.render()
@@ -77,13 +104,13 @@
         view = mock_object(is_primary=lambda x: True)
         rset = self.execute('CWUser X LIMIT 1')
         req = self.request()
-        objs = self.vreg['contentnavigation'].possible_vobjects(req, rset=rset,
-                                           view=view, context='navtop')
+        objs = self.vreg['contentnavigation'].possible_vobjects(
+            req, rset=rset, view=view, context='navtop')
         # breadcrumbs should be in headers by default
         clsids = set(obj.id for obj in objs)
         self.failUnless('breadcrumbs' in clsids)
-        objs = self.vreg['contentnavigation'].possible_vobjects(req, rset=rset,
-                                          view=view, context='navbottom')
+        objs = self.vreg['contentnavigation'].possible_vobjects(
+            req, rset=rset, view=view, context='navbottom')
         # breadcrumbs should _NOT_ be in footers by default
         clsids = set(obj.id for obj in objs)
         self.failIf('breadcrumbs' in clsids)
@@ -91,13 +118,13 @@
                      'P value "navbottom"')
         # breadcrumbs should now be in footers
         req.cnx.commit()
-        objs = self.vreg['contentnavigation'].possible_vobjects(req, rset=rset,
-                                          view=view, context='navbottom')
+        objs = self.vreg['contentnavigation'].possible_vobjects(
+            req, rset=rset, view=view, context='navbottom')
 
         clsids = [obj.id for obj in objs]
         self.failUnless('breadcrumbs' in clsids)
-        objs = self.vreg['contentnavigation'].possible_vobjects(req, rset=rset,
-                                          view=view, context='navtop')
+        objs = self.vreg['contentnavigation'].possible_vobjects(
+            req, rset=rset, view=view, context='navtop')
 
         clsids = [obj.id for obj in objs]
         self.failIf('breadcrumbs' in clsids)