Comment éviter la redirection vers la page « activer les cookies- » lors du test de l'unité de commande?

magento.stackexchange https://magento.stackexchange.com/questions/655

Question

Je fais un test de contrôleur très simple en utilisant Ecomdev_PHPUnit:

class Foo_BarWishlist_Test_Controller_IndexController 
    extends EcomDev_PHPUnit_Test_Case_Controller
{

    /**
     * @test
     * @loadFixture ~Foo_BarWishlist/default
     */
    public function fromcartAction()
    {
        $this->dispatch('checkout/cart/add', array('product' => 10));
        $this->assertRequestDispatched();
        $body = self::getResponse()->getOutputBody();
        $this->assertResponseBodyContains('success-msg');
    }

  ...

Ce test échoue parce que $body est vide. Lors de la vérification self::getResponse() plus près, je vois qu'une redirection vers la page CMS enable-cookies a été envoyé.

Comment puis-je prendre soin de tout cela? Est-ce que je dois régler le check-cookies manuellement? Dois-je ouvrir une autre page avant (j'ai essayé déjà $this->dispatch('/') avant l'expédition réelle)? Ou est-il un problème de cookie général lors des essais du régulateur?

Était-ce utile?

La solution

Il y a un paramètre pour dans le panneau d'administration:

Web> (capacités de détection du navigateur) Rediriger CMS page si les cookies sont désactivés

Ce paramètre peut également être défini lors des essais en utilisant un appareil de configuration.

Autres conseils

Je crois que cette réponse de débordement de pile aidera:
https://stackoverflow.com/questions/14612349/cant-get- session singleton en ecomdev-phpunit test

L'idée de base est de se moquer de la session afin alors votre action « ajouter au panier » est un succès au lieu de rediriger vers la page « désactivé les cookies ».

$sessionMock = $this->getModelMockBuilder('admin/session')

    // This one removes `session_start` and other methods
    ->disableOriginalConstructor()

    // Enables original methods usage, because by default it overrides all methods
    ->setMethods(null)

    ->getMock();

$this->replaceByMock('singleton', 'admin/session', $sessionMock);
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top