Estoy probando mi aplicación Zend Framework usando Selenium y PHPUnit. Tengo una prueba que necesita para abrir una URL que contiene una URL codificada.Zend Framework: Apache descodifica la URL codificada en lugar de pasar la URL codificada.
$redirectToLocation = urlencode('/myothercontroller/action'); // %2Fmyothercontroller%2Faction
$this->openAndWait('/controller/action/thenRedirectTo/' . $redirectToLocation);
Pero cuando corro mi prueba, el navegador intentado abrir la URL decodificada:
/controller/action/thenRedirectTo//myothercontroller/action
¿Qué debo hacer para obtener el selenio para abrir la URL codificada?
Actualización: ... En realidad resulta que el selenio está haciendo su trabajo, pero parece como si Apache está decodificando la URL antes de que llegue al controlador:
The requested URL /controller/action/thenRedirectTo//myothercontroller/action was not found on this server.
Cómo debería solucionar este problema ?
Actualización: Aquí hay una conversación sobre el mismo problema que estoy teniendo: http://old.nabble.com/URL-Encoding-td18850769.html. Su solución fue codificar64 base64, pero eso no es lo suficientemente bueno para mí. Puedo usar esta solución a corto plazo, pero quiero saber cuál es la causa real de este problema, para poder eliminarlo.
Actualización: Tengo un compañero de trabajo que cree que puede haber un problema con la forma en Zend Framework es el enrutamiento de la petición. ¿Crees que podría ser el caso?
No lo he probado, pero podría funcionar. Sin embargo, preferiría ajustar Apache para que funcione correctamente, en lugar de piratear mi código. – Andrew
Es una solución fea. Estoy de acuerdo en que Apache no debería meterse con esto. Sin duda, esto es configurable de alguna manera? – mcv