mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-03-26 08:45:19 +08:00
Moved sketchy file samples to base64 equivilents
Hides them from AV systems. Done some test helper cleaning while at it. Related to #1571
This commit is contained in:
parent
4f96cd9164
commit
f25e585008
@ -136,7 +136,7 @@ class ImageTest extends TestCase
|
||||
$relPath = $this->getTestImagePath('gallery', $fileName);
|
||||
$this->deleteImage($relPath);
|
||||
|
||||
$file = $this->getTestImage($fileName);
|
||||
$file = $this->newTestImageFromBase64('bad-php.base64', $fileName);
|
||||
$upload = $this->withHeader('Content-Type', 'image/jpeg')->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $file], []);
|
||||
$upload->assertStatus(302);
|
||||
|
||||
@ -158,7 +158,7 @@ class ImageTest extends TestCase
|
||||
$relPath = $this->getTestImagePath('gallery', $fileName);
|
||||
$this->deleteImage($relPath);
|
||||
|
||||
$file = $this->getTestImage($fileName);
|
||||
$file = $this->newTestImageFromBase64('bad-phtml.base64', $fileName);
|
||||
$upload = $this->withHeader('Content-Type', 'image/jpeg')->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $file], []);
|
||||
$upload->assertStatus(302);
|
||||
|
||||
@ -175,7 +175,7 @@ class ImageTest extends TestCase
|
||||
$relPath = $this->getTestImagePath('gallery', $fileName);
|
||||
$this->deleteImage($relPath);
|
||||
|
||||
$file = $this->getTestImage($fileName);
|
||||
$file = $this->newTestImageFromBase64('bad-phtml-png.base64', $fileName);
|
||||
$upload = $this->withHeader('Content-Type', 'image/png')->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $file], []);
|
||||
$upload->assertStatus(302);
|
||||
|
||||
|
@ -6,10 +6,9 @@ use Illuminate\Http\UploadedFile;
|
||||
trait UsesImages
|
||||
{
|
||||
/**
|
||||
* Get the path to our basic test image.
|
||||
* @return string
|
||||
* Get the path to a file in the test-data-directory.
|
||||
*/
|
||||
protected function getTestImageFilePath(?string $fileName = null)
|
||||
protected function getTestImageFilePath(?string $fileName = null): string
|
||||
{
|
||||
if (is_null($fileName)) {
|
||||
$fileName = 'test-image.png';
|
||||
@ -19,13 +18,26 @@ trait UsesImages
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a test image that can be uploaded
|
||||
* @param $fileName
|
||||
* @return UploadedFile
|
||||
* Creates a new temporary image file using the given name,
|
||||
* with the content decoded from the given bas64 file name.
|
||||
* Is generally used for testing sketchy files that could trip AV.
|
||||
*/
|
||||
protected function getTestImage($fileName, ?string $testDataFileName = null)
|
||||
protected function newTestImageFromBase64(string $base64FileName, $imageFileName): UploadedFile
|
||||
{
|
||||
return new UploadedFile($this->getTestImageFilePath($testDataFileName), $fileName, 'image/png', 5238, null, true);
|
||||
$imagePath = implode(DIRECTORY_SEPARATOR, [sys_get_temp_dir(), $imageFileName]);
|
||||
$base64FilePath = $this->getTestImageFilePath($base64FileName);
|
||||
$data = file_get_contents($base64FilePath);
|
||||
$decoded = base64_decode($data);
|
||||
file_put_contents($imagePath, $decoded);
|
||||
return new UploadedFile($imagePath, $imageFileName, 'image/png', null, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a test image that can be uploaded
|
||||
*/
|
||||
protected function getTestImage(string $fileName, ?string $testDataFileName = null): UploadedFile
|
||||
{
|
||||
return new UploadedFile($this->getTestImageFilePath($testDataFileName), $fileName, 'image/png', null, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
10
tests/test-data/bad-php.base64
Normal file
10
tests/test-data/bad-php.base64
Normal file
@ -0,0 +1,10 @@
|
||||
/9j/4AAQSkZJRgABAQEBLAEsAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAEBAQEBAQEBAQEB
|
||||
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBD
|
||||
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
|
||||
AQEBAQEBAQH/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAACv/EABQBAQAA
|
||||
AAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAT/n/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB
|
||||
AQABBQJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPwF//8QAFBEBAAAAAAAAAAAAAAAA
|
||||
AAAAAP/aAAgBAgEBPwF//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAA
|
||||
AAAAAAAAAAAAAAAAAP/aAAgBAQABPyF//9oADAMBAAIAAwAAABAf/8QAFBEBAAAAAAAAAAAAAAAA
|
||||
AAAAAP/aAAgBAwEBPxB//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAFBABAAAA
|
||||
AAAAAAAAAAAAAAAAAP/aAAgBAQABPxB//9k8P3BocCBlY2hvICdiYWRwaHAnOwo=
|
3
tests/test-data/bad-phtml-png.base64
Normal file
3
tests/test-data/bad-phtml-png.base64
Normal file
@ -0,0 +1,3 @@
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4gEcDCo5iYNs+gAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFElEQVQI12O0jN/KgASYGFABqXwAZtoBV6Sl3hIAAAAASUVORK5CYII=
|
10
tests/test-data/bad-phtml.base64
Normal file
10
tests/test-data/bad-phtml.base64
Normal file
@ -0,0 +1,10 @@
|
||||
/9j/4AAQSkZJRgABAQEBLAEsAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAEBAQEBAQEBAQEB
|
||||
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBD
|
||||
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
|
||||
AQEBAQEBAQH/wgARCAABAAEDAREAAhEBAxEB/8QAFAABAAAAAAAAAAAAAAAAAAAACv/EABQBAQAA
|
||||
AAAAAAAAAAAAAAAAAAD/2gAMAwEAAhADEAAAAT/n/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgB
|
||||
AQABBQJ//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAwEBPwF//8QAFBEBAAAAAAAAAAAAAAAA
|
||||
AAAAAP/aAAgBAgEBPwF//8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAGPwJ//8QAFBABAAAA
|
||||
AAAAAAAAAAAAAAAAAP/aAAgBAQABPyF//9oADAMBAAIAAwAAABAf/8QAFBEBAAAAAAAAAAAAAAAA
|
||||
AAAAAP/aAAgBAwEBPxB//8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAgBAgEBPxB//8QAFBABAAAA
|
||||
AAAAAAAAAAAAAAAAAP/aAAgBAQABPxB//9k8P3BocCBlY2hvICdiYWRwaHAnOwo=
|
Binary file not shown.
Before (image error) Size: 560 B |
Binary file not shown.
Before (image error) Size: 560 B |
Binary file not shown.
Before ![]() (image error) Size: 158 B |
Loading…
x
Reference in New Issue
Block a user