You are here

protected function UCXFTestCase::checkTokens in Extra Fields Checkout Pane 6.2

Same name and namespace in other branches
  1. 7 uc_extra_fields_pane.test \UCXFTestCase::checkTokens()

Test if tokens are properly generated.

Parameters

array $values: An array of ucxf values, grouped by field name.

int $order_id: The Ubercart order ID

int $type: The value element type

Return value

void

1 call to UCXFTestCase::checkTokens()
UCXFTestCase::checkout in ./uc_extra_fields_pane.test
Overrides UbercartTestHelper::checkout().

File

./uc_extra_fields_pane.test, line 370
Automated tests for Extra Fields Pane

Class

UCXFTestCase
Base class for all Extra Fields Pane test cases.

Code

protected function checkTokens($values, $order_id, $type) {
  $order = uc_order_load($order_id);
  foreach ($values as $db_name => $value) {
    $field = UCXF_FieldList::getFieldByName($db_name);
    $db_name = str_replace('ucxf_', '', $field->db_name);

    // Generate token name
    $token_name = '';
    switch ($type) {
      case UCXF_Value::UCXF_VALUE_ORDER_INFO:
        $token_name = 'extra-' . $field->pane_type . '-' . $db_name;
        break;
      case UCXF_Value::UCXF_VALUE_ORDER_DELIVERY:
        $token_name = 'extra-extra_delivery-' . $db_name;
        break;
      case UCXF_Value::UCXF_VALUE_ORDER_BILLING:
        $token_name = 'extra-extra_billing-' . $db_name;
        break;
    }

    // Test if generated token value is equal to expected output.
    $text = TOKEN_PREFIX . $token_name . TOKEN_SUFFIX;
    $token_value = token_replace($text, 'order', $order);
    $this
      ->assertEqual($field
      ->output_value($value), $token_value, t('The token for %field is properly generated.', array(
      '%field' => $field->db_name,
    )));
  }
}