Guest User

Untitled

a guest
Apr 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. class ProfileController extends Zend_Controller_Action {
  2.  
  3. private function getUploadAvatarForm()
  4. {
  5. $form = new Zend_Form;
  6. $form->setAttrib('enctype', 'multipart/form-data');
  7. $form->setAction($this->view->baseUrl('/profile/upload-avatar'))
  8. ->setName('uploadAvatarForm')
  9. ->setMethod('POST');
  10.  
  11. $element = new Zend_Form_Element_File('avatar');
  12. $element->setLabel('Upload an image:')
  13. ->addFilter('Rename',
  14. array('target' => '/path/toimages/directory/' . $this->userId . '.png',
  15. 'overwrite' => true)
  16. );
  17.  
  18. $element->addValidator('Count', false, 1);
  19. $element->addValidator('Size', false, 102400);
  20. $element->addValidator('Extension', false, 'png');
  21. $form->addElement($element, 'avatar')
  22. ->addElement('submit', 'submit_upload', array('label' => 'upload'));
  23. return $form;
  24. }
  25.  
  26. public function uploadAvatarAction()
  27. {
  28. $form = $this->getUploadAvatarForm();
  29. $this->view->form = $form;
  30. if (!$this->getRequest()->isPost() || !$form->isValid($_POST)) {
  31. return;
  32. }
  33. if (!$form->avatar->receive()) {
  34. ... error...
  35. }
  36. ... ok ...
  37. }
  38.  
  39. }
  40.  
  41. public function testUploadFile()
  42. {
  43. $this->_doLogin('user', 'password');
  44. $this->getRequest()
  45. ->setMethod('POST'));
  46. $this->mockFileUpload();
  47.  
  48. $this->dispatch('profile/upload-avatar');
  49. var_dump($this->getResponse()->getBody());
  50. }
  51.  
  52. private function mockFileUpload()
  53. {
  54. $_FILES = array(
  55. 'avatar' => array(
  56. 'name' => 'test.png',
  57. 'type' => 'image/png',
  58. 'tmp_name' => '/tmp/test.png',
  59. 'error' => 0,
  60. 'size' => 10127));
  61. }
  62.  
  63. $class = new ProfileController();
  64. $form = $class->getUploadAvatarForm();
  65. $form->getElement('avatar')->setTransferAdapter(new MockAdapter());
  66.  
  67. class MockAdapter extends Zend_File_Transfer_Adapter_Http
  68. {
  69. public function isValid($files = null)
  70. {
  71. return true;
  72. }
  73. }
Add Comment
Please, Sign In to add comment