27 BreadCrumbEntityVComponent.visible = True |
27 BreadCrumbEntityVComponent.visible = True |
28 |
28 |
29 class NavigationTC(CubicWebTC): |
29 class NavigationTC(CubicWebTC): |
30 |
30 |
31 def test_navigation_selection_whatever(self): |
31 def test_navigation_selection_whatever(self): |
32 req = self.request() |
32 with self.admin_access.web_request() as req: |
33 rset = self.execute('Any X,N WHERE X name N') |
33 rset = req.execute('Any X,N WHERE X name N') |
34 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
34 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
35 self.assertIsInstance(navcomp, PageNavigation) |
35 self.assertIsInstance(navcomp, PageNavigation) |
36 req.set_search_state('W:X:Y:Z') |
36 req.set_search_state('W:X:Y:Z') |
37 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
37 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
38 self.assertIsInstance(navcomp, PageNavigation) |
38 self.assertIsInstance(navcomp, PageNavigation) |
39 req.set_search_state('normal') |
39 req.set_search_state('normal') |
40 |
40 |
41 def test_navigation_selection_ordered(self): |
41 def test_navigation_selection_ordered(self): |
42 req = self.request() |
42 with self.admin_access.web_request() as req: |
43 rset = self.execute('Any X,N ORDERBY N LIMIT 40 WHERE X name N') |
43 rset = req.execute('Any X,N ORDERBY N LIMIT 40 WHERE X name N') |
44 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
44 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
45 self.assertIsInstance(navcomp, SortedNavigation) |
45 self.assertIsInstance(navcomp, SortedNavigation) |
46 req.set_search_state('W:X:Y:Z') |
46 req.set_search_state('W:X:Y:Z') |
47 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
47 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
48 self.assertIsInstance(navcomp, SortedNavigation) |
48 self.assertIsInstance(navcomp, SortedNavigation) |
49 req.set_search_state('normal') |
49 req.set_search_state('normal') |
50 html = navcomp.render() |
50 navcomp.render() |
51 |
51 |
52 def test_navigation_selection_large_rset(self): |
52 def test_navigation_selection_large_rset(self): |
53 req = self.request() |
53 with self.admin_access.web_request() as req: |
54 rset = self.execute('Any X,N LIMIT 120 WHERE X name N') |
54 rset = req.execute('Any X,N LIMIT 120 WHERE X name N') |
55 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
55 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
56 self.assertIsInstance(navcomp, PageNavigationSelect) |
56 self.assertIsInstance(navcomp, PageNavigationSelect) |
57 rset = self.execute('Any X,N ORDERBY N LIMIT 120 WHERE X name N') |
57 rset = req.execute('Any X,N ORDERBY N LIMIT 120 WHERE X name N') |
58 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
58 navcomp = self.vreg['components'].select('navigation', req, rset=rset, page_size=20) |
59 self.assertIsInstance(navcomp, PageNavigationSelect) |
59 self.assertIsInstance(navcomp, PageNavigationSelect) |
60 |
60 |
61 def test_navigation_selection_not_enough_1(self): |
61 def test_navigation_selection_not_enough_1(self): |
62 req = self.request() |
62 with self.admin_access.web_request() as req: |
63 rset = self.execute('Any X,N LIMIT 10 WHERE X name N') |
63 rset = req.execute('Any X,N LIMIT 10 WHERE X name N') |
64 navcomp = self.vreg['components'].select_or_none('navigation', req, rset=rset) |
64 navcomp = self.vreg['components'].select_or_none('navigation', req, rset=rset) |
65 self.assertEqual(navcomp, None) |
65 self.assertEqual(navcomp, None) |
66 req.set_search_state('W:X:Y:Z') |
66 req.set_search_state('W:X:Y:Z') |
67 navcomp = self.vreg['components'].select_or_none('navigation', req, rset=rset) |
67 navcomp = self.vreg['components'].select_or_none('navigation', req, rset=rset) |
68 self.assertEqual(navcomp, None) |
68 self.assertEqual(navcomp, None) |
69 req.set_search_state('normal') |
69 req.set_search_state('normal') |
70 |
70 |
71 def test_navigation_selection_not_enough_2(self): |
71 def test_navigation_selection_not_enough_2(self): |
72 req = self.request() |
72 with self.admin_access.web_request() as req: |
73 rset = self.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N WHERE RDEF relation_type RT, RT name N') |
73 rset = req.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N ' |
74 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
74 'WHERE RDEF relation_type RT, RT name N') |
75 self.assertIsInstance(navcomp, SortedNavigation) |
75 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
76 req.set_search_state('W:X:Y:Z') |
76 self.assertIsInstance(navcomp, SortedNavigation) |
77 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
77 req.set_search_state('W:X:Y:Z') |
78 self.assertIsInstance(navcomp, SortedNavigation) |
78 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
|
79 self.assertIsInstance(navcomp, SortedNavigation) |
79 |
80 |
80 def test_navigation_selection_wrong_boundary(self): |
81 def test_navigation_selection_wrong_boundary(self): |
81 req = self.request() |
82 with self.admin_access.web_request() as req: |
82 rset = self.execute('Any X,N WHERE X name N') |
83 rset = req.execute('Any X,N WHERE X name N') |
83 req = self.request() |
84 req.form['__start'] = 1000000 |
84 req.form['__start'] = 1000000 |
85 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
85 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
86 html = navcomp.render() |
86 html = navcomp.render() |
|
87 |
87 |
88 def test_sorted_navigation_1(self): |
88 def test_sorted_navigation_1(self): |
89 req = self.request() |
89 with self.admin_access.web_request() as req: |
90 rset = self.execute('Any RDEF ORDERBY RT WHERE RDEF relation_type RT') |
90 rset = req.execute('Any RDEF ORDERBY RT WHERE RDEF relation_type RT') |
91 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
91 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
92 html = navcomp.render() |
92 html = navcomp.render() |
93 |
93 |
94 def test_sorted_navigation_2(self): |
94 def test_sorted_navigation_2(self): |
95 req = self.request() |
95 with self.admin_access.web_request() as req: |
96 rset = self.execute('Any RDEF ORDERBY RDEF WHERE RDEF relation_type RT') |
96 rset = req.execute('Any RDEF ORDERBY RDEF WHERE RDEF relation_type RT') |
97 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
97 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
98 html = navcomp.render() |
98 html = navcomp.render() |
99 |
99 |
100 def test_sorted_navigation_3(self): |
100 def test_sorted_navigation_3(self): |
101 req = self.request() |
101 with self.admin_access.web_request() as req: |
102 rset = self.execute('CWAttribute RDEF ORDERBY RDEF') |
102 rset = req.execute('CWAttribute RDEF ORDERBY RDEF') |
103 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
103 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
104 html = navcomp.render() |
104 html = navcomp.render() |
105 |
105 |
106 def test_sorted_navigation_4(self): |
106 def test_sorted_navigation_4(self): |
107 req = self.request() |
107 with self.admin_access.web_request() as req: |
108 rset = self.execute('Any RDEF ORDERBY N WHERE RDEF relation_type RT, RT name N') |
108 rset = req.execute('Any RDEF ORDERBY N ' |
109 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
109 'WHERE RDEF relation_type RT, RT name N') |
110 html = navcomp.render() |
110 navcomp = self.vreg['components'].select('navigation', req, rset=rset) |
|
111 html = navcomp.render() |
111 |
112 |
112 def test_sorted_navigation_5(self): |
113 def test_sorted_navigation_5(self): |
113 req = self.request() |
114 with self.admin_access.web_request() as req: |
114 rset = self.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N WHERE RDEF relation_type RT, RT name N') |
115 rset = req.execute('Any N, COUNT(RDEF) GROUPBY N ORDERBY N ' |
115 navcomp = self.vreg['components'].select('navigation', rset.req, rset=rset) |
116 'WHERE RDEF relation_type RT, RT name N') |
116 html = navcomp.render() |
117 navcomp = self.vreg['components'].select('navigation', rset.req, rset=rset) |
|
118 html = navcomp.render() |
117 |
119 |
118 |
|
119 # XXX deactivate, contextual component has been removed |
|
120 # class ContentNavigationTC(CubicWebTC): |
|
121 # def test_component_context(self): |
|
122 # view = mock_object(is_primary=lambda x: True) |
|
123 # rset = self.execute('CWUser X LIMIT 1') |
|
124 # req = self.request() |
|
125 # objs = self.vreg['ctxcomponents'].poss_visible_objects( |
|
126 # req, rset=rset, view=view, context='navtop') |
|
127 # # breadcrumbs should be in headers by default |
|
128 # clsids = set(obj.id for obj in objs) |
|
129 # self.assertIn('breadcrumbs', clsids) |
|
130 # objs = self.vreg['ctxcomponents'].poss_visible_objects( |
|
131 # req, rset=rset, view=view, context='navbottom') |
|
132 # # breadcrumbs should _NOT_ be in footers by default |
|
133 # clsids = set(obj.id for obj in objs) |
|
134 # self.assertNotIn('breadcrumbs', clsids) |
|
135 # self.execute('INSERT CWProperty P: P pkey "ctxcomponents.breadcrumbs.context", ' |
|
136 # 'P value "navbottom"') |
|
137 # # breadcrumbs should now be in footers |
|
138 # req.cnx.commit() |
|
139 # objs = self.vreg['ctxcomponents'].poss_visible_objects( |
|
140 # req, rset=rset, view=view, context='navbottom') |
|
141 |
|
142 # clsids = [obj.id for obj in objs] |
|
143 # self.assertIn('breadcrumbs', clsids) |
|
144 # objs = self.vreg['ctxcomponents'].poss_visible_objects( |
|
145 # req, rset=rset, view=view, context='navtop') |
|
146 |
|
147 # clsids = [obj.id for obj in objs] |
|
148 # self.assertNotIn('breadcrumbs', clsids) |
|
149 |
120 |
150 |
121 |
151 if __name__ == '__main__': |
122 if __name__ == '__main__': |
152 unittest_main() |
123 unittest_main() |