/**
  * 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));
 }