function RulesInvocationEnabledTestCase::testInvocationOnNodeMenuLoading

Tests that a Rules event is triggered on node menu item loading.

See also

rules_test_invocation_node_load()

File

tests/rules.test, line 2245

Class

RulesInvocationEnabledTestCase
Test early bootstrap Rules invocation.

Code

public function testInvocationOnNodeMenuLoading() {
    // Create a test node.
    $node = $this->drupalCreateNode(array(
        'title' => 'Test',
    ));
    // Enable Rules logging on the INFO level so that entries are written to
    // dblog.
    variable_set('rules_log_errors', RulesLog::INFO);
    // Create an empty rule that will fire in our node load hook.
    $rule = rules_reaction_rule();
    $rule->event('rules_test_event');
    $rule->save('test_rule');
    // Visit the node page which should trigger the load hook.
    $this->drupalGet('node/' . $node->nid);
    $result = db_query("SELECT * FROM {watchdog} WHERE type = 'rules' AND message = 'Reacting on event %label.'")->fetch();
    $this->assertFalse(empty($result), 'Rules event was triggered and logged.');
}