function PHPFilterTestCase::testPHPFilter

Makes sure that the PHP filter evaluates PHP code when used.

File

modules/php/php.test, line 65

Class

PHPFilterTestCase
Tests to make sure the PHP filter actually evaluates PHP code when used.

Code

function testPHPFilter() {
    // Log in as a user with permission to use the PHP code text format.
    $php_code_permission = filter_permission_name(filter_format_load('php_code'));
    $web_user = $this->drupalCreateUser(array(
        'access content',
        'create page content',
        'edit own page content',
        $php_code_permission,
    ));
    $this->drupalLogin($web_user);
    // Create a node with PHP code in it.
    $node = $this->createNodeWithCode();
    // Make sure that the PHP code shows up as text.
    $this->drupalGet('node/' . $node->nid);
    $this->assertText('print "SimpleTest PHP was executed!"', 'PHP code is displayed.');
    // Change filter to PHP filter and see that PHP code is evaluated.
    $edit = array();
    $langcode = LANGUAGE_NONE;
    $edit["body[{$langcode}][0][format]"] = $this->php_code_format->format;
    $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
    $this->assertRaw(t('Basic page %title has been updated.', array(
        '%title' => $node->title,
    )), 'PHP code filter turned on.');
    // Make sure that the PHP code shows up as text.
    $this->assertNoText('print "SimpleTest PHP was executed!"', "PHP code isn't displayed.");
    $this->assertText('SimpleTest PHP was executed!', 'PHP code has been evaluated.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.