66use SilverStripe \Dev \SapphireTest ;
77use SilverStripe \Forms \GridField \GridField ;
88use SilverStripe \Forms \GridField \GridField_FormAction ;
9+ use SilverStripe \Forms \GridField \GridFieldFilterHeader ;
10+ use SilverStripe \Forms \GridField \GridFieldPaginator ;
911use SilverStripe \ORM \ArrayList ;
12+ use SilverStripe \ORM \Search \BasicSearchContext ;
13+ use SilverStripe \View \ArrayData ;
1014use Symbiote \GridFieldExtensions \GridFieldConfigurablePaginator ;
1115
1216class GridFieldConfigurablePaginatorTest extends SapphireTest
@@ -27,6 +31,7 @@ protected function setUp(): void
2731 }
2832
2933 $ this ->gridField = GridField::create ('Mock ' , null , $ data );
34+ $ this ->gridField ->getConfig ()->removeComponentsByType (GridFieldPaginator::class);
3035 }
3136
3237 public function testGetTotalItems ()
@@ -37,6 +42,18 @@ public function testGetTotalItems()
3742 $ this ->assertSame (130 , $ paginator ->getTotalItems ());
3843 }
3944
45+ public function testGetTotalItemsDuringFilter (): void
46+ {
47+ $ paginator = new GridFieldConfigurablePaginator ;
48+ $ this ->gridField ->getConfig ()->addComponent ($ paginator );
49+ $ this ->gridField ->getConfig ()->getComponentByType (GridFieldFilterHeader::class)
50+ ->setSearchContext (new BasicSearchContext (ArrayData::class, ['ID ' ]));
51+ $ this ->gridField ->State ->GridFieldFilterHeader ->Columns = ['ID ' => '2 ' ];
52+ $ this ->gridField ->getManipulatedList ();
53+
54+ $ this ->assertSame (31 , $ paginator ->getTotalItems ());
55+ }
56+
4057 public function testGetFirstShown ()
4158 {
4259 $ paginator = new GridFieldConfigurablePaginator ;
0 commit comments