/**
  * @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 frontEndSingleArticleState_ChangeArticleState_ArticleStateChanged()
 {
     $salt = rand();
     $articleName = 'Test Article ' . $salt;
     $cfg = new SeleniumConfig();
     $urlHome = $this->cfg->host . $this->cfg->path . 'index.php';
     $homePage = $this->getPageObject('SiteContentFeaturedPage', true, $urlHome);
     $articleUrl = $this->cfg->host . $this->cfg->path . 'index.php/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, 'Uncategorised', array('text' => '<p>This is a test.</p>'));
     $articleId = $this->articleManagerPage->getFieldValues('ArticleEditPage', $articleName, array('ID'));
     $articleUrl = $this->cfg->host . $this->cfg->path . 'index.php/' . $articleId[0] . '-test-article-' . $salt;
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertTrue($singleArticlePage->isArticlePresent($articleName), 'Test Article Must be Present');
     $this->doAdminLogin();
     $articleManager = 'administrator/index.php?option=com_content';
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->changeArticleState($articleName, 'unpublished');
     $this->assertEquals('unpublished', $this->articleManagerPage->getState($articleName), 'Test Article should be unpublished');
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertFalse($singleArticlePage->isArticlePresent($articleName), 'Test Article Must not be Present');
     $this->doSiteLogin();
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertTrue($singleArticlePage->isEditPresent(), 'Edit Icons Must be Present');
     $this->doSiteLogout();
     $cpPage = $this->doAdminLogin();
     $this->articleManagerPage = $cpPage->clickMenu('Article Manager', 'ArticleManagerPage');
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->changeArticleState($articleName, 'published');
     $this->assertEquals('published', $this->articleManagerPage->getState($articleName), 'Test Article should be published');
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertTrue($singleArticlePage->isArticlePresent($articleName), 'Test Article Must be Present');
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->changeArticleState($articleName, 'archived');
     $this->assertEquals('archived', $this->articleManagerPage->getState($articleName), 'Test Article should be archived');
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertTrue($singleArticlePage->isArticlePresent($articleName), 'Test Article Must be Present');
     $this->driver->get($cfg->host . $cfg->path . $articleManager);
     $this->articleManagerPage = $this->getPageObject('ArticleManagerPage');
     $this->articleManagerPage->trashAndDelete($articleName);
     $this->driver->get($articleUrl);
     $singleArticlePage = $this->getPageObject('SiteSingleArticlePage', true, $articleUrl);
     $this->assertFalse($singleArticlePage->isArticlePresent($articleName), 'Test Article Must 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');
 }