Пример #1
0
 /**
  * Runs a Selenium_TestCase, useful if we are running an interactive Test with assertions
  * @param array $configEntry Single test-node from XML
  * @param Codex_Xtest_Xtest_Selenium_TestCase $testObject Passed testObject, needs to implement doGeneralAssert
  */
 protected function doPageTest(array $configEntry, Codex_Xtest_Xtest_Selenium_TestCase $testObject)
 {
     /**
      * @var Codex_Xtest_Xtest_Pageobject_Frontend_Homepage $page
      */
     $page = $testObject->getPageObject('xtest/pageobject_frontend_homepage');
     $urlinfo = parse_url(Mage::getBaseUrl());
     $urlinfo['path'] = trim($urlinfo['path']) . $configEntry['url']['url'];
     if ($configEntry['url']['method'] === 'get') {
         $urlinfo['query'] = $configEntry['url']['params'];
     }
     $url = $this->http_build_url($urlinfo);
     $page->url($url);
     if (!empty($configEntry['clickon'])) {
         if (is_string($configEntry['clickon'])) {
             $elements = $page->findElementsByCssSelector($configEntry['clickon']);
             foreach ($elements as $element) {
                 $element->click();
             }
         } else {
             if (is_array($configEntry['clickon'])) {
                 foreach ($configEntry['clickon'] as $clickElement) {
                     $elements = $page->findElementsByCssSelector($clickElement);
                     foreach ($elements as $element) {
                         $element->click();
                     }
                 }
             }
         }
     }
     $responseBody = $page->source();
     if (is_array($configEntry['assert'])) {
         foreach ($configEntry['assert'] as $assert) {
             $assert = $this->stringParser($assert);
             $page->assertContains($assert, $responseBody, 'Assert failed: ' . $assert);
         }
     } else {
         $assert = $this->stringParser($configEntry['assert']);
         $page->assertContains($assert, $responseBody, 'Assert failed: ' . $assert);
     }
     $page->takeResponsiveScreenshots($configEntry['rendername']);
     $testObject->doGeneralAssert($responseBody);
 }