public static function createImageFileModel($fileName = 'testImage.png') { $pathToFiles = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files'); $filePath = $pathToFiles . DIRECTORY_SEPARATOR . $fileName; $contents = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . $fileName); $fileContent = new FileContent(); $fileContent->content = $contents; $file = new ImageFileModel(); $file->fileContent = $fileContent; $file->name = $fileName; $file->type = ZurmoFileHelper::getMimeType($pathToFiles . DIRECTORY_SEPARATOR . $fileName); $file->size = filesize($filePath); $saved = $file->save(); assert('$saved'); // Not Coding Standard return $file; }
protected function setImage($imageId) { $id = (int) $imageId; if ($id > 0) { try { $image = ImageFileModel::getById($id); $this->image = $image; } catch (NotFoundException $exception) { //Do nothing } } }
public function testCanDelete() { $fileContent = new FileContent(); $fileContent->content = 'testContent'; $imageFile = new ImageFileModel(); $imageFile->name = 'testImage'; $imageFile->size = 123; $imageFile->type = 'image/gif'; $imageFile->fileContent = $fileContent; $imageFile->save(); $this->assertTrue($imageFile->canDelete()); Yii::app()->user->userModel = UserTestHelper::createBasicUser('test2'); $this->assertFalse($imageFile->canDelete()); }
public function actionToggle($id, $attribute) { if (Yii::app()->request->isAjaxRequest && Yii::app()->request->isPostRequest) { $imageFile = ImageFileModel::getById((int) $id); $imageFile->toggle($attribute); } }
public function testSuperUserAllDefaultControllerActions() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $imageFile = ImageFileModel::getById($this->imageFile1Id); if (file_exists($imageFile->getImageCachePath())) { unlink($imageFile->getImageCachePath()); } if (file_exists($imageFile->getImageCachePath(true))) { unlink($imageFile->getImageCachePath(true)); } //Test all default controller actions that do not require any POST/GET variables to be passed. //This does not include portlet controller actions. $content = $this->runControllerWithNoExceptionsAndGetContent('zurmo/imageModel/getUploaded'); $returnedObject = CJSON::decode($content); $this->assertContains('zurmo/imageModel/getImage?fileName=' . $imageFile->getImageCacheFileName(), $returnedObject[0]['image']); $this->assertContains('zurmo/imageModel/getThumb?fileName=' . $imageFile->getImageCacheFileName(), $returnedObject[0]['thumb']); $this->assertFalse(file_exists($imageFile->getImageCachePath())); $this->assertFalse(file_exists($imageFile->getImageCachePath(true))); //Test getting the image $this->setGetArray(array('fileName' => $imageFile->getImageCacheFileName())); @$this->runControllerWithExitExceptionAndGetContent('zurmo/imageModel/getImage'); $this->assertTrue(file_exists($imageFile->getImageCachePath())); $this->assertFalse(file_exists($imageFile->getImageCachePath(true))); //Test getting the image thumb $this->setGetArray(array('fileName' => $imageFile->getImageCacheFileName())); @$this->runControllerWithExitExceptionAndGetContent('zurmo/imageModel/getThumb'); $this->assertTrue(file_exists($imageFile->getImageCachePath())); $this->assertTrue(file_exists($imageFile->getImageCachePath(true))); //Test uploading invalid image $pathToFiles = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files'); $filePath = $pathToFiles . DIRECTORY_SEPARATOR . 'testNote.txt'; self::resetAndPopulateFilesArrayByFilePathAndName('file', $filePath, 'testNote.txt'); $content = $this->runControllerWithNoExceptionsAndGetContent('zurmo/imageModel/upload'); $returnedObject = CJSON::decode($content); $this->assertEquals('Error uploading the image', $returnedObject[0]['error']); //Test uploading valid image $pathToFiles = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files'); $fileContents = file_get_contents($pathToFiles . DIRECTORY_SEPARATOR . 'testImage.png'); $filePath = $pathToFiles . DIRECTORY_SEPARATOR . 'testImage.png'; self::resetAndPopulateFilesArrayByFilePathAndName('file', $filePath, 'testImage.png'); $content = $this->runControllerWithNoExceptionsAndGetContent('zurmo/imageModel/upload'); $returnedObject = CJSON::decode($content); $this->assertContains('zurmo/imageModel/getImage?fileName=2_testImage.png', $returnedObject[0]['filelink']); // Not Coding Standard $createdImageFile = ImageFileModel::getById(2); $this->assertEquals($fileContents, $createdImageFile->fileContent->content); //Test deleting image $createdImageFile->inactive = false; $this->setGetArray(array('id' => 2)); $this->runControllerWithNoExceptionsAndGetContent('zurmo/imageModel/delete', true); RedBeanModel::forgetAll(); $deletedImageFile = ImageFileModel::getById(2); $deletedImageFile->inactive = true; }
public function testSaveImageFromTemporaryFile() { $id = ImageFileModel::getCount() + 1; Yii::app()->user->userModel = User::getByUsername('super'); $pathToFiles = Yii::getPathOfAlias('application.modules.zurmo.tests.unit.files'); $filePath = $pathToFiles . DIRECTORY_SEPARATOR . 'testImage.png'; $fileUploadData = ImageFileModelUtil::saveImageFromTemporaryFile($filePath, 'fileNameTest'); $this->assertEquals($id, $fileUploadData['id']); $this->assertEquals('fileNameTest.png', $fileUploadData['name']); $this->assertContains('<img data-url=', $fileUploadData['summary']); $this->assertEquals('3.25KB', $fileUploadData['size']); $this->assertContains("getThumb?fileName={$id}_fileNameTest.png", $fileUploadData['thumbnail_url']); // Not Coding Standard $this->assertContains("getImage?fileName={$id}_fileNameTest.png", $fileUploadData['filelink']); // Not Coding Standard $this->assertContains('javascript:parent.transferModalImageValues', $fileUploadData['insert_link']); }
public static function saveImageFromTemporaryFile($tempFilePath, $name) { $fileContent = new FileContent(); $fileContent->content = file_get_contents($tempFilePath); $imageProperties = getimagesize($tempFilePath); $imageFileModel = new ImageFileModel(); static::resolveImageName($name, $imageProperties['mime']); $imageFileModel->name = $name; $imageFileModel->size = filesize($tempFilePath); $imageFileModel->type = $imageProperties['mime']; $imageFileModel->width = $imageProperties[0]; $imageFileModel->height = $imageProperties[1]; $imageFileModel->fileContent = $fileContent; if ($imageFileModel->save()) { $imageFileModel->createImageCache(); $fileUploadData = array('id' => $imageFileModel->id, 'name' => $imageFileModel->name, 'summary' => ImageFileModelUtil::getImageSummary($imageFileModel), 'size' => FileModelDisplayUtil::convertSizeToHumanReadableAndGet($imageFileModel->size), 'thumbnail_url' => Yii::app()->createAbsoluteUrl('zurmo/imageModel/getThumb', array('fileName' => $imageFileModel->getImageCacheFileName())), 'filelink' => Yii::app()->createAbsoluteUrl('zurmo/imageModel/getImage', array('fileName' => $imageFileModel->getImageCacheFileName())), 'insert_link' => static::resolveInsertLink($imageFileModel)); } else { $message = Zurmo::t('ZurmoModule', 'Error uploading the image'); $fileUploadData = array('error' => $message); } return $fileUploadData; }