You are here

public function SubPathautoTest::testOutboundSubPath in Sub-pathauto (Sub-path URL Aliases) 8

@covers ::processOutbound

File

tests/src/Unit/SubPathautoTest.php, line 178

Class

SubPathautoTest
@coversDefaultClass \Drupal\subpathauto\PathProcessor @group subpathauto

Namespace

Drupal\Tests\subpathauto\Unit

Code

public function testOutboundSubPath() {
  $this->aliasProcessor
    ->expects($this
    ->any())
    ->method('processOutbound')
    ->willReturnCallback([
    $this,
    'aliasByPathCallback',
  ]);
  $this->subPathautoSettings
    ->expects($this
    ->atLeastOnce())
    ->method('get')
    ->willReturn(0);

  // Look up a subpath of the 'content/first-node' alias.
  $processed = $this->pathProcessor
    ->processOutbound('/node/1/a');
  $this
    ->assertEquals('/content/first-node/a', $processed);

  // Look up a multilevel subpath of the '/content/first-node' alias.
  $processed = $this->pathProcessor
    ->processOutbound('/node/1/kittens/more-kittens');
  $this
    ->assertEquals('/content/first-node/kittens/more-kittens', $processed);

  // Look up a subpath of the 'content/first-node-test' alias.
  $processed = $this->pathProcessor
    ->processOutbound('/node/1/test/a');
  $this
    ->assertEquals('/content/first-node-test/a', $processed);

  // Look up an admin sub-path of the 'content/first-node' alias without
  // disabling sub-paths for admin.
  $processed = $this->pathProcessor
    ->processOutbound('/node/1/edit');
  $this
    ->assertEquals('/content/first-node/edit', $processed);

  // Look up an admin sub-path without disabling sub-paths for admin.
  $processed = $this->pathProcessor
    ->processOutbound('/admin/modules');
  $this
    ->assertEquals('/malicious-path/modules', $processed);
}