/**
  * @covers ilRoomSharingFileUtils::isImageType
  */
 public function testIsImageType()
 {
     self::assertTrue(UTILS::isImageType("image/bmp"));
     self::assertTrue(UTILS::isImageType("image/x-bmp"));
     self::assertTrue(UTILS::isImageType("image/x-bitmap"));
     self::assertTrue(UTILS::isImageType("image/x-xbitmap"));
     self::assertTrue(UTILS::isImageType("image/x-win-bitmap"));
     self::assertTrue(UTILS::isImageType("image/x-windows-bmp"));
     self::assertTrue(UTILS::isImageType("image/x-ms-bmp"));
     self::assertTrue(UTILS::isImageType("application/bmp"));
     self::assertTrue(UTILS::isImageType("application/x-bmp"));
     self::assertTrue(UTILS::isImageType("application/x-win-bitmap"));
     //Formats for type ".png"
     self::assertTrue(UTILS::isImageType("image/png"));
     self::assertTrue(UTILS::isImageType("application/png"));
     self::assertTrue(UTILS::isImageType("application/x-png"));
     //Formats for type ".jpg/.jpeg"
     self::assertTrue(UTILS::isImageType("image/jpeg"));
     self::assertTrue(UTILS::isImageType("image/jpg"));
     self::assertTrue(UTILS::isImageType("image/jp_"));
     self::assertTrue(UTILS::isImageType("application/jpg"));
     self::assertTrue(UTILS::isImageType("application/x-jpg"));
     self::assertTrue(UTILS::isImageType("image/pjpeg"));
     self::assertTrue(UTILS::isImageType("image/pipeg"));
     self::assertTrue(UTILS::isImageType("image/vnd.swiftview-jpeg"));
     self::assertTrue(UTILS::isImageType("image/x-xbitmap"));
     //Formats for type ".gif"
     self::assertTrue(UTILS::isImageType("image/gif"));
     self::assertTrue(UTILS::isImageType("image/x-xbitmap"));
     self::assertTrue(UTILS::isImageType("image/gi_"));
     // Negative cases
     self::assertFalse(UTILS::isImageType("file/pdf"));
     self::assertFalse(UTILS::isImageType(""));
     self::assertFalse(UTILS::isImageType(12));
     self::assertFalse(UTILS::isImageType(NULL));
     self::assertFalse(UTILS::isImageType(1));
 }
 /**
  * Returns true if the given mime type is allowed for the room agreement file.
  *
  * @param string $a_mimeType
  *
  * @return boolean
  */
 private function isAllowedFileType($a_mimeType)
 {
     $isImage = ilRoomSharingFileUtils::isImageType($a_mimeType);
     $isPDF = ilRoomSharingFileUtils::isPDFType($a_mimeType);
     $isTXT = ilRoomSharingFileUtils::isTXTType($a_mimeType);
     return $isImage || $isPDF || $isTXT;
 }
 /**
  * Creates a new floor plan by using the ILIAS MediaObject Service
  * and leaves a database entry.
  *
  * @param string $a_title   the title of the floor plan
  * @param string $a_desc    the floor plan description
  * @param array  $a_newfile an array containing the input values of the form
  *
  * @return boolean success or failure
  */
 public function addFloorPlan($a_title, $a_desc, $a_newfile)
 {
     if (!$this->permission->checkPrivilege(PRIVC::ADD_FLOORPLANS)) {
         ilUtil::sendFailure($this->lng->txt("rep_robj_xrs_no_permission_for_action"), true);
         $this->ctrl->redirectByClass('ilinfoscreengui', 'showSummary', 'showSummary');
         return false;
     }
     if ($this->isTitleAlreadyTaken($a_title)) {
         throw new ilRoomSharingFloorplanException("rep_robj_xrs_floor_plan_title_is_already_taken");
     }
     $mediaObj = $this->createMediaObject($a_title, $a_desc, NULL);
     $fileinfo = $this->configureFile($mediaObj, $a_newfile);
     if (!ilRoomSharingFileUtils::isImageType($fileinfo["format"])) {
         throw new ilRoomSharingFloorplanException("rep_robj_xrs_floor_plans_upload_error");
     }
     if (!ilRoomSharingNumericUtils::isPositiveNumber($a_newfile['size'])) {
         throw new ilRoomSharingFloorplanException("rep_robj_xrs_floor_plans_upload_error");
     }
     $this->updateMediaObject($mediaObj, $fileinfo);
     $this->fileToDatabase($mediaObj->getId());
 }