function RulesTestCase::testActionSaving
Same name in other branches
- 8.x-3.x d7-tests/rules_test_case.test \RulesTestCase::testActionSaving()
Tests automatic saving of variables.
File
-
tests/
rules.test, line 313
Class
- RulesTestCase
- Rules test cases.
Code
public function testActionSaving() {
// Test saving a parameter.
$action = rules_action('rules_node_publish_action_save');
$node = $this->drupalCreateNode(array(
'status' => 0,
'type' => 'page',
));
$action->executeByArgs(array(
'node' => $node,
));
$this->assertEqual($node->status, 1, 'Action executed correctly on node.');
// Sync node_load cache with node_save.
entity_get_controller('node')->resetCache();
$node = node_load($node->nid);
$this->assertEqual($node->status, 1, 'Node has been saved.');
// Now test saving a provided variable, which is renamed and modified before
// it is saved.
$title = $this->randomName();
$rule = rule();
$rule->action('entity_create', array(
'type' => 'node',
'param_type' => 'article',
'param_author:select' => 'site:current-user',
'param_title' => $title,
'entity_created:var' => 'node',
));
$rule->action('data_set', array(
'data:select' => 'node:body',
'value' => array(
'value' => 'body',
),
));
$rule->integrityCheck();
$rule->execute();
$node = $this->drupalGetNodeByTitle($title);
$this->assertTrue(!empty($node) && $node->body[LANGUAGE_NONE][0]['value'] == 'body', 'Saved a provided variable');
RulesLog::logger()->checkLog();
}