-- Jani Hartikainen <[EMAIL PROTECTED]> wrote
(on Thursday, 14 August 2008, 09:05 PM +0300):
> Is it possible to use the request parameters to dispatch
> to a specific controller with Zend_Test? For some reason it
> wouldn't work for me unless I provided an url.
>
> For example:
>
> $this->request->setModuleName('foo');
> $this->request->setControllerName('foo');
> $this->request->setActionName('foo');
> $this->dispatch();
>
> would not work. However, the following:
>
> $this->dispatch('/foo/foo/foo');
>
> worked just fine.
>
> I was wondering if there's something I was doing
> wrong or what could possibly affect the dispatching,
> if it should work with the above set*Name methods too.
>
>
> The reason I wanted to test without the exact url
> is because the url could change depending on the routing,
> but the modules etc. should always stay the same.Zend_Test still uses the entire dispatch sequence, which includes routing. Currently, the router overwrites the request with what it discovers in the environment -- using defaults if nothing is found. So, this is why your experiment didn't work. This tells me that we need to perhaps make one or more changes: * router and/or routes should not overwrite the module/controller/action unless actually found * modify Zend_Test's dispatch() method to use a null router when no URL is provided These changes should be discussed, however; each has benefits and each has problems. -- Matthew Weier O'Phinney Software Architect | [EMAIL PROTECTED] Zend Framework | http://framework.zend.com/
