function UpcastingTest::testUpcasting
Confirms that all parameters are converted as expected.
All of these requests end up being processed by a controller with the signature: f($user, $node, $foo) returning either values or labels like "user: Dries, node: First post, foo: bar"
The test shuffles the parameters around and checks if the right thing is happening.
File
- 
              core/modules/ system/ tests/ src/ Functional/ ParamConverter/ UpcastingTest.php, line 32 
Class
- UpcastingTest
- Tests upcasting of URL arguments to entities.
Namespace
Drupal\Tests\system\Functional\ParamConverterCode
public function testUpcasting() {
  $node = $this->drupalCreateNode([
    'title' => $this->randomMachineName(8),
  ]);
  $user = $this->drupalCreateUser([
    'access content',
  ]);
  $foo = 'bar';
  // paramconverter_test/test_user_node_foo/{user}/{node}/{foo}
  $this->drupalGet("paramconverter_test/test_user_node_foo/" . $user->id() . '/' . $node->id() . "/{$foo}");
  // Verify user and node upcast by entity name.
  $this->assertSession()
    ->pageTextContains("user: {$user->label()}, node: {$node->label()}, foo: {$foo}");
  // paramconverter_test/test_node_user_user/{node}/{foo}/{user}
  // options.parameters.foo.type = entity:user
  $this->drupalGet("paramconverter_test/test_node_user_user/" . $node->id() . "/" . $user->id() . "/" . $user->id());
  // Verify foo converted to user as well.
  $this->assertSession()
    ->pageTextContains("user: {$user->label()}, node: {$node->label()}, foo: {$user->label()}");
  // paramconverter_test/test_node_node_foo/{user}/{node}/{foo}
  // options.parameters.user.type = entity:node
  $this->drupalGet("paramconverter_test/test_node_node_foo/" . $node->id() . "/" . $node->id() . "/{$foo}");
  // Verify that user is upcast to node (rather than to user).
  $this->assertSession()
    ->pageTextContains("user: {$node->label()}, node: {$node->label()}, foo: {$foo}");
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
