/**
  * @test
  */
 public function setFilter_TestFilters_ShouldFilterTags()
 {
     $articleName_1 = 'ABC_TEST_1';
     $articleName_2 = 'ABC_TEST_2';
     $this->articleManagerPage->addArticle($articleName_1);
     $message = $this->articleManagerPage->getAlertMessage();
     $this->assertTrue(strpos($message, 'Article successfully saved') >= 0, 'Article save should return success');
     $state = $this->articleManagerPage->getState($articleName_1);
     $this->assertEquals('published', $state, 'Initial state should be published');
     $this->articleManagerPage->addArticle($articleName_2);
     $message = $this->articleManagerPage->getAlertMessage();
     $this->assertTrue(strpos($message, 'Article successfully saved') >= 0, 'Article save should return success');
     $state = $this->articleManagerPage->getState($articleName_2);
     $this->assertEquals('published', $state, 'Initial state should be published');
     $this->articleManagerPage->changeArticleState($articleName_2, 'unpublished');
     $test = $this->articleManagerPage->setFilter('filter_published', 'Unpublished');
     $this->assertFalse($this->articleManagerPage->getRowNumber($articleName_1), 'Article should not show');
     $this->assertEquals(1, $this->articleManagerPage->getRowNumber($articleName_2), 'Article should be in row 1');
     $test = $this->articleManagerPage->setFilter('filter_published', 'Published');
     $this->assertFalse($this->articleManagerPage->getRowNumber($articleName_2), 'Article should not show');
     $this->assertEquals(1, $this->articleManagerPage->getRowNumber($articleName_1), 'Article should be in row 1');
     $this->articleManagerPage->setFilter('Select Status', 'Select Status');
     $this->articleManagerPage->trashAndDelete($articleName_1);
     $this->articleManagerPage->trashAndDelete($articleName_2);
 }
 /**
  * @test
  */
 public function frontEndEditArticle_ChangeArticleText_ArticleTextChanged()
 {
     $cfg = new SeleniumConfig();
     $checkingText = '<p>Testing Edit</p>';
     $validationText = 'Testing Edit';
     $salt = rand();
     $articleName = 'Test Article ' . $salt;
     $this->doAdminLogin();
     $articleManager = 'administrator/index.php?option=com_content';
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->addArticle($articleName, 'Sample Data-Articles', array('Featured' => 'Yes'));
     $this->doSiteLogin();
     $this->siteHomePage = $this->getPageObject('SiteContentFeaturedPage');
     $this->assertTrue($this->siteHomePage->isEditPresent(), 'Edit Icons Must be Present');
     // Edit the Article
     $this->siteHomePage->clickEditArticle($articleName);
     $this->articleEditPage = $this->getPageObject('SiteContentEditPage');
     $this->articleEditPage->editArticle($checkingText);
     $this->siteHomePage = $this->getPageObject('SiteContentFeaturedPage');
     $articleTexts = $this->siteHomePage->getArticleText();
     $this->assertTrue(in_array($validationText, $articleTexts), 'Text Must be Present');
     // Delete the Article
     $cpPage = $this->doAdminLogin();
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->trashAndDelete($articleName);
     $this->assertFalse($this->articleManagerPage->getRowNumber($articleName), 'Test Article should not be present');
 }
 /**
  * add featured article and check its existence
  *
  * @return void
  *
  * @test
  */
 public function addArticle_FeaturedArticle_ArticleAdded()
 {
     /*adding test category.*/
     $cfg = new SeleniumConfig();
     $this->doAdminLogin();
     $categoryManager = 'administrator/index.php?option=com_categories&extension=com_content';
     $this->driver->get($cfg->host . $cfg->path . $categoryManager);
     $salt = rand();
     $categoryName = 'category_ABC' . $salt;
     $this->categoryManagerPage = $this->getPageObject('CategoryManagerPage');
     $this->assertFalse($this->categoryManagerPage->getRowNumber($categoryName), 'Test Category should not be present');
     $this->categoryManagerPage->addCategory($categoryName);
     $message = $this->categoryManagerPage->getAlertMessage();
     $this->assertTrue(strpos($message, 'Category successfully saved') >= 0, 'Category save should return success');
     /*adding article of the test category*/
     $articleManager = 'administrator/index.php?option=com_content';
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $articleName = 'article_ABC' . $salt;
     $category = $categoryName;
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->assertFalse($this->articleManagerPage->getRowNumber($articleName), 'Test Article should not be present');
     $this->articleManagerPage->addArticle($articleName, $category, array('Featured' => 'Yes'));
     $message = $this->articleManagerPage->getAlertMessage();
     $this->assertTrue(strpos($message, 'Article successfully saved') >= 0, 'Article save should return success');
     /*confirming if the article is present in front end*/
     $cfg = new SeleniumConfig();
     $i = 0;
     $homePageUrl = 'index.php?limitstart=';
     $this->driver->get($cfg->host . $cfg->path . $homePageUrl . $i);
     $this->siteHomePage = $this->getPageObject('SiteContentFeaturedPage');
     $arrayTitles = $this->siteHomePage->getArticleTitles();
     $d = $this->driver;
     for ($i = 0; $i <= 4;) {
         if (in_array($articleName, $arrayTitles)) {
             break;
         } else {
             ++$i;
             $this->driver->get($cfg->host . $cfg->path . $homePageUrl . $i);
             $this->siteHomePage = $this->getPageObject('SiteContentFeaturedPage');
             $arrayTitles = $this->siteHomePage->getArticleTitles();
         }
     }
     /*delete test articles and category*/
     $cpPage = $this->doAdminLogin();
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->trashAndDelete($articleName);
     $this->assertFalse($this->articleManagerPage->getRowNumber($articleName), 'Test article should not be present');
     $this->driver->get($cfg->host . $cfg->path . $categoryManager);
     $this->categoryManagerPage->trashAndDelete($categoryName);
     $this->assertFalse($this->categoryManagerPage->getRowNumber($categoryName), 'Test Category should not be present');
 }
 /**
  * @test
  */
 public function changeArticleStatus_TestAtFrontEnd()
 {
     $cfg = new SeleniumConfig();
     $this->driver->get($cfg->host . $cfg->path);
     $this->assertTrue($this->driver->findElement(By::xPath("//h2//a[contains(text(), 'Professionals')]"))->isDisplayed(), 'Professionals Must be Present');
     $article_manager = 'administrator/index.php?option=com_content';
     $this->driver->get($cfg->host . $cfg->path . $article_manager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->changeArticleState('Professionals', 'unpublished');
     $this->driver->get($cfg->host . $cfg->path);
     $arrayElement = $this->driver->findElements(By::xPath("//h2//a[contains(text(), 'Professionals')]"));
     $this->assertEquals(count($arrayElement), 0, 'Professionals Must Not be Present');
     $this->driver->get($cfg->host . $cfg->path . $article_manager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->changeArticleState('Professionals', 'published');
     $this->driver->get($cfg->host . $cfg->path);
     $this->assertTrue($this->driver->findElement(By::xPath("//h2//a[contains(text(), 'Professionals')]"))->isDisplayed(), 'Professionals Must be Present');
 }