Ho un modello di ramoscello con {{ app.user }}
. Il problema è che in un test phpunit (una classe che estende WebTestCase
) è definito come NULL. Simulare l'autenticazione con un token (http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html) o simulare l'autenticazione HTTP (http://symfony.com/doc/current/cookbook/testing/http_authentication.html) non aiuta. Quindi, come posso impostare una variabile globale di ramoscello da un test phpunit? E perché simulare l'autenticazione non funziona in questo caso?Symfony2 accesso a variabili globali da un modello di ramoscello nel test phpunit
risposta
ho avuto un problema simile (login correttamente) che cosa ha risolto finalmente per me è stato quello di cambiare il mio modo di login (si basa su http://symfony.com/doc/current/cookbook/testing/simulating_authentication.html ma gestire la sessione in modo diverso):
public function setUp() {
parent::setUp();
$this->em = $this->get('doctrine')->getManager();
$this->client = static::createClient(array('environment' => 'test'));
}
protected function logIn() {
$repo = $this->em->getRepository('XXXXXXX');
$user = $repo->findOneByUsername('YYYYYYY');
$session = new Session(new MockFileSessionStorage());
$firewall = 'main';
$token = new UsernamePasswordToken($user, null, $firewall, array('ROLE_ADMIN'));
$this->client->getContainer()->get('security.context')->setToken($token);
$session->set('_security_' . $firewall, serialize($token));
$session->save();
$this->client->getContainer()->set('session', $session);
$cookie = new Cookie($session->getName(), $session->getId());
$this->client->getCookieJar()->set($cookie);
return $user;
}
Grazie! Ha funzionato per me, ma ho anche aggiunto una riga '$ this-> client-> getContainer() -> get ('security.context') -> setToken ($ token);' – Phantom
Aveva lo stesso problema ma tutto Avevo bisogno di cambiare nell'esempio dai documenti di Symfony è di passare all'intero '$ user'object come primo parametro per il costruttore' UsernamePasswordToken', invece del solo nome utente. Ma questa soluzione mi ha aiutato a capirlo, quindi grazie mille! – Koen
- 1. Symfony2 conteggio nel modello di ramoscello
- 2. Symfony2 percorso dell'immagine nel modello ramoscello
- 3. Come faccio a leggere le impostazioni di configurazione da Symfony2 config.yml nel modello di ramoscello?
- 4. Accesso alle variabili del template di ramoscello da php
- 5. accesso variabili globali all'interno di un callback
- 6. Symfony2 entityManager nel modello
- 7. Come posso definire le variabili globali all'interno di un file modello di ramoscello?
- 8. Django, variabili di modello globali
- 9. Mostra nome utente token symfony2 nel ramoscello
- 10. Variabili di ramoscello nella variabile di ramoscello
- 11. utente Symfony2 accesso dal servizio di estensione ramoscello
- 12. le variabili globali sono nulle quando si utilizza PHPUnit
- 13. Costanti globali in PHPUnit
- 14. Come posso ottenere gli errori di un singolo campo nel modello di ramoscello di Symfony2?
- 15. Il ramoscello Symfony2 converte i valori delle variabili nel tag {% trans%}
- 16. PHP & Twig: Difficoltà accesso variabili nel modello
- 17. Symfony2, ramoscello e JavaScript
- 18. Accesso a variabili globali in uno script PHP separato?
- 19. Symfony2 - Come accedere i nomi delle variabili dinamiche in ramoscello
- 20. Symfony2 ramoscello render, eccezione generata
- 21. Accesso a variabili globali da una funzione in un modulo importato
- 22. Symfony2 Accesso alle variabili di percorso
- 23. Errore con PHPUnit in Symfony2
- 24. Symfony2 - Ottieni un'entità invece di PersistentCollection nel ramoscello
- 25. Symfony2 Assetic + Ramoscello Template JavaScript Inheritance
- 26. dichiarazione di variabili globali nel progetto iPhone
- 27. symfony2 genera html statico con ramoscello
- 28. Accesso risultati Visualizza da variabili nel codice
- 29. Ramoscello Symfony2 ottenere Richiesta variabile
- 30. Passaggio della variabile nel modello di ramoscello incluso con variabile nel nome del modello
versioni: symfony: 2.3.2 phpunit: 4.0.19 php: 5.5.6 – Phantom