/** * Tests that order in columns works correct * * @param string $columnName * @dataProvider columnTitle */ public function testSorting($columnName) { $login = new Login($this); $login->setUsername(PHPUNIT_TESTSUITE_EXTENSION_SELENIUM_LOGIN)->setPassword(PHPUNIT_TESTSUITE_EXTENSION_SELENIUM_PASS)->submit(); $users = new Users($this); $users->changePageSize('last'); $columnId = $users->getColumnNumber($columnName); //test descending order $columnOrder = $users->sortBy($columnName, 'desc')->getColumn($columnId); if ($columnName == 'Birthday') { $dateArray = array(); foreach ($columnOrder as $value) { $date = strtotime($value); $dateArray[] = $date; } $columnOrder = $dateArray; } $sortedColumnOrder = $columnOrder; natcasesort($sortedColumnOrder); $sortedColumnOrder = array_reverse($sortedColumnOrder); $this->assertTrue($columnOrder === $sortedColumnOrder, print_r(array('expected' => $sortedColumnOrder, 'actual' => $columnOrder), true)); //change page size to 10 and refresh grid $users->changePageSize('first'); $users->sortBy($columnName, 'asc'); $columnOrder = $users->sortBy($columnName, 'desc')->getColumn($columnId); $this->assertTrue($columnOrder === array_slice($sortedColumnOrder, 0, 10), print_r(array('expected' => $sortedColumnOrder, 'actual' => $columnOrder), true)); //test ascending order $users->changePageSize('last'); $columnOrder = $users->sortBy($columnName, 'asc')->getColumn($columnId); if ($columnName == 'Birthday') { $dateArray = array(); foreach ($columnOrder as $value) { $date = strtotime($value); $dateArray[] = $date; } $columnOrder = $dateArray; } $sortedColumnOrder = $columnOrder; natcasesort($sortedColumnOrder); $this->assertTrue($columnOrder === $sortedColumnOrder, print_r(array('expected' => $sortedColumnOrder, 'actual' => $columnOrder), true)); //change page size to 10 and refresh grid $users->changePageSize('first'); $users->sortBy($columnName, 'desc'); $columnOrder = $users->sortBy($columnName, 'asc')->getColumn($columnId); $this->assertTrue($columnOrder === array_slice($sortedColumnOrder, 0, 10), print_r(array('expected' => $sortedColumnOrder, 'actual' => $columnOrder), true)); }