function FunctionalTestSetupTrait::prepareRequestForGenerator
Creates a mock request and sets it on the generator.
This is used to manipulate how the generator generates paths during tests. It also ensures that calls to $this->drupalGet() will work when running from run-tests.sh because the URL generator no longer looks at the global variables that are set there but relies on getting this information from a request object.
Parameters
bool $clean_urls: Whether to mock the request using clean URLs.
array $override_server_vars: An array of server variables to override.
Return value
\Symfony\Component\HttpFoundation\Request The mocked request object.
3 calls to FunctionalTestSetupTrait::prepareRequestForGenerator()
- DownloadTest::testFileCreateUrl in core/modules/ file/ tests/ src/ Functional/ DownloadTest.php 
- Test FileUrlGeneratorInterface::generateString()
- ImageStylesPathAndUrlTest::doImageStyleUrlAndPathTests in core/modules/ image/ tests/ src/ Functional/ ImageStylesPathAndUrlTest.php 
- Tests building an image style URL.
- LanguageUrlRewritingTest::testDomainNameNegotiationPort in core/modules/ language/ tests/ src/ Functional/ LanguageUrlRewritingTest.php 
- Check URL rewriting when using a domain name and a non-standard port.
File
- 
              core/lib/ Drupal/ Core/ Test/ FunctionalTestSetupTrait.php, line 274 
Class
- FunctionalTestSetupTrait
- Defines a trait for shared functional test setup functionality.
Namespace
Drupal\Core\TestCode
protected function prepareRequestForGenerator($clean_urls = TRUE, $override_server_vars = []) {
  $request = Request::createFromGlobals();
  $request->setSession(new Session(new MockArraySessionStorage()));
  $base_path = $request->getBasePath();
  if ($clean_urls) {
    $request_path = $base_path ? $base_path . '/user' : 'user';
  }
  else {
    $request_path = $base_path ? $base_path . '/index.php/user' : '/index.php/user';
  }
  $server = array_merge($request->server
    ->all(), $override_server_vars);
  $request = Request::create($request_path, 'GET', [], [], [], $server);
  $request->setSession(new Session(new MockArraySessionStorage()));
  // Ensure the request time is \Drupal::time()->getRequestTime() to ensure
  // that API calls in the test use the right timestamp.
  $request->server
    ->set('REQUEST_TIME', \Drupal::time()->getRequestTime());
  $this->container
    ->get('request_stack')
    ->push($request);
  // The request context is normally set by the router_listener from within
  // its KernelEvents::REQUEST listener. In the parent site this event is not
  // fired, therefore it is necessary to update the request context manually
  // here.
  $this->container
    ->get('router.request_context')
    ->fromRequest($request);
  return $request;
}Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
