示例#1
0
 public function editCategoryNotVisibleTime(AcceptanceTester $I)
 {
     $I->logInAsAnAdmin();
     $I->amOnEditCategory(CI_EDITABLE_CATEGORY_ID);
     $title = time() . 'title';
     $I->fillField('title', $title);
     $I->checkOption('#exposed');
     $from = date_time(time() - 10000);
     $until = date_time(time() - 100);
     $I->fillField('available_from', $from);
     $I->fillField('available_until', $until);
     $I->click('Save changes');
     $I->waitForText('Edit category');
     $I->seeCheckboxIsChecked('#exposed');
     $I->seeInField('available_from', $from);
     $I->seeInField('available_until', $until);
     $I->amOnPage('/challenges');
     $I->see($title);
     $I->amOnPage('/challenges?category=' . to_permalink($title));
     $I->see('Category unavailable');
     $I->see('This category is not available. It is open from ' . $from);
     $I->see('until ' . $until);
     $I->amOnAdminHome();
     $I->see($title);
 }
 public function administratorCreateCategoryWithoutTitleFails(AcceptanceTester $I)
 {
     $I->am('Administrator');
     $I->wantToTest('Category creation in /administrator/ without title fails');
     $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', '60', ['css' => 'h1']);
     $I->expectTo('see categories page');
     $I->amGoingTo('try to save a category with empty title and it should fail');
     $I->clickToolbarButton('new');
     $I->waitForText('Weblinks: New Category', '60', ['css' => 'h1']);
     $I->clickToolbarButton('save');
     $I->expectTo('see an error when trying to save a category without title');
     $I->see('Invalid field:  Title', ['id' => 'system-message-container']);
 }
示例#3
0
 /**
  * @depends deleteNewsNoTickConfirmation
  */
 public function deleteNewsTickConfirmation(AcceptanceTester $I)
 {
     $I->logInAsAnAdmin();
     $I->amOnListNews();
     $I->click('Edit');
     $I->waitForText('Edit news item');
     $I->seeInCurrentUrl('/edit_news');
     $I->checkOption('#delete_confirmation');
     $I->click('Delete news item');
     $I->seeInCurrentUrl('/list_news');
     $I->dontSee('Edit');
 }
 public function administratorUnpublishCategory(AcceptanceTester $I)
 {
     $I->am('Administrator');
     $I->wantToTest('Category unpublishing in /administrator/');
     $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->checkForPhpNoticesOrWarnings();
     $I->amGoingTo('try to save a category with a filled title');
     $I->click(['xpath' => "//button[@onclick=\"Joomla.submitbutton('category.add')\"]"]);
     $I->waitForText('Category Manager: Add A New Weblinks Category', '30', ['css' => 'h1']);
     $I->fillField(['id' => 'jform_title'], 'automated testing unpub' . rand(1, 100));
     $I->click(['xpath' => "//button[@onclick=\"Joomla.submitbutton('category.save')\"]"]);
     $I->expectTo('see a success message after saving the category');
     $I->see('Category successfully saved', ['id' => 'system-message-container']);
     $I->amGoingTo('Search for automated testing');
     $I->fillField(['xpath' => "//input[@id=\"filter_search\"]"], "automated testing unpub" . "\n");
     $I->waitForText('Weblinks: Categories', '30', ['css' => 'h1']);
     $I->amGoingTo('Select the first weblink');
     $I->click(['xpath' => "//input[@id=\"cb0\"]"]);
     $I->amGoingTo('Try to publish 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.publish')}\"]"]);
     $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']);
     // Unpublish it again
     $I->waitForText('Weblinks: Categories', '30', ['css' => 'h1']);
     $I->amGoingTo('Select the first weblink');
     $I->click(['xpath' => "//input[@id=\"cb0\"]"]);
     $I->amGoingTo('Try to unpublish 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.unpublish')}\"]"]);
     $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']);
 }
示例#5
0
 /**
  * @depends installCmc
  */
 public function initializeCmcSettings(\AcceptanceTester $I)
 {
     $I->doAdministratorLogin();
     $I->comment('Mailchimp API Key from acceptance.suite.yml (see _support/AcceptanceHelper.php)');
     $key = $I->getConfiguration('api_key');
     $I->amGoingTo('Navigate to CMC page in /administrator/');
     $I->amOnPage('administrator/index.php?option=com_cmc&view=cpanel');
     // Wait for text dashboard - wait for text not working
     $I->waitForElementVisible('#ctitle');
     $I->checkForPhpNoticesOrWarnings();
     // Options
     $I->click('Options');
     $I->waitForText('Configuration', '30', ['css' => 'h1']);
     $I->fillField(['id' => 'jform_api_key'], $key);
     $I->click('Save & Close');
     // Basck in the dashboard
     $I->waitForElementVisible('#ctitle');
     $I->doAdministratorLogout();
 }
示例#6
0
 private function savePostInNewGroupOnCard(\AcceptanceTester $I)
 {
     $I->wantTo('save post in new group on card');
     $I->amOnPage('/');
     $I->click('.new.btn-default');
     $I->waitForElement('.save[data-id="600"]', 10);
     $I->click('.save[data-id="600"]');
     $I->waitForElement('a.create-save', 10);
     $I->see('group-3 for user 100');
     $I->click('a.create-save');
     $I->waitForElement('form.savegroup-create', 10);
     $I->fillField('form.savegroup-create input[name="name"]', 'yay');
     $I->click('form.savegroup-create .btn-primary');
     $I->waitForElementNotVisible('form.savegroup-create', 10);
     $I->amOnPage('/user1/savegroups');
     $I->waitForText('yay', 10);
     $I->amOnPage('/user1/savegroups/yay');
     $I->waitForElement('.post[data-id="600"]', 10);
     $I->click('a.edit-savegroups');
     $I->waitForElement('button.delete-savegroups', 10);
     $I->click('button.delete-savegroups');
     $I->waitForElement('#modal-3 .btn-primary', 10);
     $I->click('#modal-3 .btn-primary');
     $I->waitForElementNotVisible('#modal-3 .btn-primary', 10);
     $I->amOnPage('/user1/savegroups');
     $I->waitForText('Uncategorized', 10);
     $I->dontsee('yay');
     // delete post 600 in group 500
     //$this->db->real_query('DELETE FROM `shoppyst`.`save_group_post` WHERE `save_group_post`.`save_group_id` = 500 AND `save_group_post`.`post_id` = 600');
 }
示例#7
0
$I->fillField('order_tel01', '00');
$I->fillField('order_tel02', '0000');
$I->fillField('order_tel03', '0000');
$I->fillField('order_email', '*****@*****.**');
$I->fillField('order_email02', '*****@*****.**');
$I->click('input[name="order_sex"][value="1"]');
$I->click('上記のお届け先のみに送る');
$I->click('input[name="payment_id"][value="5"]');
$I->click('次へ');
$I->click('次へ');
$I->waitForElement('#WP_checkoutBox', 5);
$I->executeJS('WebPay.testMode = true');
$I->see('クレジットカード決済');
$I->click('カードで支払う');
$I->fillField('#WP_cardNumber', '4242 4242 4242 4242');
$I->selectOption('#WP_expMonth', '12');
$I->selectOption('#WP_expYear', '19');
$I->fillField('#WP_name', 'TEST TEST');
$I->fillField('#WP_cvc', '123');
$I->pushMockChargeResponse(['captured' => true]);
$I->click('#WP_sendButton');
$I->waitForText('Test shopの商品をご購入いただき、ありがとうございました', 5);
$I->loadRequest();
$I->seeInData('amount', 2782);
$I->seeInData('card');
$I->seeInData('currency', 'jpy');
$I->seeInData('description', '1');
$admin->does(function (AcceptanceTester $I) {
    $steps = new AcceptanceTester\AdminSteps($I);
    $steps->seeLastOrder(['customer_id' => null, 'payment_id' => 'クレジットカード決済', 'status' => '入金済み']);
});
<?php

/**
* @package     redCORE
* @subpackage  Cept
* @copyright   Copyright (C) 2008 - 2015 redCOMPONENT.com. All rights reserved.
* @license     GNU General Public License version 2 or later; see LICENSE.txt
*/
// Load the Step Object Page
$I = new \AcceptanceTester($scenario);
$I = new AcceptanceTester($scenario);
$I->wantTo('Uninstall redCORE Extension');
$I->doAdministratorLogin();
$I->amOnPage('/administrator/index.php?option=com_installer&view=manage');
$I->waitForText('Extensions: Manage', 30, ['css' => 'H1']);
$I->fillField('#filter_search', 'redCORE - component');
$I->click(['xpath' => "//button[@type='submit' and @data-original-title='Search']"]);
$I->waitForElement(['id' => 'manageList']);
$I->click(['xpath' => "//input[@id='cb0']"]);
$I->click(['xpath' => "//div[@id='toolbar-delete']/button"]);
$I->waitForText('Uninstalling the component was successful', 30, ['id' => 'system-message-container']);
$I->see('Uninstalling the component was successful', ['id' => 'system-message-container']);
$I->fillField(['id' => 'filter_search'], 'redCORE - component');
$I->click(['xpath' => "//button[@type='submit' and @data-original-title='Search']"]);
$I->waitForText('There are no extensions installed matching your query.', 30, ['class' => 'alert-no-items']);
$I->see('There are no extensions installed matching your query.', ['class' => 'alert-no-items']);
<?php

/**
 * @package     redCORE
 * @subpackage  Cept
 * @copyright   Copyright (C) 2008 - 2015 redCOMPONENT.com. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */
// Load the Step Object Page
$I = new \AcceptanceTester($scenario);
$I->wantToTest('Activate the default webservices available in redCORE');
$I->doAdministratorLogin();
$I->comment('I enable basic authentication');
$I->amOnPage('administrator/index.php?option=com_plugins');
$I->waitForText('Plugins', 30, ['css' => 'H1']);
$I->fillField(['id' => 'filter_search'], 'redcore - system plugin');
$I->click(['xpath' => "//div[@id='filter-bar']/div[2]/button"]);
// search button
$I->click(['link' => 'redCORE - System plugin']);
$I->waitForText('Plugins: redCORE - System plugin', 30, ['css' => 'h1']);
$I->click(['link' => 'Webservice options']);
$I->selectOptionInRadioField('Enable webservices', 'Yes');
$I->selectOptionInRadioField('Enable SOAP Server', 'Yes');
$I->selectOptionInChosen('Check user permission against', 'Joomla - Use already defined authorization checks in Joomla');
$I->click(['xpath' => "//div[@id='toolbar-apply']/button"]);
$I->waitForText('Plugin successfully saved.', 30, ['id' => 'system-message-container']);
$I->amOnPage('administrator/index.php?option=com_redcore&view=webservices');
$I->waitForText('Webservice Manager', 30, ['css' => 'H1']);
$I->click(['class' => 'lc-not_installed_webservices']);
$I->click(['class' => 'lc-install_all_webservices']);
$I->waitForElement(['id' => 'oauthClientsList'], 30);
 public function administratorCreateWeblinkWithoutTitleFails(AcceptanceTester $I)
 {
     $I->am('Administrator');
     $I->wantToTest('Weblink creation without title fails in /administrator/');
     $I->doAdministratorLogin();
     $I->amGoingTo('Navigate to Weblinks page in /administrator/');
     $I->amOnPage('administrator/index.php?option=com_weblinks');
     $I->waitForText('Web Links', '30', ['css' => 'h1']);
     $I->expectTo('see weblinks page');
     $I->checkForPhpNoticesOrWarnings();
     $I->amGoingTo('try to save a weblink with empty title and it should fail');
     $I->click(['xpath' => "//button[@onclick=\"Joomla.submitbutton('weblink.add')\"]"]);
     $I->waitForText('Web Link: New', '30', ['css' => 'h1']);
     $I->click(['xpath' => "//button[@onclick=\"Joomla.submitbutton('weblink.apply')\"]"]);
     $I->expectTo('see an error when trying to save a weblink without title and without URL');
     $I->see('Invalid field:  Title', ['id' => 'system-message-container']);
     $I->see('Invalid field:  URL', ['id' => 'system-message-container']);
 }
示例#11
0
 /**
  * Checking current parameters in frontend 
  * first time goes "processing order" page by clicking, other times goes to "processing order" page immediately
  * if you want to skip verifying of some parameters type null
  * verify one payment if string or many if array transmitted
  * 
  * @version 1.1
  * 
  * @param object            $I              Controller
  * @param string            $DeliveryName           Delivery name
  * @param string            $description    Description
  * @param float|int|string  $price          Delivery price
  * @param float|int|string  $freefrom       Delivery free from
  * @param string            $message        Delivery sum specified message
  * @param string|array      $pays           Delivery Payment methods, which will included, if passed string : "_" - delimiter for few methods
  * @param string            $selectpay      Pass to select method, confirm the order and verify payment
  * @return void
  */
 protected function CheckInFrontEnd(AcceptanceTester $I, $DeliveryName, $description = null, $price = null, $freefrom = null, $message = null, $pays = null, $selectpay = null)
 {
     static $WasCalled = FALSE;
     if (!$WasCalled) {
         $I->amOnPage('/shop/product/mobilnyi-telefon-sony-xperia-v-lt25i-black');
         /**
          * @var string buy          button "buy"
          * @var string basket       button "into basket"
          * @var string $Attribute1  class of "buy" button
          */
         $buy = "//div[@class='frame-prices-buy f-s_0']//form/div[3]";
         //button "buy"
         $basket = "//div[@class='frame-prices-buy f-s_0']//form/div[2]";
         //button "into basket"
         $Attribute1 = $I->grabAttributeFrom($buy, 'class');
         //class of "buy" button
         //$Attribute2 = $I->grabAttributeFrom($basket,'class');              //class of "into basket" button
         $I->wait(5);
         $Attribute1 == 'btn-buy-p btn-buy' ? $I->click($buy) : $I->click($basket);
         $I->waitForElementVisible("//*[@id='popupCart']");
         $I->wait(3);
         $I->click(".btn-cart.btn-cart-p.f_r");
     } else {
         $I->amOnPage("/shop/cart");
     }
     $WasCalled = TRUE;
     $present = FALSE;
     $I->waitForText('Оформление заказа');
     $DeliveriesInProcessingOrderPageAmount = $I->grabClassCount($I, 'name-count');
     for ($j = 1; $j <= $DeliveriesInProcessingOrderPageAmount; ++$j) {
         $GrabbedName = $I->grabTextFrom("//div[@class='frame-radio']/div[{$j}]//span[@class='text-el']");
         if ($GrabbedName == $DeliveryName) {
             $present = TRUE;
             break;
         }
     }
     $present ? $I->assertEquals($DeliveryName, $GrabbedName) : $I->fail("Delivery method isn't present in front end");
     if ($description) {
         $GrabbedDescription = $I->grabAttributeFrom("//div[@class='frame-radio']/div[{$j}]//span[@class='icon_ask']", 'data-title');
         $I->assertEquals($GrabbedDescription, $description, "description is the same as desired");
     }
     if ($price) {
         $GrabbedPrice = $I->grabTextFrom("//div[@class='frame-radio']/div[{$j}]/div[@class='help-block']/div[1]");
         $GrabbedPrice = preg_replace('/[^0-9.]*/u', '', $GrabbedPrice);
         $price = ceil($price);
         $I->assertEquals($GrabbedPrice, $price, "price is the same as desired");
     }
     if ($freefrom) {
         $Grabbedfreefrom = $I->grabTextFrom("//div[@class='frame-radio']/div[{$j}]/div[@class='help-block']/div[2]");
         $Grabbedfreefrom = preg_replace('/[^0-9.]*/u', '', $Grabbedfreefrom);
         $freefrom = ceil($freefrom);
         $I->assertEquals($Grabbedfreefrom, $freefrom, "price is the same as desired");
     }
     if ($message) {
         $Cmessage = $I->grabTextFrom("//div[@class='frame-radio']/div[{$j}]/div[@class='help-block']");
         $I->comment($Cmessage);
         $I->assertEquals($Cmessage, $message, "price specified messege is the same as desired");
     }
     if ($pays) {
         //            $JQScrollToclick = "$('html,body').animate({scrollTop:$('div.frame-radio>div:nth-child($j)').offset().top});";
         $I->scrollToElement($I, "div[class=\\'frame-radio\\'] div:nth-child(1) span[class=\\'text-el\\']");
         //scroll for click
         $I->wait(5);
         $I->click("//div[@class='frame-radio']/div[{$j}]//span[@class='text-el']");
         $I->scrollToElement($I, '.frame-payment.p_r');
         if ($pays == 'off') {
             $I->waitForText('Нет способов оплаты', NULL, '//div[@class="frame-form-field"]/div[@class="help-block"]');
             $I->see('Нет способов оплаты', '//div[@class="frame-form-field"]/div[@class="help-block"]');
         } else {
             $I->waitForElementVisible("#cuselFrame-paymentMethod");
             $I->click(".cuselText");
             foreach ((array) $pays as $key => $pay) {
                 $GrabbedPay = $I->grabTextFrom("//div[@id='cusel-scroll-paymentMethod']/span[{$key}+1]");
                 $I->assertEquals($GrabbedPay, $pay);
             }
         }
     }
     if (isset($selectpay)) {
         //$JQScrollToclick = "$('html,body').animate({scrollTop:$('div.frame-radio>div:nth-child($j)').offset().top});";
         $I->scrollToElement($I, "div[class=\\'frame-radio\\'] div:nth-child(1) span[class=\\'text-el\\']");
         //scroll for click
         $I->wait(5);
         $I->click("//div[@class='frame-radio']/div[{$j}]//span[@class='text-el']");
         $I->scrollToElement($I, '.frame-payment.p_r');
         $I->wait(5);
         $I->click("#cuselFrame-paymentMethod");
         //White spaces added to method in "select"
         //Read text ,trim then verify , if true click
         $I->grabTextFrom("{$cssOrXPathOrRegex}");
         $I->click(" " . $selectpay . " ");
         $I->wait(5);
     }
 }
 * @package     redCORE
 * @subpackage  Cept
 * @copyright   Copyright (C) 2008 - 2015 redCOMPONENT.com. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */
// Load the Step Object Page
$I = new \AcceptanceTester($scenario);
$I->wantToTest(' that there are no Warnings or Notices in redCORE');
$I->doAdministratorLogin();
$I->wantTo('Activate redCORE system plugin features');
$I->amOnPage('administrator/index.php?option=com_plugins');
$I->fillField(['id' => 'filter_search'], 'redcore - system plugin');
$I->click(['xpath' => "//div[@id='filter-bar']/div[2]/button"]);
// search button
$I->click(['link' => 'redCORE - System plugin']);
$I->waitForText('Plugin Manager: redCORE - System plugin', 5, ['css' => 'h1']);
$I->click(['link' => 'Translation options']);
$I->selectOptionInChosen('Enable translations', 'Yes');
$I->click(['link' => 'Webservice options']);
$I->selectOptionInChosen('Enable webservices', 'Yes');
$I->click(['xpath' => "//div[@id='toolbar-apply']/button"]);
$I->waitForText('Plugin successfully saved.', 5, ['id' => 'system-message-container']);
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&contentelement=&layout=manage');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=banner_clients');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=banners&return');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=categories');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=contact_details');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=content');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=languages');
$I->checkForPhpNoticesOrWarnings('administrator/index.php?option=com_redcore&view=translations&component=com_banners&contentelement=menu');
示例#13
0
<?php

/**
 * @package     Joomla
 * @subpackage  Tests
 *
 * @copyright   Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */
$I = new \AcceptanceTester($scenario);
$I->wantTo('Install Joomla CMS');
$I->expect('no configuration.php is in the Joomla CMS folder');
$I->dontSeeFileFound('configuration.php', $I->getConfiguration('Joomla folder'));
$I->amOnPage('/installation/index.php');
// I Wait for the text Main Configuration, meaning that the page is loaded
$I->waitForText('Main Configuration', 10, 'h3');
// I instantiate the Installation Configuration Page Elements:
$configurationPage = \JoomlaInstallationConfigurationPage::$elements;
$I->click($configurationPage['Language Selector']);
$I->click($configurationPage[$I->getConfiguration('Language')]);
$I->fillField('Site Name', 'Joomla CMS test');
$I->fillField('Description', 'Site for testing Joomla CMS');
// I get the configuration from acceptance.suite.yml (see: tests/_support/acceptancehelper.php)
$I->fillField('Admin Email', $I->getConfiguration('Admin email'));
$I->fillField('Admin Username', $I->getConfiguration('Username'));
$I->fillField('Admin Password', $I->getConfiguration('Password'));
$I->fillField('Confirm Admin Password', $I->getConfiguration('Password'));
$I->click($configurationPage['No Site Offline']);
$I->click('Next');
$I->wantTo('Fill the form for creating the Joomla site Database');
$I->waitForText('Database Configuration', 10, 'h3');