Клиент Symfony DomCrawler->request() не пройдет мимо страницы входа

Я борюсь с компонентом 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.

0 ответов

Другие вопросы по тегам