2015-09-30 19:29:14 +02:00
< ? php
/**
* @ package Joomla . Administrator
* @ subpackage com_weblinks
*
* @ copyright Copyright ( C ) 2005 - 2015 Open Source Matters , Inc . All rights reserved .
* @ license GNU General Public License version 2 or later ; see LICENSE . txt
*/
class AdministratorCategoriesCest
{
2015-10-31 15:08:52 +01:00
/**
* Function to delete the menuItem
*
* @ param string $menuItem Title of the menuItem which is to be deleted
* @ return void
*/
private function deleteMenuItem ( AcceptanceTester $I , $menuItem )
2015-10-31 12:44:29 +01:00
{
2015-10-31 15:08:52 +01:00
$I -> amGoingTo ( 'Delete the just saved MenuItem' );
$I -> amOnPage ( '/administrator/index.php?option=com_menus&view=items' );
$I -> searchForItem ( $menuItem );
$I -> checkAllResults ();
$I -> clickToolbarButton ( 'Trash' );
$I -> expectTo ( 'see a success message and the menuItem removed from the list' );
$I -> see ( '1 menu item successfully trashed.' , [ 'id' => 'system-message-container' ]);
$I -> searchForItem ( $menuItem );
$I -> setFilter ( 'select status' , 'Trashed' );
$I -> checkAllResults ();
$I -> clickToolbarButton ( 'empty trash' );
$I -> see ( " 1 menu item successfully deleted. " , [ 'id' => 'system-message-container' ]);
}
2015-10-31 12:44:29 +01:00
2015-10-31 15:08:52 +01:00
/**
* Creates a weblink with category
*
* @ param string $title The title for the weblink
* @ param string $url The url for the
* @ param string $cat The category of the weblink
*
*/
private function createWeblinkWithCategory ( AcceptanceTester $I , $title , $url , $cat )
{
$I -> comment ( 'I navigate to Weblinks page in /administrator/' );
$I -> amOnPage ( 'administrator/index.php?option=com_weblinks' );
$I -> waitForText ( 'Web Links' , '30' , [ 'css' => 'h1' ]);
$I -> comment ( 'I see weblinks page' );
$I -> comment ( 'I try to save a weblink with a filled title and URL' );
$I -> click ( 'New' );
$I -> waitForText ( 'Web Link: New' , '30' , [ 'css' => 'h1' ]);
$I -> fillField ([ 'id' => 'jform_title' ], $title );
$I -> fillField ([ 'id' => 'jform_url' ], $url );
$I -> selectOptionInChosen ( 'Category' , " - " . $cat );
$I -> click ([ 'xpath' => " //button[@onclick= \" Joomla.submitbutton('weblink.save') \" ] " ]);
$I -> waitForText ( 'Web link successfully saved' , '30' , [ 'id' => 'system-message-container' ]);
}
2015-10-31 12:44:29 +01:00
2015-10-31 15:08:52 +01:00
private function deleteWeblink ( AcceptanceTester $I , $weblinkTitle )
{
$I -> amGoingTo ( 'Delete the just saved Weblink' );
$I -> amOnPage ( '/administrator/index.php?option=com_weblinks' );
$I -> searchForItem ( $weblinkTitle );
$I -> checkAllResults ();
$I -> clickToolbarButton ( 'Trash' );
$I -> expectTo ( 'see a success message and the weblink removed from the list' );
$I -> see ( '1 web link successfully trashed.' , [ 'id' => 'system-message-container' ]);
$I -> selectOptionInChosen ( '- Select Status -' , 'Trashed' );
$I -> searchForItem ( $weblinkTitle );
$I -> checkAllResults ();
$I -> clickToolbarButton ( 'empty trash' );
$I -> see ( " 1 web link successfully deleted. " , [ 'id' => 'system-message-container' ]);
2015-10-31 12:44:29 +01:00
}
2015-10-31 15:08:52 +01:00
2015-10-29 15:17:53 +05:30
public function administratorCreateCategory ( \Step\Acceptance\category $I )
2015-09-30 19:29:14 +02:00
{
$I -> am ( 'Administrator' );
2015-10-29 15:17:53 +05:30
$categoryName = 'automated testing' . rand ( 1 , 100 );
2015-09-30 19:29:14 +02:00
$I -> wantToTest ( 'Category creation in /administrator/' );
$I -> doAdministratorLogin ();
2015-10-29 15:17:53 +05:30
$I -> amGoingTo ( 'Navigate to Categories page in /administrator/ and create a Category' );
$I -> createCategory ( $categoryName );
$I -> amGoingTo ( 'Delete the Category which was created' );
$I -> trashCategory ( $categoryName );
2015-09-30 19:29:14 +02:00
}
public function administratorCreateCategoryWithoutTitleFails ( AcceptanceTester $I )
{
$I -> am ( 'Administrator' );
$I -> wantToTest ( 'Category creation in /administrator/ without title' );
$I -> doAdministratorLogin ();
$I -> amGoingTo ( 'Navigate to Categories page in /administrator/' );
$I -> amOnPage ( 'administrator/index.php?option=com_categories&extension=com_weblinks' );
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
$I -> expectTo ( 'see categories page' );
$I -> amGoingTo ( 'try to save a category with empty title and it should fail' );
$I -> click ([ 'xpath' => " //button[@onclick= \" Joomla.submitbutton('category.add') \" ] " ]);
2015-10-29 10:13:54 +01:00
$I -> waitForText ( 'Weblinks: New Category' , '30' , [ 'css' => 'h1' ]);
2015-09-30 19:29:14 +02:00
$I -> click ([ 'xpath' => " //button[@onclick= \" Joomla.submitbutton('category.apply') \" ] " ]);
$I -> expectTo ( 'see an error when trying to save a category without title' );
$I -> see ( 'Invalid field: Title' , [ 'id' => 'system-message-container' ]);
}
2015-10-29 15:17:53 +05:30
public function administratorPublishCategory ( \Step\Acceptance\category $I )
2015-09-30 19:29:14 +02:00
{
$I -> am ( 'Administrator' );
2015-10-29 15:17:53 +05:30
$categoryName = 'automated testing pub' . rand ( 1 , 100 );
$I -> wantToTest ( 'Category creation in /administrator/' );
2015-09-30 19:29:14 +02:00
2015-10-29 15:17:53 +05:30
$I -> doAdministratorLogin ();
2015-09-30 19:29:14 +02:00
2015-10-29 15:17:53 +05:30
$I -> amGoingTo ( 'Navigate to Categories page in /administrator/ and create a new Category' );
$I -> createCategory ( $categoryName );
2015-09-30 19:29:14 +02:00
2015-10-29 15:17:53 +05:30
$I -> searchForItem ( $categoryName );
2015-09-30 19:29:14 +02:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
2015-10-29 15:17:53 +05:30
$I -> checkAllResults ();
2015-09-30 19:29:14 +02:00
$I -> amGoingTo ( 'try to publish a weblink category' );
2015-10-29 15:17:53 +05:30
$I -> clickToolbarButton ( 'publish' );
2015-09-30 19:29:14 +02:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
$I -> expectTo ( 'see a success message after publishing the category' );
$I -> see ( '1 category successfully published.' , [ 'id' => 'system-message-container' ]);
2015-10-29 15:17:53 +05:30
$I -> amGoingTo ( 'Delete the Category which was created' );
$I -> trashCategory ( $categoryName );
2015-09-30 19:29:14 +02:00
}
2015-10-29 15:17:53 +05:30
public function administratorUnpublishCategory ( \Step\Acceptance\category $I )
2015-09-30 19:29:14 +02:00
{
$I -> am ( 'Administrator' );
2015-10-29 15:17:53 +05:30
$categoryName = 'automated testing unpub' . rand ( 1 , 100 );
$I -> wantToTest ( 'Category creation in /administrator/' );
2015-09-30 19:29:14 +02:00
$I -> doAdministratorLogin ();
$I -> amGoingTo ( 'Navigate to Categories page in /administrator/' );
2015-10-29 15:17:53 +05:30
$I -> createCategory ( $categoryName );
2015-09-30 19:29:14 +02:00
2015-10-29 15:17:53 +05:30
$I -> searchForItem ( $categoryName );
2015-09-30 19:29:14 +02:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
2015-10-29 15:17:53 +05:30
$I -> checkAllResults ();
2015-09-30 19:29:14 +02:00
2015-10-29 15:17:53 +05:30
//publish the category
$I -> amGoingTo ( 'try to publish a weblink category' );
$I -> clickToolbarButton ( 'publish' );
2015-09-30 19:29:14 +02:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
2015-10-29 15:17:53 +05:30
$I -> expectTo ( 'see a success message after publishing the category' );
2015-09-30 19:29:14 +02:00
$I -> see ( '1 category successfully published.' , [ 'id' => 'system-message-container' ]);
// Unpublish it again
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
2015-10-29 15:17:53 +05:30
$I -> checkAllResults ();
2015-09-30 19:29:14 +02:00
$I -> amGoingTo ( 'Try to unpublish a weblink category' );
2015-10-29 15:17:53 +05:30
$I -> clickToolbarButton ( 'unpublish' );
2015-09-30 19:29:14 +02:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
$I -> expectTo ( 'See a success message after unpublishing the category' );
$I -> see ( '1 category successfully unpublished' , [ 'id' => 'system-message-container' ]);
2015-10-29 15:17:53 +05:30
//delete the category
$I -> amGoingTo ( 'Delete the Category which was created' );
$I -> trashCategory ( $categoryName );
2015-09-30 19:29:14 +02:00
}
2015-10-31 15:08:52 +01:00
2015-10-30 15:25:00 +01:00
public function administratorArchiveCategory ( \Step\Acceptance\category $I )
2015-10-29 13:36:44 +01:00
{
$I -> am ( 'Administrator' );
$I -> wantToTest ( 'Archiving Category in /administrator/' );
$I -> doAdministratorLogin ();
2015-10-31 15:08:52 +01:00
$salt = rand ( 1 , 100 );
$I -> createCategory ( 'automated testing arch' . $salt );
2015-10-29 13:36:44 +01:00
$I -> amGoingTo ( 'Search for automated testing' );
2015-10-31 15:08:52 +01:00
$I -> fillField ([ 'xpath' => " //input[@id= \" filter_search \" ] " ], " automated testing arch " . $salt . " \n " );
2015-10-29 13:36:44 +01:00
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
$I -> amGoingTo ( 'Select the first weblink' );
$I -> click ([ 'xpath' => " //input[@id= \" cb0 \" ] " ]);
$I -> amGoingTo ( 'try to archive a weblink category' );
$I -> click ([ 'xpath' => " //button[@onclick= \" if (document.adminForm.boxchecked.value==0) { alert('Please first make a selection from the list.');}else { Joomla.submitbutton('categories.archive')} \" ] " ]);
$I -> waitForText ( 'Weblinks: Categories' , '30' , [ 'css' => 'h1' ]);
2015-10-31 15:08:52 +01:00
$I -> expectTo ( 'see a success message after Archiving the category' );
$I -> see ( '1 category successfully archived.' , [ 'id' => 'system-message-container' ]);
$I -> setFilter ( 'select status' , 'Archived' );
//$I->searchForItem('automated testing arch'.$salt);
$I -> trashCategory ( 'automated testing arch' . $salt );
}
public function administratorMenuWeblinkCategory ( \Step\Acceptance\category $I )
{
$I -> am ( 'Administrator' );
$salt = rand ( 1 , 100 );
$categoryName = 'automated testing' . $salt ;
$I -> doAdministratorLogin ();
$I -> amGoingTo ( 'Navigate to Categories page in /administrator/ and create a Category' );
$I -> createCategory ( $categoryName );
$title = 'weblink' . $salt ;
$url = 'www.google.com' ;
$this -> createWeblinkWithCategory ( $I , $title , $url , $categoryName );
$menuTitle = 'menuItem' . $salt ;
$I -> createMenuItem ( $menuTitle , $menuCategory = 'Weblinks' , $menuItem = 'List Web Links in a Category' , $menu = 'Main Menu' , $language = 'All' );
$I -> selectOptionInChosen ( 'Select a Category' , $categoryName );
$I -> click ( 'Save & Close' );
// Go to the frontend
$I -> comment ( 'I want to check if the menu entry exists in the frontend' );
$I -> amOnPage ( 'index.php/' );
$I -> click ([ 'link' => $menuTitle ]);
$I -> waitForText ( $categoryName , 60 , [ 'css' => 'h2' ]);
$I -> seeElement ([ 'xpath' => " //a[contains(text(),' " . $title . " ')] " ]);
//Go to backend
$I -> amOnPage ( '/administrator/' );
$this -> deleteWeblink ( $I , $title );
$I -> trashCategory ( $categoryName );
$this -> deleteMenuItem ( $I , $menuTitle );
2015-10-29 13:36:44 +01:00
}
2015-10-31 15:08:52 +01:00
}