function CommonXssUnitTest::testInvalidMultiByte

Check that invalid multi-byte sequences are rejected.

File

modules/simpletest/tests/common.test, line 502

Class

CommonXssUnitTest
Tests for check_plain(), filter_xss(), format_string(), and check_url().

Code

function testInvalidMultiByte() {
    // Ignore PHP 8.0+ null deprecations.
    $text = check_plain(NULL);
    $this->assertEqual($text, '', 'check_plain() casts null to string');
    $text = check_plain(FALSE);
    $this->assertEqual($text, '', 'check_plain() casts boolean to string');
    $text = filter_xss(NULL);
    $this->assertEqual($text, '', 'filter_xss() casts null to string');
    $text = filter_xss(FALSE);
    $this->assertEqual($text, '', 'filter_xss() casts boolean to string');
    // Ignore PHP 5.3+ invalid multibyte sequence warning.
    $text = @check_plain("Foo\xc0barbaz");
    $this->assertEqual($text, '', 'check_plain() rejects invalid sequence "Foo\\xC0barbaz"');
    // Ignore PHP 5.3+ invalid multibyte sequence warning.
    $text = @check_plain("\xc2\"");
    $this->assertEqual($text, '', 'check_plain() rejects invalid sequence "\\xc2\\""');
    $text = check_plain("Fooÿñ");
    $this->assertEqual($text, "Fooÿñ", 'check_plain() accepts valid sequence "Fooÿñ"');
    $text = filter_xss("Foo\xc0barbaz");
    $this->assertEqual($text, '', 'filter_xss() rejects invalid sequence "Foo\\xC0barbaz"');
    $text = filter_xss("Fooÿñ");
    $this->assertEqual($text, "Fooÿñ", 'filter_xss() accepts valid sequence Fooÿñ');
}

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