protected function generateFile($module) { // get javascript by calling the mmwExtjs action $browser = new sfBrowser(); $browser->get('/' . $module . '/mmwExtjs/'); $javascript = $browser->getResponse()->getContent(); $file = sfMmwExtjsUtil::getJavascriptPath($module, 'base', true); file_put_contents($file, $javascript); chmod($file, 0666); $this->showMessage($module); }
$test_browser = new sfTestFunctional($browser); $test_browser->setTester('json.response', 'sfTesterJsonResponse'); $test_browser->get('/subredditdeadline')->with('request')->begin()->isParameter('module', 'subredditdeadline')->isParameter('action', 'index')->end()->with('response')->begin()->isStatusCode(200)->end()->with('json.response')->begin()->isJson()->end(); /** * Test the creation */ $entity = new Deadline(); $entity_array = $entity->exportTo('array'); $identifier = $entity->getTable()->getIdentifier(); /** * Please build a valid $entity_array here */ unset($entity_array[$identifier]); //$entity_array['name'] = "pony"; //$entity_array['created_at'] = date('Y-m-d H:i:s'); //$entity_array['updated_at'] = date('Y-m-d H:i:s'); $test_browser->call('/subredditdeadline', 'post', array('content' => json_encode($entity_array)))->with('request')->begin()->isParameter('module', 'subredditdeadline')->isParameter('action', 'create')->end()->with('response')->begin()->isStatusCode(200)->end(); /** * If the new entity has been created */ $location = $browser->getResponse()->getHttpHeader('Location'); if ($location) { // Get ? $test_browser->get($location)->with('request')->begin()->isParameter('module', 'subredditdeadline')->isParameter('action', 'show')->end()->with('response')->begin()->isStatusCode(200)->end()->with('json.response')->begin()->isJson()->end(); // Update ? $test_browser->call($location, 'put', array('content' => json_encode($entity_array)))->with('request')->begin()->isParameter('module', 'subredditdeadline')->isParameter('action', 'update')->end()->with('response')->begin()->isStatusCode(200)->end(); // Delete ? $test_browser->call($location, 'delete')->with('request')->begin()->isParameter('module', 'subredditdeadline')->isParameter('action', 'delete')->end()->with('response')->begin()->isStatusCode(200)->end(); } else { $test_browser->test()->fail("The last response doesn't have any Location header!"); }
/** * If your page triggers an ajax request, you can perform it manually. * This action sends a GET ajax request with specified params. * * See ->sendAjaxPostRequest for examples. * * @param $uri * @param $params */ public function sendAjaxGetRequest($uri, $params) { $this->browser->setHttpHeader('X-Requested-With', 'XMLHttpRequest'); $this->call($uri, 'get', $params); $this->debug($this->browser->getResponse()->getContent()); }