You are here

public function UrlDecodeTest::testUrlDecodeLegacyMethod in Tamper 8

Tests url decoding using the 'legacy' method.

The legacy method uses the PHP function urldecode().

The following cases are tested:

  • decoding symbols;
  • decoding a string with spaces;
  • decoding special characters.

File

tests/src/Unit/Plugin/Tamper/UrlDecodeTest.php, line 33

Class

UrlDecodeTest
Tests the url decode plugin.

Namespace

Drupal\Tests\tamper\Unit\Plugin\Tamper

Code

public function testUrlDecodeLegacyMethod() {
  $this
    ->expectException(TamperException::class);
  $this
    ->expectExceptionMessage('Input should be a string.');
  $config = [
    UrlDecode::SETTING_METHOD => 'urldecode',
  ];
  $plugin = new UrlDecode($config, 'url_decode', [], $this
    ->getMockSourceDefinition());
  $this
    ->assertEquals('$ & < > ? ; # : = , " \' ~ + %', $plugin
    ->tamper('%24+%26+%3C+%3E+%3F+%3B+%23+%3A+%3D+%2C+%22+%27+%7E+%2B+%25'));
  $this
    ->assertEquals('String with spaces', $plugin
    ->tamper('String+with+spaces'));
  $this
    ->assertEquals('special chars: &%*', $plugin
    ->tamper('special+chars%3A+%26%25%2A'));
  $plugin
    ->tamper([
    'fOo',
    'BAR',
  ]);
  $plugin
    ->tamper(14567);
}