'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('' . t('Feedback') . '', 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('' . t('Feedback') . '', 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.'));
}
}