/** * init() * * @return Zend_Tool_Project_Context_Zf_ActionMethod */ public function init() { $this->_actionName = $this->_resource->getAttribute('actionName'); $this->_resource->setAppendable(false); $this->_controllerResource = $this->_resource->getParentResource(); if (!$this->_controllerResource->getContext() instanceof Zend_Tool_Project_Context_Zf_ControllerFile) { // require_once 'Zend/Tool/Project/Context/Exception.php'; throw new Zend_Tool_Project_Context_Exception('ActionMethod must be a sub resource of a ControllerFile'); } // make the ControllerFile node appendable so we can tack on the actionMethod. $this->_resource->getParentResource()->setAppendable(true); $this->_controllerPath = $this->_controllerResource->getContext()->getPath(); /* * This code block is now commented, its doing to much for init() * if ($this->_controllerPath != '' && self::hasActionMethod($this->_controllerPath, $this->_actionName)) { // require_once 'Zend/Tool/Project/Context/Exception.php'; throw new Zend_Tool_Project_Context_Exception('An action named ' . $this->_actionName . 'Action already exists in this controller'); } */ return $this; }
/** * init() * * @return Zend_Tool_Project_Context_Zf_ActionMethod */ public function init() { $this->_actionName = $this->_resource->getAttribute('actionName'); $this->_resource->setAppendable(false); $this->_controllerResource = $this->_resource->getParentResource(); if (!$this->_controllerResource->getContext() instanceof Zend_Tool_Project_Context_Zf_ControllerFile) { throw new Zend_Tool_Project_Context_Exception('ActionMethod must be a sub resource of a ControllerFile'); } // make the ControllerFile node appendable so we can tack on the actionMethod. $this->_resource->getParentResource()->setAppendable(true); $this->_controllerPath = $this->_controllerResource->getContext()->getPath(); return $this; }
/** * create() * * @return Zend_Tool_Project_Context_Zf_ActionMethod */ public function create() { $file = $this->_testApplicationControllerPath; if (!file_exists($file)) { require_once 'Zend/Tool/Project/Context/Exception.php'; throw new Zend_Tool_Project_Context_Exception( 'Could not create action within test controller ' . $file . ' with action name ' . $this->_forActionName ); } $actionParam = $this->getForActionName(); $controllerParam = $this->_resource->getParentResource()->getForControllerName(); //$moduleParam = null;// /* @var $controllerDirectoryResource Zend_Tool_Project_Profile_Resource */ $controllerDirectoryResource = $this->_resource->getParentResource()->getParentResource(); if ($controllerDirectoryResource->getParentResource()->getName() == 'TestApplicationModuleDirectory') { $moduleParam = $controllerDirectoryResource->getParentResource()->getForModuleName(); } else { $moduleParam = 'default'; } if ($actionParam == 'index' && $controllerParam == 'Index' && $moduleParam == 'default') { $assert = '$this->assertQueryContentContains("div#welcome h3", "This is your project\'s main page");'; } else { $assert = <<<EOS \$this->assertQueryContentContains( 'div#view-content p', 'View script for controller <b>' . \$params['controller'] . '</b> and script/action name <b>' . \$params['action'] . '</b>' ); EOS; } $codeGenFile = Zend_CodeGenerator_Php_File::fromReflectedFileName($file, true, true); $codeGenFile->getClass()->setMethod(array( 'name' => 'test' . ucfirst($actionParam) . 'Action', 'body' => <<<EOS \$params = array('action' => '$actionParam', 'controller' => '$controllerParam', 'module' => '$moduleParam'); \$url = \$this->url(\$this->urlizeOptions(\$params)); \$this->dispatch(\$url); // assertions \$this->assertModule(\$params['module']); \$this->assertController(\$params['controller']); \$this->assertAction(\$params['action']); $assert EOS )); file_put_contents($file, $codeGenFile->generate()); return $this; }
/** * init() * * @return Zend_Tool_Project_Context_Filesystem_Abstract */ public function init() { $parentBaseDirectory = $this->_resource->getParentResource()->getContext()->getPath(); $this->_baseDirectory = $parentBaseDirectory; return $this; }