function RulesI18nTestCase::testI18nActionT

Tests the "Translate a text" action.

File

rules_i18n/rules_i18n.test, line 136

Class

RulesI18nTestCase
Test the i18n integration.

Code

public function testI18nActionT() {
  $set = rules_action_set(array());
  $set->action('rules_i18n_t', array(
    'text' => 'untranslated',
    'language' => 'de',
  ));
  $set->action('drupal_message', array(
    'message:select' => 'text',
  ));
  $set->save('rules_i18n_test');
  // Add a translation.
  $actions = $set->getIterator();
  $id = $actions[0]->elementId();
  i18n_string_textgroup('rules')->update_translation("rules_config:{$set->name}:{$id}:text", 'de', 'text-de');
  // Clear messages and execute it.
  drupal_get_messages();
  $set->execute();
  $messages = drupal_get_messages();
  $this->assertEqual($messages['status'][0], 'text-de', 'Text has been successfully translated.');
  // Enable the PHP module and make sure PHP in translations is not evaluated.
  module_enable(array(
    'php',
  ));
  i18n_string_textgroup('rules')->update_translation("rules_config:{$set->name}:{$id}:text", 'de', 'text <?php echo "eval";?>');
  // Clear messages and execute it.
  drupal_get_messages();
  $set->execute();
  $messages = drupal_get_messages();
  $this->assertEqual($messages['status'][0], check_plain('text <?php echo "eval";?>'), 'PHP in translated text is not executed.');
}