私のテストでは、リクエストに合わせてCookieを指定したいと思います。コードをさかのぼって、クライアントの__constructでCookiejarがどのように使用されているかを確認しました。ここのvar_dumpとサーバー側のvar_dumpは、リクエストとともに送信されたCookieを示していませんが。また、図のようにHTTP_COOKIEを使用してより単純な文字列を送信してみました。
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\BrowserKit\Cookie;
use Symfony\Component\BrowserKit\CookieJar;
class DefaultControllerTest extends WebTestCase {
public function test() {
$jar = new CookieJar();
$cookie = new Cookie('locale2', 'fr', time() + 3600 * 24 * 7, '/', null, false, false);
$jar->set($cookie);
$client = static::createClient(array(), array(), $jar); //this doesn't seem to attach cookies as expected!
$crawler = $client->request(
'GET', //method
'/', //uri
array(), //parameters
array(), //files
array(
'HTTP_ACCEPT_LANGUAGE' => 'en_US',
//'HTTP_COOKIE' => 'locale2=fr' //this doesn't work either!
) //server
);
var_dump($client->getRequest());
}
}