X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FWebTest%2FMember%2FOnlineAutoRenewMembershipGCTest.php;h=84ae09746c63de5d6975bfe37a91fb553bd39923;hb=68d6b897b10ec82e276280d07d9614c79561639d;hp=a59277a10891bb218f937f86acc673c48946b5b0;hpb=197055856e1ba72ef7b334c8a39a226ba6056d81;p=civicrm-core.git diff --git a/tests/phpunit/WebTest/Member/OnlineAutoRenewMembershipGCTest.php b/tests/phpunit/WebTest/Member/OnlineAutoRenewMembershipGCTest.php index a59277a108..84ae09746c 100644 --- a/tests/phpunit/WebTest/Member/OnlineAutoRenewMembershipGCTest.php +++ b/tests/phpunit/WebTest/Member/OnlineAutoRenewMembershipGCTest.php @@ -1,9 +1,9 @@ type('email-5', "{$lastName}@example.com"); - $this->click("_qf_Main_upload-bottom"); - $this->waitForPageToLoad($this->getTimeoutMsec()); - $this->waitForElementPresent("_qf_Confirm_next_checkout"); + $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next_checkout"); $text = 'I want this membership to be renewed automatically every 1 year(s).'; $this->assertElementContainsText('css=div.display-block', $text, 'Missing text: ' . $text); $this->click("_qf_Confirm_next_checkout"); + // Because it tends to cause problems, all uses of sleep() must be justified in comments + // Sleep should never be used for wait for anything to load from the server + // Justification for this instance: FIXME sleep(5); - // FIXME: By this time pending records has already been created. Formatting for external page (google checkout in this case) + // FIXME: By this time pending records has already been created. Formatting for external page (google checkout in this case) + // has changed a bit. No point in adding test for external page as we 'll test with fake transactions. } @@ -64,7 +65,6 @@ class WebTest_Member_OnlineAutoRenewMembershipGCTest extends CiviSeleniumTestCas //configure membership signup page. $pageId = $this->_configureMembershipPage(); - $this->open($this->sboxPath); $this->webtestLogin(); $this->waitForPageToLoad($this->getTimeoutMsec()); @@ -78,17 +78,19 @@ class WebTest_Member_OnlineAutoRenewMembershipGCTest extends CiviSeleniumTestCas $lastName = 'Smith_' . substr(sha1(rand()), 0, 7); $this->type('email-5', "{$lastName}@example.com"); - $this->click("_qf_Main_upload-bottom"); - $this->waitForPageToLoad($this->getTimeoutMsec()); - $this->waitForElementPresent("_qf_Confirm_next_checkout"); + $this->clickLink("_qf_Main_upload-bottom", "_qf_Confirm_next_checkout"); $text = 'I want this membership to be renewed automatically every 1 year(s).'; $this->assertElementContainsText('css=div.display-block', $text, 'Missing text: ' . $text); $this->click("_qf_Confirm_next_checkout"); + // Because it tends to cause problems, all uses of sleep() must be justified in comments + // Sleep should never be used for wait for anything to load from the server + // Justification for this instance: FIXME sleep(5); - // FIXME: By this time pending records has already been created. Formatting for external page (google checkout in this case) + // FIXME: By this time pending records has already been created. Formatting for external page (google checkout in this case) + // has changed a bit. No point in adding test for external page as we 'll test with fake transactions. } @@ -96,60 +98,55 @@ class WebTest_Member_OnlineAutoRenewMembershipGCTest extends CiviSeleniumTestCas static $pageId = NULL; if (!$pageId) { - $this->open($this->sboxPath); $this->webtestLogin(); //add payment processor. - $hash = substr(sha1(rand()), 0, 7); - $rand = 2 * rand(2, 50); + $hash = substr(sha1(rand()), 0, 7); + $rand = 2 * rand(2, 50); $processorName = "Webtest Auto Renew Google Checkout" . $hash; $this->webtestAddPaymentProcessor($processorName, 'Google_Checkout'); // -- start updating membership types - $this->openCiviPage('admin/member/membershipType/add', 'action=update&id=1&reset=1'); - + $this->openCiviPage('admin/member/membershipType/add', 'action=update&id=1&reset=1'); + $this->waitForElementPresent("xpath=//div[@id='membership_type_form']//table/tbody/tr[6]/td/label[contains(text(), 'Auto-renew Option')]/../../td[2]/label[contains(text(), 'Give option, but not required')]"); $this->click("xpath=//div[@id='membership_type_form']//table/tbody/tr[6]/td/label[contains(text(), 'Auto-renew Option')]/../../td[2]/label[contains(text(), 'Give option, but not required')]"); - + $this->type("duration_interval", "1"); $this->select("duration_unit", "label=year"); - //wait for the auto-complete member_of_contact to populate - sleep(3); - + $this->click("_qf_MembershipType_upload-bottom"); $this->waitForPageToLoad($this->getTimeoutMsec()); - $this->openCiviPage('admin/member/membershipType/add', 'action=update&id=2&reset=1'); - + $this->openCiviPage('admin/member/membershipType/add', 'action=update&id=2&reset=1'); + $this->waitForElementPresent("xpath=//div[@id='membership_type_form']//table/tbody/tr[6]/td/label[contains(text(), 'Auto-renew Option')]/../../td[2]/label[contains(text(), 'Give option, but not required')]"); $this->click("xpath=//div[@id='membership_type_form']//table/tbody/tr[6]/td/label[contains(text(), 'Auto-renew Option')]/../../td[2]/label[contains(text(), 'Give option, but not required')]"); $this->type("duration_interval", "1"); $this->select("duration_unit", "label=year"); - //wait for the auto-complete member_of_contact to populate - sleep(3); $this->click("_qf_MembershipType_upload-bottom"); $this->waitForPageToLoad($this->getTimeoutMsec()); // create contribution page with randomized title and default params - $amountSection = FALSE; - $payLater = TRUE; - $onBehalf = FALSE; - $pledges = FALSE; - $recurring = TRUE; + $amountSection = FALSE; + $payLater = TRUE; + $onBehalf = FALSE; + $pledges = FALSE; + $recurring = TRUE; $membershipTypes = array(array('id' => 1, 'auto_renew' => 1), array('id' => 2, 'auto_renew' => 1), ); $memPriceSetId = NULL; - $friend = TRUE; - $profilePreId = NULL; + $friend = TRUE; + $profilePreId = NULL; $profilePostId = NULL; - $premiums = TRUE; - $widget = TRUE; - $pcp = TRUE; + $premiums = TRUE; + $widget = TRUE; + $pcp = TRUE; $contributionTitle = "Title $hash"; $pageId = $this->webtestAddContributionPage($hash, @@ -172,15 +169,12 @@ class WebTest_Member_OnlineAutoRenewMembershipGCTest extends CiviSeleniumTestCas FALSE ); - // now logout and login with admin credentials - $this->openCiviPage('logout', 'reset=1', NULL); - //make sure we do have required permissions. - $permissions = array("edit-1-make-online-contributions"); + $permissions = array("edit-1-make-online-contributions", "edit-1-profile-listings-and-forms"); $this->changePermissions($permissions); // now logout and do membership test that way - $this->openCiviPage('logout', 'reset=1', NULL); + $this->webtestLogout(); } return $pageId;