<?php class GridFieldPrintButtonTest extends SapphireTest { protected $extraDataObjects = array( 'GridFieldPrintButtonTest_DO' ); public function setUp() { parent::setUp(); // 42 items for($i = 1; $i <= 42; $i++) { $obj = new GridFieldPrintButtonTest_DO(); $obj->Name = "Object {$i}"; $obj->write(); } } public function testLimit() { $list = GridFieldPrintButtonTest_DO::get(); $button = new GridFieldPrintButton(); $button->setPrintColumns(array('Name' => 'My Name')); // Get paginated gridfield config $config = GridFieldConfig::create() ->addComponent(new GridFieldPaginator(10)) ->addComponent($button); $gridField = new GridField('testfield', 'testfield', $list, $config); $controller = new Controller(); $form = new Form($controller, 'Form', new FieldList($gridField), new FieldList()); // Printed data should ignore pagination limit $printData = $button->generatePrintData($gridField); $rows = $printData->ItemRows; $this->assertEquals(42, $rows->count()); } } class GridFieldPrintButtonTest_DO extends DataObject { private static $db = array( 'Name' => 'Varchar' ); }