function RulesTriggerTestCase::testReactiveRuleCreation

Same name and namespace in other branches
  1. 8.x-3.x d7-tests/rules_test_trigger_case.test \RulesTriggerTestCase::testReactiveRuleCreation()

Tests CRUD for reaction rules - making sure the events are stored properly.

File

tests/rules.test, line 1150

Class

RulesTriggerTestCase
Test triggering rules.

Code

public function testReactiveRuleCreation() {
  $rule = $this->createTestRule();
  $rule->save();
  $result = db_query("SELECT event FROM {rules_trigger} WHERE id = :id", array(
    ':id' => $rule->id,
  ));
  $this->assertEqual($result->fetchField(), 'node_presave', 'Associated event has been saved.');
  // Try updating.
  $rule->removeEvent('node_presave');
  $rule->event('node_insert');
  $rule->event('node_update');
  $rule->active = FALSE;
  $rule->integrityCheck()
    ->save();
  $result = db_query("SELECT event FROM {rules_trigger} WHERE id = :id", array(
    ':id' => $rule->id,
  ));
  $this->assertEqual($result->fetchCol(), array_values($rule->events()), 'Updated associated events.');
  // Try deleting.
  $rule->delete();
  $result = db_query("SELECT event FROM {rules_trigger} WHERE id = :id", array(
    ':id' => $rule->id,
  ));
  $this->assertEqual($result->fetchField(), FALSE, 'Deleted associated events.');
}