Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ProfileController extends Zend_Controller_Action {
- private function getUploadAvatarForm()
- {
- $form = new Zend_Form;
- $form->setAttrib('enctype', 'multipart/form-data');
- $form->setAction($this->view->baseUrl('/profile/upload-avatar'))
- ->setName('uploadAvatarForm')
- ->setMethod('POST');
- $element = new Zend_Form_Element_File('avatar');
- $element->setLabel('Upload an image:')
- ->addFilter('Rename',
- array('target' => '/path/toimages/directory/' . $this->userId . '.png',
- 'overwrite' => true)
- );
- $element->addValidator('Count', false, 1);
- $element->addValidator('Size', false, 102400);
- $element->addValidator('Extension', false, 'png');
- $form->addElement($element, 'avatar')
- ->addElement('submit', 'submit_upload', array('label' => 'upload'));
- return $form;
- }
- public function uploadAvatarAction()
- {
- $form = $this->getUploadAvatarForm();
- $this->view->form = $form;
- if (!$this->getRequest()->isPost() || !$form->isValid($_POST)) {
- return;
- }
- if (!$form->avatar->receive()) {
- ... error...
- }
- ... ok ...
- }
- }
- public function testUploadFile()
- {
- $this->_doLogin('user', 'password');
- $this->getRequest()
- ->setMethod('POST'));
- $this->mockFileUpload();
- $this->dispatch('profile/upload-avatar');
- var_dump($this->getResponse()->getBody());
- }
- private function mockFileUpload()
- {
- $_FILES = array(
- 'avatar' => array(
- 'name' => 'test.png',
- 'type' => 'image/png',
- 'tmp_name' => '/tmp/test.png',
- 'error' => 0,
- 'size' => 10127));
- }
- $class = new ProfileController();
- $form = $class->getUploadAvatarForm();
- $form->getElement('avatar')->setTransferAdapter(new MockAdapter());
- class MockAdapter extends Zend_File_Transfer_Adapter_Http
- {
- public function isValid($files = null)
- {
- return true;
- }
- }
Add Comment
Please, Sign In to add comment