Клиент Symfony DomCrawler-> request () не пройдет мимо страницы входа - PullRequest
0 голосов
/ 17 ноября 2018

Я борюсь с компонентом DomCrawler для Symfony, в частности с клиентом Метод запроса Я пытался попасть по URL-адресу на моем сайте, "/ foo / path / foo-user-1" где "foo-user-1" - это параметр, через который я прошел. Строка uri, как и ожидалось, но по какой-то причине Я не могу пройти мимо страницы входа в систему .

Я подозреваю, что это может быть связано с тем, что у моего приложения есть путь (app_dev.php), и я не учитываю это в своих тестах ...?

Заранее спасибо за любую помощь в этом!

<?php
namespace App\FooBundle\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class FooTest extends WebTestCase
{
    public function testFooAction()
    {
        // making a request on the client:
        $client = self::createClient([], array("HTTP_HOST" => "127.0.0.1"));
        $client->followRedirects(true);

        $url = $client->getContainer()->get("router")->generate(
            'Route_name'
            array("barParam" => "foo-user-1")
        );
        // $url => "/foo/path/foo-user-1"

        $crawler = $client->request(
            "GET",
            $url
        );

        print_r($crawler); // => returns my login page html
        // uri:        https://127.0.0.1/login
        // actual url: https://127.0.0.1/app_dev.php/login
    }
 }

+------------------+------------+
|         Q        |     A      |
+------------------+------------+
| Symfony Version? |  2.7.49    |
+------------------+------------+
| Php Version      |  5.6.36    |
+------------------+------------+
| PHPUnit          | 5.7.27     |
+------------------+------------+
| OS               | Mac 10.12.6|
+------------------+------------+

РЕДАКТИРОВАТЬ: Я также повторил этот сценарий, используя последние версии Symfony и php, и он прекрасно работает. Я уверен, что это связано с тем, что моя версия Symfony настолько устарела, что я сомневаюсь, что DomCrawler полностью совместим с Symfony 2.7.x.

...