class RulesEventDispatcherTestCase

Same name and namespace in other branches
  1. 7.x-2.x tests/rules.test \RulesEventDispatcherTestCase

Test event dispatcher functionality.

Hierarchy

Expanded class hierarchy of RulesEventDispatcherTestCase

File

d7-tests/rules_test_event_dispatcher_case.test, line 17

View source
class RulesEventDispatcherTestCase extends DrupalWebTestCase {
  static function getInfo() {
    return array(
      'name' => 'Rules event dispatchers',
      'description' => 'Tests event dispatcher functionality.',
      'group' => 'Rules',
    );
  }
  function setUp() {
    parent::setUp('rules', 'rules_test');
  }
  
  /**
   * Tests start and stop functionality.
   */
  public function testStartAndStop() {
    $handler = rules_get_event_handler('rules_test_event');
    $rule = rules_reaction_rule();
    $rule->event('rules_test_event');
    // The handler should not yet be watching.
    $this->assertFalse($handler->isWatching());
    // Once saved, the event cache rebuild should start the watcher.
    $rule->save();
    RulesEventSet::rebuildEventCache();
    $this->assertTrue($handler->isWatching());
    // Deleting should stop the watcher.
    $rule->delete();
    $this->assertFalse($handler->isWatching());
  }
  
  /**
   * Tests start and stop functionality when used with multiple events.
   */
  public function testStartAndStopMultiple() {
    $handler = rules_get_event_handler('rules_test_event');
    // Initially, the task handler should not be watching.
    $this->assertFalse($handler->isWatching());
    // Set up five rules that all use the same event.
    $rules = array();
    foreach (array(
      1,
      2,
      3,
      4,
      5,
    ) as $key) {
      $rules[$key] = rules_reaction_rule();
      $rules[$key]->event('rules_test_event');
      $rules[$key]->save();
    }
    // Once saved, the event cache rebuild should start the watcher.
    RulesEventSet::rebuildEventCache();
    $this->assertTrue($handler->isWatching());
    // It should continue watching until all events are deleted.
    foreach ($rules as $key => $rule) {
      $rule->delete();
      $this->assertEqual($key !== 5, $handler->isWatching());
    }
  }

}

Members

Title Sort descending Modifiers Object type Summary
RulesEventDispatcherTestCase::getInfo static function
RulesEventDispatcherTestCase::setUp function
RulesEventDispatcherTestCase::testStartAndStop public function Tests start and stop functionality.
RulesEventDispatcherTestCase::testStartAndStopMultiple public function Tests start and stop functionality when used with multiple events.