Merge pull request #9637 from omarabuhussein/CRM-19832-searchtask-hook
[civicrm-core.git] / tests / phpunit / CiviTest / CiviSeleniumTestCase.php
index b166e1c6a1ecefd351572c457e91dd5870759fbd..617f1f19dc8ba561f97aaa8c8a161fb633e9bd94 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2016                                |
+ | Copyright CiviCRM LLC (c) 2004-2017                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -1961,6 +1961,122 @@ class CiviSeleniumTestCase extends PHPUnit_Extensions_SeleniumTestCase {
     $this->waitForElementPresent('link=Add Financial Account');
   }
 
+  /**
+   * @param $setTitle
+   * @param $usedFor
+   * @param $setHelp
+   * @param null $financialType
+   */
+  public function _testAddSet($setTitle, $usedFor, $setHelp, $financialType = NULL) {
+    $this->openCiviPage("admin/price", "reset=1&action=add", '_qf_Set_next-bottom');
+
+    // Enter Priceset fields (Title, Used For ...)
+    $this->type('title', $setTitle);
+    if ($usedFor == 'Event') {
+      $this->check('extends_1');
+    }
+    elseif ($usedFor == 'Contribution') {
+      $this->check('extends_2');
+    }
+
+    if ($financialType) {
+      $this->select("financial_type_id", "label={$financialType}");
+    }
+    $this->type('help_pre', $setHelp);
+
+    $this->assertChecked('is_active', 'Verify that Is Active checkbox is set.');
+    $this->clickLink('_qf_Set_next-bottom');
+  }
+
+  /**
+   * @param $fields
+   * @param $validateString
+   * @param $financialType
+   * @param bool $dateSpecificFields
+   */
+  public function _testAddPriceFields(&$fields, &$validateString, $financialType, $dateSpecificFields = FALSE) {
+    $validateStrings[] = $financialType;
+    $sid = $this->urlArg('sid');
+    $this->openCiviPage('admin/price/field', "reset=1&action=add&sid=$sid", 'label');
+    foreach ($fields as $label => $type) {
+      $validateStrings[] = $label;
+
+      $this->type('label', $label);
+      $this->select('html_type', "value={$type}");
+
+      switch ($type) {
+        case 'Text':
+          $validateStrings[] = '525.00';
+          $this->type('price', '525.00');
+          if ($dateSpecificFields == TRUE) {
+            $this->webtestFillDateTime('active_on', '+1 week');
+          }
+          else {
+            $this->check('is_required');
+          }
+          break;
+
+        case 'Select':
+          $options = array(
+            1 => array(
+              'label' => 'Chicken',
+              'amount' => '30.00',
+            ),
+            2 => array(
+              'label' => 'Vegetarian',
+              'amount' => '25.00',
+            ),
+          );
+          $this->addMultipleChoiceOptions($options, $validateStrings);
+          if ($dateSpecificFields == TRUE) {
+            $this->webtestFillDateTime('expire_on', '-1 week');
+          }
+          break;
+
+        case 'Radio':
+          $options = array(
+            1 => array(
+              'label' => 'Yes',
+              'amount' => '50.00',
+            ),
+            2 => array(
+              'label' => 'No',
+              'amount' => '0',
+            ),
+          );
+          $this->addMultipleChoiceOptions($options, $validateStrings);
+          $this->check('is_required');
+          if ($dateSpecificFields == TRUE) {
+            $this->webtestFillDateTime('active_on', '-1 week');
+          }
+          break;
+
+        case 'CheckBox':
+          $options = array(
+            1 => array(
+              'label' => 'First Night',
+              'amount' => '15.00',
+            ),
+            2 => array(
+              'label' => 'Second Night',
+              'amount' => '15.00',
+            ),
+          );
+          $this->addMultipleChoiceOptions($options, $validateStrings);
+          if ($dateSpecificFields == TRUE) {
+            $this->webtestFillDateTime('expire_on', '+1 week');
+          }
+          break;
+
+        default:
+          break;
+      }
+      $this->select('financial_type_id', "label={$financialType}");
+      $this->clickLink('_qf_Field_next_new-bottom', '_qf_Field_next-bottom', FALSE);
+      $this->waitForText('crm-notification-container', "Price Field '$label' has been saved.");
+    }
+  }
+
   /**
    * Delete Financial Account.
    * @param $financialAccountTitle