Issue #2698563 by Mile23, ankithashetty: @todo: BrowserTestBase::prepareRequestForGenerator use symfony Request

merge-requests/3064/merge
catch 2023-01-25 14:47:12 +00:00
parent bfe3f5dc98
commit 8ef98588ae
1 changed files with 4 additions and 14 deletions

View File

@ -251,32 +251,22 @@ trait FunctionalTestSetupTrait {
*/ */
protected function prepareRequestForGenerator($clean_urls = TRUE, $override_server_vars = []) { protected function prepareRequestForGenerator($clean_urls = TRUE, $override_server_vars = []) {
$request = Request::createFromGlobals(); $request = Request::createFromGlobals();
$server = $request->server->all();
if (basename($server['SCRIPT_FILENAME']) != basename($server['SCRIPT_NAME'])) {
// We need this for when the test is executed by run-tests.sh.
// @todo Remove this once run-tests.sh has been converted to use a Request
// object.
$cwd = getcwd();
$server['SCRIPT_FILENAME'] = $cwd . '/' . basename($server['SCRIPT_NAME']);
$base_path = rtrim($server['REQUEST_URI'], '/');
}
else {
$base_path = $request->getBasePath(); $base_path = $request->getBasePath();
}
if ($clean_urls) { if ($clean_urls) {
$request_path = $base_path ? $base_path . '/user' : 'user'; $request_path = $base_path ? $base_path . '/user' : 'user';
} }
else { else {
$request_path = $base_path ? $base_path . '/index.php/user' : '/index.php/user'; $request_path = $base_path ? $base_path . '/index.php/user' : '/index.php/user';
} }
$server = array_merge($server, $override_server_vars);
$server = array_merge($request->server->all(), $override_server_vars);
$request = Request::create($request_path, 'GET', [], [], [], $server); $request = Request::create($request_path, 'GET', [], [], [], $server);
// Ensure the request time is REQUEST_TIME to ensure that API calls // Ensure the request time is REQUEST_TIME to ensure that API calls
// in the test use the right timestamp. // in the test use the right timestamp.
$request->server->set('REQUEST_TIME', REQUEST_TIME); $request->server->set('REQUEST_TIME', REQUEST_TIME);
$this->container->get('request_stack')->push($request);
$this->container->get('request_stack')->push($request);
// The request context is normally set by the router_listener from within // The request context is normally set by the router_listener from within
// its KernelEvents::REQUEST listener. In the parent site this event is not // its KernelEvents::REQUEST listener. In the parent site this event is not
// fired, therefore it is necessary to update the request context manually // fired, therefore it is necessary to update the request context manually