silverstripe-framework/tests/php/Forms/GridField/GridFieldPrintButtonTest.php

53 lines
1.4 KiB
PHP
Raw Normal View History

<?php
2016-10-14 03:30:05 +02:00
namespace SilverStripe\Forms\Tests\GridField;
use SilverStripe\Dev\SapphireTest;
use SilverStripe\Control\Controller;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\Form;
use SilverStripe\Forms\GridField\GridFieldPrintButton;
use SilverStripe\Forms\GridField\GridFieldConfig;
use SilverStripe\Forms\GridField\GridFieldPaginator;
use SilverStripe\Forms\GridField\GridField;
2016-10-14 03:30:05 +02:00
use SilverStripe\Forms\Tests\GridField\GridFieldPrintButtonTest\TestObject;
class GridFieldPrintButtonTest extends SapphireTest {
protected $extraDataObjects = array(
2016-10-14 03:30:05 +02:00
TestObject::class
);
public function setUp() {
parent::setUp();
// 42 items
for($i = 1; $i <= 42; $i++) {
2016-10-14 03:30:05 +02:00
$obj = new TestObject();
$obj->Name = "Object {$i}";
$obj->write();
}
}
public function testLimit() {
2016-10-14 03:30:05 +02:00
$list = TestObject::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();
/** @skipUpgrade */
2016-10-14 03:30:05 +02:00
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());
}
}