/** * Checks the contents of the session table and compares it against an expected * result. * * @param array $expectedSessions list of all the expected sessions. * * @return void */ private function _validateSessionTableContents($expectedSessions) { $sessionTable = $this->webDriver->findElements(WebDriverBy::ClassName('dynamictable')); $actualSessions = $sessionTable[1]->findElements(WebDriverBy::xpath('.//tbody//tr')); $this->assertEquals(count($actualSessions), count($expectedSessions), "Number of visits should be " . count($expectedSessions) . ", not " . count($actualSessions)); for ($i = 0; $i < count($actualSessions); $i++) { $elements = $actualSessions[$i]->findElements(WebDriverBy::xpath('.//td')); $actualSession = array(); foreach ($elements as $e) { $actualSession[] = $e->getText(); } $this->assertEquals($expectedSessions[$i], $actualSession, "Sessions at row {$i} differ"); } }
/** * Compares the content of the candidate table with an expected content. * * @param string $tableName name of the HTML table. * @param string $expectedRows array of candidates that the table should contain. * * @return void */ private function _assertCandidateTableContents($tableName, $expectedRows) { if (is_null($expectedRows)) { $wait = new WebDriverWait($this->webDriver, 15); $wait->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::ClassName('no-result-found-panel'))); $element = $this->webDriver->findElement(WebDriverBy::ClassName('no-result-found-panel')); $this->assertContains('No result found', $element->getText()); } else { $wait = new WebDriverWait($this->webDriver, 15); $wait->until(WebDriverExpectedCondition::presenceOfElementLocated(WebDriverBy::Id('dynamictable'))); $dataTable = $this->webDriver->findElement(WebDriverBy::Id('dynamictable')); $actualRows = $dataTable->findElements(WebDriverBy::xpath('.//tbody//tr')); $this->assertEquals(count($actualRows), count($expectedRows), "Number of candidates returned should be " . count($expectedRows) . ", not " . count($actualRows)); for ($i = 0; $i < count($actualRows); $i++) { $elements = $actualRows[$i]->findElements(WebDriverBy::xpath('.//td')); $actualColumns = array(); foreach ($elements as $e) { $actualColumns[] = $e->getText(); } $expectedColumns = $expectedRows[$i]; $this->assertEquals($actualColumns, $expectedColumns, "Candidates at row {$i} differ"); } } }
/** * Compares the content of the candidate table with an expected content. * * @param string $className class name of the HTML table. * @param string $expectedRows array of candidates that the table should contain. * * @return void */ private function _assertUserTableContents($className, $expectedRows) { $dataTable = $this->safeFindElement(WebDriverBy::ClassName($className)); if (is_null($expectedRows)) { $this->assertContains('No users found', $dataTable->getText()); } else { $actualRows = $dataTable->findElements(WebDriverBy::xpath('.//tbody//tr')); $this->assertEquals(count($actualRows), count($expectedRows), "Number of users returned should be " . count($expectedRows) . ", not " . count($actualRows)); for ($i = 1; $i <= count($actualRows); $i++) { $elements = $actualRows[$i - 1]->findElements(WebDriverBy::xpath('.//td')); $actualColumns = array(); foreach ($elements as $e) { $actualColumns[] = $e->getText(); } $expectedColumns = $expectedRows[$i - 1]; array_unshift($expectedColumns, "{$i}"); $this->assertEquals($actualColumns, $expectedColumns, "Users at row {$i} differ"); } } }