diff -r f84ba1a66abb -r 1282a15eb20f 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)