You are here

feedback.test in Feedback 7.2

Tests for Feedback module.

File

tests/feedback.test
View source
<?php

/**
 * @file
 * Tests for Feedback module.
 */

/**
 * Test basic Feedback functionality.
 */
class FeedbackTestCase extends DrupalWebTestCase {
  protected $profile = 'testing';
  public static function getInfo() {
    return array(
      'name' => 'Feedback functionality',
      'description' => 'Tests basic Feedback module functionality.',
      'group' => 'Feedback',
    );
  }
  function setUp() {

    // @todo Remove soft-dependency on Block.
    parent::setUp(array(
      'block',
      'feedback',
    ));
    $this->admin_user = $this
      ->drupalCreateUser(array(
      'access feedback form',
      'view feedback messages',
      'administer feedback',
    ));
    $this->web_user = $this
      ->drupalCreateUser(array(
      'access feedback form',
    ));
    $this
      ->drupalLogin($this->web_user);
  }

  /**
   * Test a basic feedback message.
   */
  function testFeedbackMessage() {
    $message = $this
      ->randomString();
    $edit = array(
      'message' => $message,
    );
    $this
      ->drupalPost('node', $edit, t('Send feedback'));

    // Verify the message was recorded.
    $this
      ->drupalLogin($this->admin_user);
    $this
      ->drupalGet('admin/reports/feedback');
    $this
      ->assertRaw(check_plain($message), t('Message found.'));
    $this
      ->assertText('node', t('Originating system path found.'));
    $this
      ->assertLinkByHref(url('node', array(
      'absolute' => TRUE,
    )), 0, t('Originating absolute URL found.'));

    // Verify that we can process the message.
    $edit = array(
      'feedback-messages[0][1]' => TRUE,
    );
    $this
      ->drupalPost(NULL, $edit, t('Submit'));
    $this
      ->assertFieldByName('feedback-messages[1][1]', 1, t('Processed message found.'));
  }

  /**
   * Test visibility settings.
   */
  function testFeedbackVisibility() {
    $this
      ->drupalLogin($this->admin_user);
    $this
      ->drupalGet('user');
    $this
      ->assertRaw('<span class="feedback-link">' . t('Feedback') . '</span>', t('Feedback form shown.'));
    $edit = array(
      'feedback_excluded_paths' => 'user*',
    );
    $this
      ->drupalPost('admin/config/user-interface/feedback', $edit, t('Save configuration'));
    $this
      ->drupalGet('user');
    $this
      ->assertNoRaw('<span class="feedback-link">' . t('Feedback') . '</span>', t('Feedback form not shown.'));
  }

  /**
   * Test feedback deletion.
   */
  function testFeedbackDelete() {
    $this
      ->drupalLogin($this->admin_user);
    $message = $this
      ->randomString();
    $edit = array(
      'message' => $message,
    );
    $this
      ->drupalPost('node', $edit, t('Send feedback'));

    // Verify a delete link is shown.
    $this
      ->drupalGet('admin/reports/feedback');
    $this
      ->assertLinkByHref('admin/reports/feedback/1/delete');

    // Verify deletion.
    $this
      ->drupalPost('admin/reports/feedback/1/delete', array(), t('Delete'));
    $this
      ->assertRaw(t('The feedback entry was deleted'), t('Feedback deletion message shown.'));
    $this
      ->assertNoLinkByHref('admin/reports/feedback/1/delete');
    $this
      ->assertNoRaw(check_plain($message), t('Message not found.'));
  }

}

Classes

Namesort descending Description
FeedbackTestCase Test basic Feedback functionality.