/** * Tests that cached images are regenerated properly after a cached file is renamed with new arguments * ToDo: This doesn't seem like something that is worth testing - what is the point of this? */ public function testRegenerateImagesWithRenaming() { $image = $this->objFromFixture('Image', 'imageWithoutTitle'); $image_generated = $image->ScaleWidth(200); $p = $image_generated->getFullPath(); $this->assertTrue(file_exists($p), 'Resized image exists after creation call'); // Encoding of the arguments is duplicated from cacheFilename $oldArgumentString = Convert::base64url_encode(array(200)); $newArgumentString = Convert::base64url_encode(array(300)); $newPath = str_replace($oldArgumentString, $newArgumentString, $p); if (!file_exists(dirname($newPath))) { mkdir(dirname($newPath)); } $newRelative = str_replace($oldArgumentString, $newArgumentString, $image_generated->getFileName()); rename($p, $newPath); $this->assertFalse(file_exists($p), 'Resized image does not exist at old path after renaming'); $this->assertTrue(file_exists($newPath), 'Resized image exists at new path after renaming'); $this->assertEquals(1, $image->regenerateFormattedImages(), 'Cached images were regenerated in the right number'); $image_generated_2 = new Image_Cached($newRelative); $this->assertEquals(300, $image_generated_2->getWidth(), 'Cached image was regenerated with correct width'); }
public function FileIcon() { if ($this->parent->hasDataObject) { $field = $this->parent->fileFieldName . "ID"; $file = DataObject::get_by_id($this->parent->fileClassName, $this->item->{$field}); } else { $file = $this->item; } if ($file && $file->ID) { if ($file instanceof Image) { $img = $file; } else { $ext = $file->Extension; $imgExts = array('jpg', 'jpeg', 'gif'); if (in_array($ext, $imgExts)) { $img = new Image_Cached($file->Filename); $img->ID = $file->ID; //image resize functions require an id } } return isset($img) ? $img->CroppedImage(50, 50)->URL : $file->Icon(); } else { return "{$this->item->{$field}}"; } }
public function testRegenerateImagesWithRenaming() { $image = $this->objFromFixture('Image', 'imageWithMetacharacters'); $image_generated = $image->SetWidth(200); $p = $image_generated->getFullPath(); $this->assertTrue(file_exists($p), 'Resized image exists after creation call'); // Encoding of the arguments is duplicated from cacheFilename $oldArgumentString = base64_encode(json_encode(array(200))); $newArgumentString = base64_encode(json_encode(array(300))); $newPath = str_replace($oldArgumentString, $newArgumentString, $p); $newRelative = str_replace($oldArgumentString, $newArgumentString, $image_generated->getFileName()); rename($p, $newPath); $this->assertFalse(file_exists($p), 'Resized image does not exist after movement call under old name'); $this->assertTrue(file_exists($newPath), 'Resized image exists after movement call under new name'); $this->assertEquals(1, $image->regenerateFormattedImages(), 'Cached images were regenerated in the right number'); $image_generated_2 = new Image_Cached($newRelative); $this->assertEquals(300, $image_generated_2->getWidth(), 'Cached image was regenerated with correct width'); }