From a9e1265089697b6365e3db081fb7aed39e0322f3 Mon Sep 17 00:00:00 2001 From: Matthew Wire <devel@mrwire.co.uk> Date: Thu, 17 May 2018 16:34:32 +0100 Subject: [PATCH] Update katalon tests --- README.md | 111 +++++----- info.xml | 14 +- tests/katalon/civicrm-stripe-test-suite.html | 214 +++++++++++-------- 3 files changed, 191 insertions(+), 148 deletions(-) diff --git a/README.md b/README.md index 343ecb75..ae7f8130 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,29 @@ CiviCRM Stripe Payment Processor -------------------------------- -Version 1.8+ of this extension *must* use Stripe's latest API version (at least 2013-12-03). + +## Requirements +* PHP 5.6+ +* Jquery 1.10 (Use jquery_update module on Drupal). +* Drupal 7 / Joomla / Wordpress (latest supported release). +*Not currently tested with other CMS but it may work.* +* CiviCRM 5.0+ +* Stripe API version: ??? + +### How to update Stripe API version Go to _Account Settings_ -> _API Keys_ tab -> click _Upgrade available_ button. More info on how to change: https://stripe.com/docs/upgrades#how-can-i-upgrade-my-api -CONFIGURATION -------------- +## Configuration All configuration is in the standard Payment Processors settings area in CiviCRM admin. You will enter your "Publishable" & "Secret" key given by stripe.com. -WEBHOOK & RECURRING PAYMENTS ---------- +## Installation +Download and install extension via CiviCRM's "Manage Extensions" page. + +## Webhook and Recurring Contributions + +**TODO: Replace with documentation for NEW CiviCRM standard method** + The Webhook.php file is registered to the path of civicrm/stripe/webhook You will have to make a Webhook rule in your Stripe.com account and enter this path for recurring charges to end! For Drupal: https://example.com/civicrm/stripe/webhook @@ -25,50 +38,13 @@ For Drupal: https://example.com/civicrm/stripe/webhook?ppid=3 For Joomla: https://example.com/index.php/component/civicrm/?task=civicrm/stripe/webhook&ppid=3 For Wordpress: https://example.com/?page=CiviCRM&q=civicrm/stripe/webhook&ppid=3 -INSTALLATION ------------- -For CiviCRM 4.4 & up: -1) Your CiviCRM 'Resource URLs' must be set to the extensions directory - relative to Drupal/CRM base. Example: /sites/all/civicrm_extensions/ - *NOT the full server path like /var/www/sites/all/civicrm_extensions/* - The admin page for Resource URLs is: /civicrm/admin/setting/url - -2) Install extension via CiviCRM's "Manage Extensions" page. - -CANCELLING RECURRING CONTRIBUTIONS ------------- +### Cancelling Recurring Contributions You can cancel a recurring contribution from the Stripe.com dashboard. Go to Customers and then to the specific customer. Inside the customer you will see a Subscriptions section. Click Cancel on the subscription you want to cancel. Stripe.com will cancel the subscription and will send a webhook to your site (if you have set the webhook options correctly). Then the stripe_civicrm extension will process the webhook and cancel the Civi recurring contribution. -GOOD TO KNOW ------------- -* The stripe-php package has been added to this project & no longer needs to be -downloaded separately. -* You do not need the separate civicrm_stripe CMS module for 4.2 & up -* There will no longer be branches for each version. The branches will be: - * Civi's major.minor-dev, and we will create releases (tags) for each new release version. - * Example: 4.6-dev. - -AUTHOR INFO ------------ -Joshua Walker -http://drastikbydesign.com -https://drupal.org/user/433663 - -MAINTAINER INFO ---------------- -Peter Hartmann -https://blog.hartmanncomputer.com - -OTHER CREDITS -------------- -For bug fixes, new features, and documentiation, thanks to: -rgburton, Swingline0, BorislavZlatanov, agh1, & jmcclelland - -API ------------- +## API This extension comes with several APIs to help you troubleshoot problems. These can be run via /civicrm/api or via drush if you are using Drupal (drush cvapi Stripe.XXX). The api commands are: @@ -87,9 +63,9 @@ The api commands are: * ppid - Use the given Payment Processor ID. By default, uses the saved, live Stripe payment processor and throws an error if there is more than one. * noreceipt - Set to 1 if you want to suppress the generation of receipts or set to 0 or leave out to send receipts normally. -TESTING --------- +# TESTING +### PHPUnit This extension comes with two PHP Unit tests: * Ipn - This unit test ensures that a recurring contribution is properly updated after the event is received from Stripe and that it is properly canceled when cancelled via Stripe. @@ -100,16 +76,43 @@ Tests can be run most easily via an installation made through CiviCRM Buildkit ( phpunit4 tests/phpunit/CRM/Stripe/IpnTest.php phpunit4 tests/phpunit/CRM/Stripe/DirectTest.php -In addition, see the test/katalon folder for instructions on running full web-browser based automation tests. +### Katalon Tests +See the test/katalon folder for instructions on running full web-browser based automation tests. + +Expects a drupal (demo) site installed at http://localhost:8001 + +1. Login: No expected result, just logs into a Drupal CMS. +1. Enable Stripe Extension: Two payment processors are created, can be done manually but processor labels must match or subsequent tests will fail. +1. Offline Contribution, default PP: A contribution is created for Arlyne Adams with default PP. +1. Offline Contribution, alternate PP: A contribution is created for Arlyne Adams with alternate PP. +1. Offline Membership, default PP: A membership/contribution is created for Arlyne Adams with default PP. +1. Offline Membership, alternate PP: A membership/contribution is created for Arlyne Adams with alternate PP. +1. Offline Event Registration, default PP: A participant record/contribution is created for Arlyne Adams with default PP. +1. Offline Event Registration, alternate PP: A participant record/contribution is created for Arlyne Adams with alternate PP. -#### The following manual tests should also be run: +ONLINE contribution, event registration tests +ONLINE webform test + +### Manual Tests 1. Test webform submission with payment and user-select, single processor. -1. Test online contribution page with single processor, multi-processor (stripe default, stripe non-default). -1. Test offline contribution page with single processor, multi-processor (stripe default, stripe non-default). -1. Test event registration. -1. Test event registration (cart checkout). -1. Test offline event registration. -1. Test offline membership. +1. TODO: Are we testing offline contribution with single/multi-processor properly when stripe is/is not default with katalon tests? + 1. Test online contribution page on Wordpress. 1. Test online contribution page on Joomla. +1. Test online event registration. +1. Test online event registration (cart checkout). + +## Credits / Maintenance + +### Original Author +Joshua Walker - http://drastikbydesign.com - https://drupal.org/user/433663 + +### Maintainer +--------------- +Peter Hartmann - https://blog.hartmanncomputer.com + +### Other Credits +------------- +For bug fixes, new features, and documentation, thanks to: +rgburton, Swingline0, BorislavZlatanov, agh1, jmcclelland, mattwire diff --git a/info.xml b/info.xml index de88160c..958bdffc 100644 --- a/info.xml +++ b/info.xml @@ -4,22 +4,20 @@ <name>Stripe</name> <description>Stripe Payment Processor</description> <urls> - <url desc="Main Extension Page">http://drastikbydesign.com</url> - <url desc="Support">https://www.mjwconsult.co.uk</url> + <url desc="Main Extension Page">https://github.com/mattwire/com.drastikbydesign.stripe</url> + <url desc="Support">https://github.com/mattwire/com.drastikbydesign.stripe</url> </urls> <license>AGPL</license> <maintainer> <author>Joshua Walker (drastik) - Drastik by Design</author> <email>admin@drastikbydesign.com</email> </maintainer> - <releaseDate>2018-03-12</releaseDate> - <version>5.0_mjwconsulting4</version> + <releaseDate>2018-05-17</releaseDate> + <version>5.0.beta1</version> + <develStage>beta</develStage> <compatibility> - <ver>4.5</ver> - <ver>4.6</ver> - <ver>4.7</ver> + <ver>5.0</ver> </compatibility> - <comments>http://drastikbydesign.com/blog-entry/civicrm-stripe-payment-processor</comments> <civix> <namespace>CRM/Stripe</namespace> </civix> diff --git a/tests/katalon/civicrm-stripe-test-suite.html b/tests/katalon/civicrm-stripe-test-suite.html index 59bc3393..62f521fb 100644 --- a/tests/katalon/civicrm-stripe-test-suite.html +++ b/tests/katalon/civicrm-stripe-test-suite.html @@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type" /> - <title>CiviCRM Stripe</title> + <title>c953acbf-79a8-4657-b095-66ea572f1d94</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> @@ -31,15 +31,11 @@ </tr> <tr><td>click</td><td>link=CiviCRM<datalist><option>link=CiviCRM</option><option>//a[contains(text(),'CiviCRM')]</option><option>//div[@id='block-system-navigation']/div[2]/ul/li[2]/a</option><option>//a[contains(@href, '/civicrm/dashboard')]</option><option>//div[2]/ul/li[2]/a</option><option>css=div.content > ul.menu.clearfix > li.last.leaf > a</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>//ul[@id='civicrm-menu']/li[10]<datalist><option>//ul[@id='civicrm-menu']/li[10]</option><option>//body/ul/li[10]</option><option>css=li.menumain.crm-Administer.activetarget</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>link=Extensions<datalist><option>link=Extensions</option><option>//a[contains(text(),'Extensions')]</option><option>//div[@id='root-menu-div']/div[20]/ul/li[3]/div/a</option><option>//a[contains(@href, '/civicrm/admin/extensions?reset=1')]</option><option>//div[20]/ul/li[3]/div/a</option><option>css=li.active > div.menu-item > a</option></datalist></td><td></td> +<tr><td>clickAndWait</td><td>link=Extensions<datalist><option>link=Extensions</option><option>//a[contains(text(),'Extensions')]</option><option>//div[@id='root-menu-div']/div[20]/ul/li[3]/div/a</option><option>//a[contains(@href, '/civicrm/admin/extensions?reset=1')]</option><option>//div[20]/ul/li[3]/div/a</option><option>css=li.active > div.menu-item > a</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>//a[@id='new']/span<datalist><option>//a[@id='new']/span</option><option>//div[3]/div/div/a/span</option><option>css=#new > span</option></datalist></td><td></td> +<tr><td>clickAndWait</td><td>link=Install<datalist><option>link=Install</option><option>//a[contains(text(),'Install')]</option><option>//tr[@id='extension-com.drastikbydesign.stripe']/td[5]/span/a</option><option>//a[contains(@href, '/civicrm/admin/extensions?action=add&id=com.drastikbydesign.stripe&key=com.drastikbydesign.stripe')]</option><option>//span/a</option><option>css=a.action-item.crm-hover-button</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>link=Install<datalist><option>link=Install</option><option>//a[contains(text(),'Install')]</option><option>//tr[@id='extension-com.drastikbydesign.stripe']/td[5]/span/a</option><option>//a[contains(@href, '/civicrm/admin/extensions?action=add&id=com.drastikbydesign.stripe&key=com.drastikbydesign.stripe')]</option><option>//span/a</option><option>css=a.action-item.crm-hover-button</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=_qf_Extensions_next-bottom<datalist><option>id=_qf_Extensions_next-bottom</option><option>name=_qf_Extensions_next</option><option>//input[@id='_qf_Extensions_next-bottom']</option><option>//form[@id='Extensions']/div[2]/div[2]/span/input</option><option>//span/input</option><option>css=#_qf_Extensions_next-bottom</option></datalist></td><td></td> +<tr><td>clickAndWait</td><td>id=_qf_Extensions_next-bottom<datalist><option>id=_qf_Extensions_next-bottom</option><option>name=_qf_Extensions_next</option><option>//input[@id='_qf_Extensions_next-bottom']</option><option>//form[@id='Extensions']/div[2]/div[2]/span/input</option><option>//span/input</option><option>css=#_qf_Extensions_next-bottom</option></datalist></td><td></td> </tr> <tr><td>click</td><td>//ul[@id='civicrm-menu']/li[10]<datalist><option>//ul[@id='civicrm-menu']/li[10]</option><option>//body/ul/li[10]</option><option>css=li.menumain.crm-Administer.activetarget</option></datalist></td><td></td> </tr> @@ -53,7 +49,7 @@ </tr> <tr><td>select</td><td>id=payment_processor_type_id<datalist><option>id=payment_processor_type_id</option><option>name=payment_processor_type_id</option><option>//select[@id='payment_processor_type_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr/td[2]/select</option><option>//select</option><option>css=#payment_processor_type_id</option></datalist></td><td>label=Stripe</td> </tr> -<tr><td>click</td><td>//option[@value='13']<datalist><option>//option[@value='13']</option><option>//select[@id='payment_processor_type_id']/option[13]</option><option>//option[13]</option><option>css=option[value="13"]</option></datalist></td><td></td> +<tr><td>select</td><td>id=financial_account_id<datalist><option>id=financial_account_id</option><option>name=financial_account_id</option><option>//select[@id='financial_account_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[4]/td[2]/select</option><option>//tr[4]/td[2]/select</option><option>css=#financial_account_id</option><option>xpath=(//option[@value='12'])</option></datalist></td><td>label=Payment Processor Account</td> </tr> <tr><td>click</td><td>id=name<datalist><option>id=name</option><option>name=name</option><option>//input[@id='name']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[2]/td[2]/input</option><option>//td[2]/input</option><option>css=#name</option></datalist></td><td></td> </tr> @@ -69,17 +65,7 @@ </tr> <tr><td>type</td><td>id=password<datalist><option>id=password</option><option>name=password</option><option>//input[@id='password']</option><option>//form[@id='PaymentProcessor']/div[3]/fieldset/table/tbody/tr[2]/td[2]/input</option><option>//fieldset/table/tbody/tr[2]/td[2]/input</option><option>css=#password</option></datalist></td><td>pk_test_k2hELLGpBLsOJr6jZ2z9RaYh</td> </tr> -<tr><td>click</td><td>id=_qf_PaymentProcessor_next-bottom<datalist><option>id=_qf_PaymentProcessor_next-bottom</option><option>//input[@id='_qf_PaymentProcessor_next-bottom']</option><option>//form[@id='PaymentProcessor']/div[3]/fieldset[2]/div/span/input</option><option>//fieldset[2]/div/span/input</option><option>css=#_qf_PaymentProcessor_next-bottom</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=financial_account_id<datalist><option>id=financial_account_id</option><option>name=financial_account_id</option><option>//select[@id='financial_account_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[4]/td[2]/select</option><option>//tr[4]/td[2]/select</option><option>css=#financial_account_id</option></datalist></td><td></td> -</tr> -<tr><td>select</td><td>id=financial_account_id<datalist><option>id=financial_account_id</option><option>name=financial_account_id</option><option>//select[@id='financial_account_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[4]/td[2]/select</option><option>//tr[4]/td[2]/select</option><option>css=#financial_account_id</option></datalist></td><td>label=Accounts Receivable</td> -</tr> -<tr><td>click</td><td>xpath=(//option[@value='7'])[2]<datalist><option>xpath=(//option[@value='7'])[2]</option><option>//select[@id='financial_account_id']/option[2]</option><option>//tr[4]/td[2]/select/option[2]</option><option>css=#financial_account_id > option[value="7"]</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=_qf_PaymentProcessor_next-top<datalist><option>id=_qf_PaymentProcessor_next-top</option><option>name=_qf_PaymentProcessor_next</option><option>//input[@id='_qf_PaymentProcessor_next-top']</option><option>//form[@id='PaymentProcessor']/div[3]/div/span/input</option><option>//span/input</option><option>css=#_qf_PaymentProcessor_next-top</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=main-wrapper<datalist><option>id=main-wrapper</option><option>//div[@id='main-wrapper']</option><option>//div[@id='page']/div[2]</option><option>//div[3]/div/div[2]</option><option>css=#main-wrapper</option></datalist></td><td></td> +<tr><td>clickandWait</td><td>id=_qf_PaymentProcessor_next-bottom<datalist><option>id=_qf_PaymentProcessor_next-bottom</option><option>//input[@id='_qf_PaymentProcessor_next-bottom']</option><option>//form[@id='PaymentProcessor']/div[3]/fieldset[2]/div/span/input</option><option>//fieldset[2]/div/span/input</option><option>css=#_qf_PaymentProcessor_next-bottom</option></datalist></td><td></td> </tr> <tr><td>click</td><td>//a[@id='newPaymentProcessor']/span<datalist><option>//a[@id='newPaymentProcessor']/span</option><option>//div[3]/div[2]/div/div/a/span</option><option>css=#newPaymentProcessor > span</option></datalist></td><td></td> </tr> @@ -87,8 +73,6 @@ </tr> <tr><td>select</td><td>id=payment_processor_type_id<datalist><option>id=payment_processor_type_id</option><option>name=payment_processor_type_id</option><option>//select[@id='payment_processor_type_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr/td[2]/select</option><option>//select</option><option>css=#payment_processor_type_id</option></datalist></td><td>label=Stripe</td> </tr> -<tr><td>click</td><td>//option[@value='13']<datalist><option>//option[@value='13']</option><option>//select[@id='payment_processor_type_id']/option[13]</option><option>//option[13]</option><option>css=option[value="13"]</option></datalist></td><td></td> -</tr> <tr><td>click</td><td>id=name<datalist><option>id=name</option><option>name=name</option><option>//input[@id='name']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[2]/td[2]/input</option><option>//td[2]/input</option><option>css=#name</option></datalist></td><td></td> </tr> <tr><td>type</td><td>id=name<datalist><option>id=name</option><option>name=name</option><option>//input[@id='name']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[2]/td[2]/input</option><option>//td[2]/input</option><option>css=#name</option></datalist></td><td>Stripe Default</td> @@ -99,8 +83,6 @@ </tr> <tr><td>select</td><td>id=financial_account_id<datalist><option>id=financial_account_id</option><option>name=financial_account_id</option><option>//select[@id='financial_account_id']</option><option>//form[@id='PaymentProcessor']/div[3]/table/tbody/tr[4]/td[2]/select</option><option>//tr[4]/td[2]/select</option><option>css=#financial_account_id</option></datalist></td><td>label=Accounts Receivable</td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='7'])[2]<datalist><option>xpath=(//option[@value='7'])[2]</option><option>//select[@id='financial_account_id']/option[2]</option><option>//tr[4]/td[2]/select/option[2]</option><option>css=#financial_account_id > option[value="7"]</option></datalist></td><td></td> -</tr> <tr><td>click</td><td>id=user_name<datalist><option>id=user_name</option><option>name=user_name</option><option>//input[@id='user_name']</option><option>//form[@id='PaymentProcessor']/div[3]/fieldset/table/tbody/tr/td[2]/input</option><option>//fieldset/table/tbody/tr/td[2]/input</option><option>css=#user_name</option></datalist></td><td></td> </tr> <tr><td>type</td><td>id=user_name<datalist><option>id=user_name</option><option>name=user_name</option><option>//input[@id='user_name']</option><option>//form[@id='PaymentProcessor']/div[3]/fieldset/table/tbody/tr/td[2]/input</option><option>//fieldset/table/tbody/tr/td[2]/input</option><option>css=#user_name</option></datalist></td><td>sk_test_0f3Nja19AQvQvLczwI5lV021</td> @@ -117,15 +99,7 @@ <tr><td rowspan="1" colspan="3">Offline Contribution, default PP</td></tr> </thead> <tbody> -<tr><td>open</td><td>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1<datalist><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option></datalist></td><td></td> -</tr> -<tr><td>submit</td><td>id=id_search_block<datalist><option>id=id_search_block</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>name=_qf_Advanced_refresh<datalist><option>name=_qf_Advanced_refresh</option><option>//input[@name='_qf_Advanced_refresh']</option><option>//div[@id='quickSearch']/div/input</option><option>//li/form/div/div/input</option><option>css=input[name="_qf_Advanced_refresh"]</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>link=Adams, Arlyne<datalist><option>link=Adams, Arlyne</option><option>//a[contains(text(),'Adams, Arlyne')]</option><option>//tr[@id='rowid109']/td[3]/a</option><option>//a[contains(@href, '/civicrm/contact/view?reset=1&cid=109&key=b108c36ce163614fd592b0eb7d5adb78_5638&context=advanced')]</option><option>//tr[3]/td[3]/a</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=ui-id-22<datalist><option>id=ui-id-22</option><option>//a[@id='ui-id-22']</option><option>//li[@id='tab_contribute']/a</option><option>//a[contains(@href, '/civicrm/contact/view/contribution?reset=1&force=1&cid=109')]</option><option>//div[4]/div/ul/li[2]/a</option><option>css=#ui-id-22</option></datalist></td><td></td> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute<datalist><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option></datalist></td><td></td> </tr> <tr><td>click</td><td>//form[@id='Search']/div[2]/div[2]/a[2]/span<datalist><option>//form[@id='Search']/div[2]/div[2]/a[2]/span</option><option>//a[2]/span</option></datalist></td><td></td> </tr> @@ -139,8 +113,6 @@ </tr> <tr><td>type</td><td>id=total_amount<datalist><option>id=total_amount</option><option>name=total_amount</option><option>//input[@id='total_amount']</option><option>//span[@id='totalAmount']/input</option><option>//td[2]/span/input</option><option>css=#total_amount</option></datalist></td><td>10</td> </tr> -<tr><td>click</td><td>//tr[@id='receiptDate']/td[2]<datalist><option>//tr[@id='receiptDate']/td[2]</option><option>//tr[9]/td[2]</option></datalist></td><td></td> -</tr> <tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> </tr> <tr><td>type</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td>4242424242424242</td> @@ -161,27 +133,15 @@ </tr> <tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//button[@type='button'])[2]<datalist><option>xpath=(//button[@type='button'])[2]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])<datalist><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option></datalist></td><td></td> </tr> </tbody></table> <table cellpadding="1" cellspacing="1" border="1"> <thead> -<tr><td rowspan="1" colspan="3">Offline Contribution, alternate PP</td></tr> +<tr><td rowspan="1" colspan="3">Offline Contribution, alternative PP</td></tr> </thead> <tbody> -<tr><td>open</td><td>http://localhost:8001/civicrm/contribute/transact?_qf_ThankYou_display=1&qfKey=b038ae20cdd0ef031db94976cdda4b35_6191<datalist><option>http://localhost:8001/civicrm/contribute/transact?_qf_ThankYou_display=1&qfKey=b038ae20cdd0ef031db94976cdda4b35_6191</option></datalist></td><td></td> -</tr> -<tr><td>submit</td><td>id=id_search_block<datalist><option>id=id_search_block</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>name=_qf_Advanced_refresh<datalist><option>name=_qf_Advanced_refresh</option><option>//input[@name='_qf_Advanced_refresh']</option><option>//div[@id='quickSearch']/div/input</option><option>//li/form/div/div/input</option><option>css=input[name="_qf_Advanced_refresh"]</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=main-wrapper<datalist><option>id=main-wrapper</option><option>//div[@id='main-wrapper']</option><option>//div[@id='page']/div[2]</option><option>//div[3]/div/div[2]</option><option>css=#main-wrapper</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>//tr[@id='rowid109']/td[3]<datalist><option>//tr[@id='rowid109']/td[3]</option><option>//div[3]/div/div[2]/table/tbody/tr[3]/td[3]</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>link=Adams, Arlyne<datalist><option>link=Adams, Arlyne</option><option>//a[contains(text(),'Adams, Arlyne')]</option><option>//tr[@id='rowid109']/td[3]/a</option><option>//a[contains(@href, '/civicrm/contact/view?reset=1&cid=109&key=07b009829a3f912660ecc798a5c7ccbb_8680&context=advanced')]</option><option>//tr[3]/td[3]/a</option></datalist></td><td></td> -</tr> -<tr><td>click</td><td>id=ui-id-22<datalist><option>id=ui-id-22</option><option>//a[@id='ui-id-22']</option><option>//li[@id='tab_contribute']/a</option><option>//a[contains(@href, '/civicrm/contact/view/contribution?reset=1&force=1&cid=109')]</option><option>//div[4]/div/ul/li[2]/a</option><option>css=#ui-id-22</option></datalist></td><td></td> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option></datalist></td><td></td> </tr> <tr><td>click</td><td>//form[@id='Search']/div[2]/div[2]/a[2]/span<datalist><option>//form[@id='Search']/div[2]/div[2]/a[2]/span</option><option>//a[2]/span</option></datalist></td><td></td> </tr> @@ -197,9 +157,9 @@ </tr> <tr><td>click</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td>label=Stripe : Stripe with test credentials</td> +<tr><td>select</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td>label=Stripe Alternate : Stripe alternate Payment Processor</td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='3'])[2]<datalist><option>xpath=(//option[@value='3'])[2]</option><option>//select[@id='payment_processor_id']/option[2]</option><option>//tr[10]/td[2]/select/option[2]</option><option>css=#payment_processor_id > option[value="3"]</option></datalist></td><td></td> +<tr><td>pause</td><td>10000<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option><option>5000</option><option>10000</option></datalist></td><td></td> </tr> <tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> </tr> @@ -217,11 +177,11 @@ </tr> <tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2028</td> +<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2027</td> </tr> -<tr><td>click</td><td>//option[@value='2028']<datalist><option>//option[@value='2028']</option><option>//select[@id='credit_card_exp_date_Y']/option[12]</option><option>//select[2]/option[12]</option><option>css=option[value="2028"]</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//button[@type='button'])[2]<datalist><option>xpath=(//button[@type='button'])[2]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])<datalist><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> </tr> </tbody></table> <table cellpadding="1" cellspacing="1" border="1"> @@ -229,23 +189,23 @@ <tr><td rowspan="1" colspan="3">Offline Membership, default PP</td></tr> </thead> <tbody> -<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&force=1&cid=109&selectedChild=participant<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&force=1&cid=109&selectedChild=participant</option></datalist></td><td></td> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member</option></datalist></td><td></td> </tr> -<tr><td>submit</td><td>id=id_search_block<datalist><option>id=id_search_block</option></datalist></td><td></td> +<tr><td>click</td><td>//div[@id='ui-id-31']/div/div[2]/a[2]<datalist><option>//div[@id='ui-id-31']/div/div[2]/a[2]</option><option>xpath=(//a[contains(@href, '/civicrm/contact/view/membership?reset=1&action=add&cid=109&context=membership&mode=live')])[2]</option><option>//div[4]/div/div[2]/a[2]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>name=_qf_Advanced_refresh<datalist><option>name=_qf_Advanced_refresh</option><option>//input[@name='_qf_Advanced_refresh']</option><option>//div[@id='quickSearch']/div/input</option><option>//li/form/div/div/input</option><option>css=input[name="_qf_Advanced_refresh"]</option></datalist></td><td></td> +<tr><td>click</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>link=Adams, Arlyne<datalist><option>link=Adams, Arlyne</option><option>//a[contains(text(),'Adams, Arlyne')]</option><option>//tr[@id='rowid109']/td[3]/a</option><option>//a[contains(@href, '/civicrm/contact/view?reset=1&cid=109&key=b108c36ce163614fd592b0eb7d5adb78_7697&context=advanced')]</option><option>//tr[3]/td[3]/a</option></datalist></td><td></td> +<tr><td>select</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td>label=General</td> </tr> -<tr><td>click</td><td>id=ui-id-26<datalist><option>id=ui-id-26</option><option>//a[@id='ui-id-26']</option><option>//li[@id='tab_member']/a</option><option>//a[contains(@href, '/civicrm/contact/view/membership?reset=1&force=1&cid=109')]</option><option>//div[4]/div/ul/li[4]/a</option><option>css=#ui-id-26</option></datalist></td><td></td> +<tr><td>click</td><td>id=financial_type_id<datalist><option>id=financial_type_id</option><option>name=financial_type_id</option><option>//select[@id='financial_type_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[2]/td[2]/select</option><option>//select</option><option>css=#financial_type_id</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>//div[@id='ui-id-27']/div/div[2]/a[2]<datalist><option>//div[@id='ui-id-27']/div/div[2]/a[2]</option><option>xpath=(//a[contains(@href, '/civicrm/contact/view/membership?reset=1&action=add&cid=109&context=membership&mode=live')])[2]</option><option>//div[4]/div/div[2]/a[2]</option></datalist></td><td></td> +<tr><td>select</td><td>id=financial_type_id<datalist><option>id=financial_type_id</option><option>name=financial_type_id</option><option>//select[@id='financial_type_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[2]/td[2]/select</option><option>//select</option><option>css=#financial_type_id</option></datalist></td><td>label=Donation</td> </tr> -<tr><td>click</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='1']<datalist><option>//option[@value='1']</option><option>//select[@id='financial_type_id']/option[3]</option><option>//option[3]</option><option>css=option[value="1"]</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td>label=General</td> +<tr><td>click</td><td>id=total_amount<datalist><option>id=total_amount</option><option>name=total_amount</option><option>//input[@id='total_amount']</option><option>//span[@id='totalAmount']/input</option><option>//td[2]/span/input</option><option>css=#total_amount</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='1'])[5]<datalist><option>xpath=(//option[@value='1'])[5]</option><option>//select[@id='membership_type_id_1']/option[2]</option><option>//select[2]/option[2]</option><option>css=#membership_type_id_1 > option[value="1"]</option></datalist></td><td></td> +<tr><td>type</td><td>id=total_amount<datalist><option>id=total_amount</option><option>name=total_amount</option><option>//input[@id='total_amount']</option><option>//span[@id='totalAmount']/input</option><option>//td[2]/span/input</option><option>css=#total_amount</option></datalist></td><td>10</td> </tr> <tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> </tr> @@ -259,15 +219,15 @@ </tr> <tr><td>select</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td>label=Dec</td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='12'])[3]<datalist><option>xpath=(//option[@value='12'])[3]</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//div[2]/select/option[13]</option><option>css=#credit_card_exp_date_M > option[value="12"]</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='12']<datalist><option>//option[@value='12']</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//option[13]</option><option>css=option[value="12"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//div[2]/select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> +<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//div[2]/select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2028</td> +<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2027</td> </tr> -<tr><td>click</td><td>//option[@value='2028']<datalist><option>//option[@value='2028']</option><option>//select[@id='credit_card_exp_date_Y']/option[12]</option><option>//select[2]/option[12]</option><option>css=option[value="2028"]</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//button[@type='button'])[2]<datalist><option>xpath=(//button[@type='button'])[2]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])<datalist><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])</option></datalist></td><td></td> </tr> </tbody></table> <table cellpadding="1" cellspacing="1" border="1"> @@ -275,29 +235,29 @@ <tr><td rowspan="1" colspan="3">Offline Membership, alternate PP</td></tr> </thead> <tbody> -<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&force=1&cid=109&selectedChild=member<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&force=1&cid=109&selectedChild=member</option></datalist></td><td></td> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option></datalist></td><td></td> </tr> -<tr><td>submit</td><td>id=id_search_block<datalist><option>id=id_search_block</option></datalist></td><td></td> +<tr><td>click</td><td>//div[@id='ui-id-31']/div/div[2]/a[2]<datalist><option>//div[@id='ui-id-31']/div/div[2]/a[2]</option><option>xpath=(//a[contains(@href, '/civicrm/contact/view/membership?reset=1&action=add&cid=109&context=membership&mode=live')])[2]</option><option>//div[4]/div/div[2]/a[2]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>name=_qf_Advanced_refresh<datalist><option>name=_qf_Advanced_refresh</option><option>//input[@name='_qf_Advanced_refresh']</option><option>//div[@id='quickSearch']/div/input</option><option>//li/form/div/div/input</option><option>css=input[name="_qf_Advanced_refresh"]</option></datalist></td><td></td> +<tr><td>click</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>link=Adams, Arlyne<datalist><option>link=Adams, Arlyne</option><option>//a[contains(text(),'Adams, Arlyne')]</option><option>//tr[@id='rowid109']/td[3]/a</option><option>//a[contains(@href, '/civicrm/contact/view?reset=1&cid=109&key=b108c36ce163614fd592b0eb7d5adb78_4675&context=advanced')]</option><option>//tr[3]/td[3]/a</option></datalist></td><td></td> +<tr><td>select</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td>label=Student</td> </tr> -<tr><td>click</td><td>id=ui-id-26<datalist><option>id=ui-id-26</option><option>//a[@id='ui-id-26']</option><option>//li[@id='tab_member']/a</option><option>//a[contains(@href, '/civicrm/contact/view/membership?reset=1&force=1&cid=109')]</option><option>//div[4]/div/ul/li[4]/a</option><option>css=#ui-id-26</option></datalist></td><td></td> +<tr><td>click</td><td>id=financial_type_id<datalist><option>id=financial_type_id</option><option>name=financial_type_id</option><option>//select[@id='financial_type_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[2]/td[2]/select</option><option>//select</option><option>css=#financial_type_id</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>//div[@id='ui-id-27']/div/div[2]/a[2]/span<datalist><option>//div[@id='ui-id-27']/div/div[2]/a[2]/span</option><option>//div[4]/div/div[2]/a[2]/span</option></datalist></td><td></td> +<tr><td>select</td><td>id=financial_type_id<datalist><option>id=financial_type_id</option><option>name=financial_type_id</option><option>//select[@id='financial_type_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[2]/td[2]/select</option><option>//select</option><option>css=#financial_type_id</option></datalist></td><td>label=Donation</td> </tr> -<tr><td>click</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='1']<datalist><option>//option[@value='1']</option><option>//select[@id='financial_type_id']/option[3]</option><option>//option[3]</option><option>css=option[value="1"]</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=membership_type_id_1<datalist><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td>label=Student</td> +<tr><td>click</td><td>id=total_amount<datalist><option>id=total_amount</option><option>name=total_amount</option><option>//input[@id='total_amount']</option><option>//span[@id='totalAmount']/input</option><option>//td[2]/span/input</option><option>css=#total_amount</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='2'])[4]<datalist><option>xpath=(//option[@value='2'])[4]</option><option>//select[@id='membership_type_id_1']/option[4]</option><option>//select[2]/option[4]</option><option>css=#membership_type_id_1 > option[value="2"]</option></datalist></td><td></td> +<tr><td>type</td><td>id=total_amount<datalist><option>id=total_amount</option><option>name=total_amount</option><option>//input[@id='total_amount']</option><option>//span[@id='totalAmount']/input</option><option>//td[2]/span/input</option><option>css=#total_amount</option></datalist></td><td>10</td> </tr> -<tr><td>click</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Membership']/div[2]/div[3]/table/tbody/tr[14]/td[2]/select</option><option>//tr[14]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td></td> +<tr><td>click</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Membership']/div[2]/div[3]/table/tbody/tr[14]/td[2]/select</option><option>//tr[14]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td>label=Stripe : Stripe with test credentials</td> +<tr><td>select</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td>label=Stripe Alternate : Stripe alternate Payment Processor</td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='3'])[7]<datalist><option>xpath=(//option[@value='3'])[7]</option><option>//select[@id='payment_processor_id']/option[2]</option><option>//tr[14]/td[2]/select/option[2]</option><option>css=#payment_processor_id > option[value="3"]</option></datalist></td><td></td> +<tr><td>pause</td><td>10000<datalist><option>10000</option><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option><option>5000</option></datalist></td><td></td> </tr> <tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> </tr> @@ -311,15 +271,97 @@ </tr> <tr><td>select</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td>label=Dec</td> </tr> -<tr><td>click</td><td>xpath=(//option[@value='12'])[3]<datalist><option>xpath=(//option[@value='12'])[3]</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//div[2]/select/option[13]</option><option>css=#credit_card_exp_date_M > option[value="12"]</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='12']<datalist><option>//option[@value='12']</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//option[13]</option><option>css=option[value="12"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//div[2]/select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> +<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> </tr> -<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//div[2]/select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2028</td> +<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2027</td> </tr> -<tr><td>click</td><td>//option[@value='2028']<datalist><option>//option[@value='2028']</option><option>//select[@id='credit_card_exp_date_Y']/option[12]</option><option>//select[2]/option[12]</option><option>css=option[value="2028"]</option></datalist></td><td></td> +<tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])<datalist><option>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +</tr> +</tbody></table> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Offline Participant, default PP</td></tr> +</thead> +<tbody> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=participant<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=participant</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>//form[@id='Search']/div[3]/a[2]<datalist><option>//form[@id='Search']/div[3]/a[2]</option><option>xpath=(//a[contains(@href, '/civicrm/contact/view/participant?reset=1&action=add&cid=109&context=participant&mode=live')])[2]</option><option>//div[3]/a[2]</option></datalist></td><td></td> +</tr> +<tr><td>mouseDown</td><td>css=#s2id_event_id a.select2-choice<datalist><option>css=#s2id_event_id a.select2-choice</option><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> +</tr> +<tr><td>waitForTextPresent</td><td>Rain-forest<datalist><option>css=.select2-results</option><option>Rain-forest</option></datalist></td><td></td> +</tr> +<tr><td>mouseUp</td><td>css=.select2-result-label:contains('Fall')<datalist><option>css=.select2-result-label:contains('Rain-forest')</option><option>css=.select2-result-label:contains('Fall')</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> +</tr> +<tr><td>type</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td>4242424242424242</td> +</tr> +<tr><td>click</td><td>id=cvv2<datalist><option>id=cvv2</option><option>name=cvv2</option><option>//input[@id='cvv2']</option><option>//div[@id='payment_information']/fieldset/div/div[3]/div[2]/input</option><option>//div/div[3]/div[2]/input</option><option>css=#cvv2</option></datalist></td><td></td> +</tr> +<tr><td>type</td><td>id=cvv2<datalist><option>id=cvv2</option><option>name=cvv2</option><option>//input[@id='cvv2']</option><option>//div[@id='payment_information']/fieldset/div/div[3]/div[2]/input</option><option>//div/div[3]/div[2]/input</option><option>css=#cvv2</option></datalist></td><td>123</td> +</tr> +<tr><td>click</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td></td> +</tr> +<tr><td>select</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td>label=Dec</td> +</tr> +<tr><td>click</td><td>//option[@value='12']<datalist><option>//option[@value='12']</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//option[13]</option><option>css=option[value="12"]</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> +</tr> +<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2027</td> +</tr> +<tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Participant_upload'])<datalist><option>xpath=(//button[@type='button'][@data-identifier='_qf_Participant_upload'])</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +</tr> +</tbody></table> +<table cellpadding="1" cellspacing="1" border="1"> +<thead> +<tr><td rowspan="1" colspan="3">Offline Participant, alternate PP</td></tr> +</thead> +<tbody> +<tr><td>open</td><td>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=participant<datalist><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=member</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=contribute</option><option>http://localhost:8001/civicrm/admin/paymentProcessor?reset=1</option><option>http://localhost:8001/civicrm/contact/view?reset=1&cid=109&selectedChild=participant</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>//form[@id='Search']/div[3]/a[2]<datalist><option>//form[@id='Search']/div[3]/a[2]</option><option>xpath=(//a[contains(@href, '/civicrm/contact/view/participant?reset=1&action=add&cid=109&context=participant&mode=live')])[2]</option><option>//div[3]/a[2]</option></datalist></td><td></td> +</tr> +<tr><td>mouseDown</td><td>css=#s2id_event_id a.select2-choice<datalist><option>css=#s2id_event_id a.select2-choice</option><option>id=membership_type_id_1</option><option>name=membership_type_id[1]</option><option>//select[@id='membership_type_id_1']</option><option>//span[@id='mem_type_id']/select[2]</option><option>//select[2]</option><option>css=#membership_type_id_1</option></datalist></td><td></td> +</tr> +<tr><td>waitForTextPresent</td><td>Rain-forest<datalist><option>Rain-forest</option><option>css=.select2-results</option></datalist></td><td></td> +</tr> +<tr><td>mouseUp</td><td>css=.select2-result-label:contains('Rain-forest')<datalist><option>css=.select2-result-label:contains('Rain-forest')</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td></td> +</tr> +<tr><td>select</td><td>id=payment_processor_id<datalist><option>id=payment_processor_id</option><option>name=payment_processor_id</option><option>//select[@id='payment_processor_id']</option><option>//form[@id='Contribution']/div[3]/table/tbody/tr[10]/td[2]/select</option><option>//tr[10]/td[2]/select</option><option>css=#payment_processor_id</option></datalist></td><td>label=Stripe Alternate : Stripe alternate Payment Processor</td> +</tr> +<tr><td>pause</td><td>10000<datalist><option>10000</option><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option><option>5000</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td></td> +</tr> +<tr><td>type</td><td>id=credit_card_number<datalist><option>id=credit_card_number</option><option>name=credit_card_number</option><option>//input[@id='credit_card_number']</option><option>//div[@id='payment_information']/fieldset/div/div[2]/div[2]/input</option><option>//div/div[2]/div[2]/input</option><option>css=#credit_card_number</option></datalist></td><td>4242424242424242</td> +</tr> +<tr><td>click</td><td>id=cvv2<datalist><option>id=cvv2</option><option>name=cvv2</option><option>//input[@id='cvv2']</option><option>//div[@id='payment_information']/fieldset/div/div[3]/div[2]/input</option><option>//div/div[3]/div[2]/input</option><option>css=#cvv2</option></datalist></td><td></td> +</tr> +<tr><td>type</td><td>id=cvv2<datalist><option>id=cvv2</option><option>name=cvv2</option><option>//input[@id='cvv2']</option><option>//div[@id='payment_information']/fieldset/div/div[3]/div[2]/input</option><option>//div/div[3]/div[2]/input</option><option>css=#cvv2</option></datalist></td><td>123</td> +</tr> +<tr><td>click</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td></td> +</tr> +<tr><td>select</td><td>id=credit_card_exp_date_M<datalist><option>id=credit_card_exp_date_M</option><option>name=credit_card_exp_date[M]</option><option>//select[@id='credit_card_exp_date_M']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select</option><option>//div[4]/div[2]/select</option><option>css=#credit_card_exp_date_M</option></datalist></td><td>label=Dec</td> +</tr> +<tr><td>click</td><td>//option[@value='12']<datalist><option>//option[@value='12']</option><option>//select[@id='credit_card_exp_date_M']/option[13]</option><option>//option[13]</option><option>css=option[value="12"]</option></datalist></td><td></td> +</tr> +<tr><td>click</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td></td> +</tr> +<tr><td>select</td><td>id=credit_card_exp_date_Y<datalist><option>id=credit_card_exp_date_Y</option><option>name=credit_card_exp_date[Y]</option><option>//select[@id='credit_card_exp_date_Y']</option><option>//div[@id='payment_information']/fieldset/div/div[4]/div[2]/select[2]</option><option>//select[2]</option><option>css=#credit_card_exp_date_Y</option></datalist></td><td>label=2027</td> +</tr> +<tr><td>click</td><td>//option[@value='2027']<datalist><option>//option[@value='2027']</option><option>//select[@id='credit_card_exp_date_Y']/option[11]</option><option>//select[2]/option[11]</option><option>css=option[value="2027"]</option></datalist></td><td></td> </tr> -<tr><td>click</td><td>xpath=(//button[@type='button'])[2]<datalist><option>xpath=(//button[@type='button'])[2]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option></datalist></td><td></td> +<tr><td>click</td><td>xpath=(//button[@type='button'][@data-identifier='_qf_Participant_upload'])<datalist><option>xpath=(//button[@type='button'][@data-identifier='_qf_Membership_upload'])</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Contribution_upload'])</option><option>xpath=(//button[@type='button'])[3]</option><option>//div[11]/div/button</option><option>css=div.ui-dialog-buttonset > button.ui-button.ui-corner-all.ui-widget</option><option>xpath=(//button[@type='button'][@data-identifier='_qf_Participant_upload'])</option></datalist></td><td></td> </tr> </tbody></table> <table cellpadding="1" cellspacing="1" border="1"> -- GitLab