@@ -893,3 +893,55 @@ def filtered_items(self):
893893 batched_items .display_footer = False
894894 rendered = batched_items (model = model , request = self .layer .new_request ())
895895 self .assertFalse (rendered .find (expected ) > - 1 )
896+
897+ def test_footer_pagination (self ):
898+ # The batched_items footer displays "Showing X to Y of Z entries".
899+ class MyBatchedItems (BatchedItems ):
900+ slice_template = 'cone.app.testing:dummy_batched_items.pt'
901+ _items = []
902+
903+ @property
904+ def item_count (self ):
905+ return len (self ._items )
906+
907+ @property
908+ def slice_items (self ):
909+ start , end = self .current_slice
910+ return self ._items [start :end ]
911+
912+ def footer_html (batched_items ):
913+ footer = batched_items .rendered_footer
914+ start = footer .find ('batched_items_info' )
915+ end = footer .find ('</div>' , start )
916+ return footer [start :end ]
917+
918+ # Empty list: from=0, to=0, total=0.
919+ batched_items = MyBatchedItems ()
920+ batched_items .model = BaseNode ()
921+ batched_items .request = self .layer .new_request ()
922+ batched_items ._items = []
923+ footer = footer_html (batched_items )
924+ self .assertIn ('>0<' , footer )
925+
926+ # Full first page: from=1, to=15, total=20.
927+ items = [BaseNode () for _ in range (20 )]
928+ batched_items = MyBatchedItems ()
929+ batched_items .model = BaseNode ()
930+ batched_items .request = self .layer .new_request ()
931+ batched_items ._items = items
932+ footer = footer_html (batched_items )
933+ self .assertIn ('>1<' , footer )
934+ self .assertIn ('>15<' , footer )
935+ self .assertIn ('>20<' , footer )
936+
937+ # Partial last page: from=16, to=17, total=17.
938+ items = [BaseNode () for _ in range (17 )]
939+ request = self .layer .new_request ()
940+ request .params ['b_page' ] = '1'
941+ batched_items = MyBatchedItems ()
942+ batched_items .model = BaseNode ()
943+ batched_items .request = request
944+ batched_items ._items = items
945+ footer = footer_html (batched_items )
946+ self .assertIn ('>16<' , footer )
947+ self .assertIn ('>17<' , footer )
0 commit comments