Клиент 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.