CronExampleTestCase

  1. examples
    1. 7 cron_example/cron_example.test
    2. 8 cron_example/cron_example.test

cron_example test class

Hierarchy

Properties

NameDescription
CronExampleTestCase::$web_user

Functions & methods

NameDescription
CronExampleTestCase::getInfo
CronExampleTestCase::setUpEnable modules and create user with specific permissions.
CronExampleTestCase::testCronExampleBasicLogin user, create an example node, and test block functionality through the admin and user interfaces.

File

cron_example/cron_example.test, line 15
Test case for testing the cron example module.

View source
class CronExampleTestCase extends DrupalWebTestCase {
  protected $web_user;

  public static function getInfo() {
    return array(
      'name' => 'Cron example functionality', 
      'description' => 'Test the functionality of the Cron Example.', 
      'group' => 'Examples',
    );
  }

  /**
   * Enable modules and create user with specific permissions.
   */
  function setUp() {
    parent::setUp('cron_example');
    // Create user. Search content permission granted for the search block to
    // be shown.
    $this->web_user = $this->drupalCreateUser(array('administer site configuration'));
    $this->drupalLogin($this->web_user);
  }

  /**
   * Login user, create an example node, and test block functionality through
   * the admin and user interfaces.
   */
  function testCronExampleBasic() {
    // Pretend that cron has never been run (even though simpletest seems to
    // run it once...)
    variable_set('cron_example_next_execution', 0);
    $this->drupalGet('examples/cron_example');

    // Initial run should cause cron_example_cron() to fire.
    $post = array();
    $this->drupalPost('examples/cron_example', $post, t('Run cron now'));
    $this->assertText(t('cron_example executed at'));

    // Forcing should also cause cron_example_cron() to fire.
    $post['cron_reset'] = TRUE;
    $this->drupalPost(NULL, $post, t('Run cron now'));
    $this->assertText(t('cron_example executed at'));

    // But if followed immediately and not forced, it should not fire.
    $post['cron_reset'] = FALSE;
    $this->drupalPost(NULL, $post, t('Run cron now'));
    $this->assertNoText(t('cron_example executed at'));


    $this->assertText(t('There are currently 0 items in queue 1 and 0 items in queue 2'));
    $post = array(
      'num_items' => 5, 
      'queue' => 'cron_example_queue_1',
    );
    $this->drupalPost(NULL, $post, t('Add jobs to queue'));
    $this->assertText('There are currently 5 items in queue 1 and 0 items in queue 2');
    $post = array(
      'num_items' => 100, 
      'queue' => 'cron_example_queue_2',
    );
    $this->drupalPost(NULL, $post, t('Add jobs to queue'));
    $this->assertText('There are currently 5 items in queue 1 and 100 items in queue 2');

    $post = array();
    $this->drupalPost('examples/cron_example', $post, t('Run cron now'));
    $this->assertPattern('/Queue 1 worker processed item with sequence 5 /');
    $this->assertPattern('/Queue 2 worker processed item with sequence 100 /');
  }
}

Related topics

Login or register to post comments