On Wed, 6 May 2009, David Mintz wrote: > It's a little > harder to create simulated http environments complete with cookies and > sessions
My usual answer: it depends :-) Some PHP frameworks, as well supporting unit tests, go a little further and provide functional testing which simulates almost a full browsing session, e.g. in symfony: // Create a new test browser $browser = new sfTestBrowser(); $browser-> get('/foobar/index')-> isStatusCode(200)-> isRequestParameter('module', 'foobar')-> isRequestParameter('action', 'index')-> checkResponseElement('body', '!/This is a temporary page/'); To test for cookies: $b->test()->is($request->getCookie('foo'), 'bar'); // Incoming cookie $cookies = $response->getCookies(); $b->test()->is($cookies['foo'], 'foo=bar'); // Outgoing cookie To test redirects: $b-> get('/foobar/edit/id/1')-> click('go', array('name' => 'dummy'))-> isStatusCode(200)-> isRequestParameter('module', 'foobar')-> isRequestParameter('action', 'update')-> isRedirected()-> // Check that the response is a redirect followRedirect()-> // Manually follow the redirection isStatusCode(200)-> isRequestParameter('module', 'foobar')-> isRequestParameter('action', 'show'); To check for certain elements in the DOM: b->get('/foobar/edit/id/1'); $dom = $b->getResponseDom(); $b->test()->is($dom->getElementsByTagName('input')->item(1)->getAttribute('type'),'text'); I dont know about the Zend Library but symfony has had this for years which goes a long way towards encouraging TDD. -- Aj. _______________________________________________ New York PHP User Group Community Talk Mailing List http://lists.nyphp.org/mailman/listinfo/talk http://www.nyphp.org/show_participation.php