function testPreservedSortOptionsInPaginationLink() { $item1 = $this->objFromFixture('TableListFieldTest_Obj', 'one'); $item2 = $this->objFromFixture('TableListFieldTest_Obj', 'two'); $item3 = $this->objFromFixture('TableListFieldTest_Obj', 'three'); $item4 = $this->objFromFixture('TableListFieldTest_Obj', 'four'); $item5 = $this->objFromFixture('TableListFieldTest_Obj', 'five'); /* With pagination enabled, only the first page of items should be shown */ $table = new TableListField("Tester", "TableListFieldTest_Obj", array("A" => "Col A", "B" => "Col B", "C" => "Col C", "D" => "Col D", "E" => "Col E")); // A TableListField must be inside a form for its links to be generated $form = new Form(new TableListFieldTest_TestController(), "TestForm", new FieldSet($table), new FieldSet()); $table->ShowPagination = true; $table->PageSize = 2; // first page & sort A column by ASC $_REQUEST['ctf']['Tester']['start'] = 0; $_REQUEST['ctf']['Tester']['sort'] = 'A'; $this->assertContains('&ctf[Tester][sort]=A', $table->NextLink()); $this->assertNotContains('ctf[Tester][dir]', $table->NextLink()); $this->assertContains('&ctf[Tester][sort]=A', $table->LastLink()); $this->assertNotContains('ctf[Tester][dir]', $table->LastLink()); // second page & sort A column by ASC $_REQUEST['ctf']['Tester']['start'] = 2; $this->assertContains('&ctf[Tester][sort]=A', $table->PrevLink()); $this->assertNotContains('&ctf[Tester][dir]', $table->PrevLink()); $this->assertContains('&ctf[Tester][sort]=A', $table->FirstLink()); $this->assertNotContains('&ctf[Tester][dir]', $table->FirstLink()); // first page & sort A column by DESC $_REQUEST['ctf']['Tester']['start'] = 0; $_REQUEST['ctf']['Tester']['sort'] = 'A'; $_REQUEST['ctf']['Tester']['dir'] = 'desc'; $this->assertContains('&ctf[Tester][sort]=A', $table->NextLink()); $this->assertContains('&ctf[Tester][dir]=desc', $table->NextLink()); $this->assertContains('&ctf[Tester][sort]=A', $table->LastLink()); $this->assertContains('&ctf[Tester][dir]=desc', $table->LastLink()); // second page & sort A column by DESC $_REQUEST['ctf']['Tester']['start'] = 2; $this->assertContains('&ctf[Tester][sort]=A', $table->PrevLink()); $this->assertContains('&ctf[Tester][dir]=desc', $table->PrevLink()); $this->assertContains('&ctf[Tester][sort]=A', $table->FirstLink()); $this->assertContains('&ctf[Tester][dir]=desc', $table->FirstLink()); unset($_REQUEST['ctf']); }