Skip to content

Commit

Permalink
Do not match files in metadata validation
Browse files Browse the repository at this point in the history
When the metadata file is uploaded it is not clear which files the
volume will have with the create volume v2 flow. Instead, metadata
of files not in the volume will be ignored. Also, files without
metadata will simply be not populated.
  • Loading branch information
mzur committed Mar 6, 2024
1 parent 08f73ef commit 2310e99
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 52 deletions.
10 changes: 1 addition & 9 deletions app/Rules/ImageMetadata.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@ class ImageMetadata implements Rule

/**
* Create a new instance.
*
* @param array $files
*/
public function __construct(public array $files)
public function __construct()
{
$this->message = "The :attribute is invalid.";
}
Expand Down Expand Up @@ -78,12 +76,6 @@ public function message()

protected function fileMetadataPasses(FileMetadata $file)
{
if (!in_array($file->name, $this->files)) {
$this->message = "There is no file with filename {$file->name}.";

return false;
}

if (!is_null($file->lng)) {
if (!is_numeric($file->lng) || abs($file->lng) > 180) {
$this->message = "'{$file->lng}' is no valid longitude for file {$file->name}.";
Expand Down
27 changes: 8 additions & 19 deletions tests/php/Rules/ImageMetadataTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class ImageMetadataTest extends TestCase
{
public function testMetadataOk()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();

$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
Expand All @@ -27,20 +27,9 @@ public function testMetadataOk()
$this->assertTrue($validator->passes(null, $metadata));
}

public function testMetadataWrongFile()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'cba.jpg',
takenAt: '2016-12-19 12:27:00'
));
$this->assertFalse($validator->passes(null, $metadata));
}

public function testMetadataNoLat()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'abc.jpg',
Expand All @@ -51,7 +40,7 @@ public function testMetadataNoLat()

public function testMetadataNoLng()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'abc.jpg',
Expand All @@ -62,7 +51,7 @@ public function testMetadataNoLng()

public function testMetadataInvalidLat()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'abc.jpg',
Expand All @@ -74,7 +63,7 @@ public function testMetadataInvalidLat()

public function testMetadataInvalidLng()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'abc.jpg',
Expand All @@ -86,7 +75,7 @@ public function testMetadataInvalidLng()

public function testMetadataInvalidYaw()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(
name: 'abc.jpg',
Expand All @@ -97,15 +86,15 @@ public function testMetadataInvalidYaw()

public function testEmptyFilename()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(name: ''));
$this->assertFalse($validator->passes(null, $metadata));
}

public function testEmpty()
{
$validator = new ImageMetadataRule(['abc.jpg']);
$validator = new ImageMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new ImageMetadata(name: 'abc.jpg'));
$this->assertFalse($validator->passes(null, $metadata));
Expand Down
37 changes: 13 additions & 24 deletions tests/php/Rules/VideoMetadataTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class VideoMetadataTest extends TestCase
{
public function testMetadataOk()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();

$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
Expand All @@ -27,20 +27,9 @@ public function testMetadataOk()
$this->assertTrue($validator->passes(null, $metadata));
}

public function testMetadataWrongFile()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'cba.jpg',
takenAt: '2016-12-19 12:27:00'
));
$this->assertFalse($validator->passes(null, $metadata));
}

public function testMetadataNoLat()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'abc.mp4',
Expand All @@ -51,7 +40,7 @@ public function testMetadataNoLat()

public function testMetadataNoLatFrame()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(name: 'abc.mp4');
$fileMeta->addFrame('2016-12-19 12:27:00', lng: 52.220);
Expand All @@ -61,7 +50,7 @@ public function testMetadataNoLatFrame()

public function testMetadataNoLng()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'abc.mp4',
Expand All @@ -72,7 +61,7 @@ public function testMetadataNoLng()

public function testMetadataNoLngFrame()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(name: 'abc.mp4');
$fileMeta->addFrame('2016-12-19 12:27:00', lat: 28.123);
Expand All @@ -82,7 +71,7 @@ public function testMetadataNoLngFrame()

public function testMetadataInvalidLat()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'abc.mp4',
Expand All @@ -94,7 +83,7 @@ public function testMetadataInvalidLat()

public function testMetadataInvalidLatFrame()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(name: 'abc.mp4');
$fileMeta->addFrame('2016-12-19 12:27:00', lng: 50, lat: 91);
Expand All @@ -104,7 +93,7 @@ public function testMetadataInvalidLatFrame()

public function testMetadataInvalidLng()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'abc.mp4',
Expand All @@ -116,7 +105,7 @@ public function testMetadataInvalidLng()

public function testMetadataInvalidLngFrame()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(name: 'abc.mp4');
$fileMeta->addFrame('2016-12-19 12:27:00', lng: 181, lat: 50);
Expand All @@ -126,7 +115,7 @@ public function testMetadataInvalidLngFrame()

public function testMetadataInvalidYaw()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(
name: 'abc.mp4',
Expand All @@ -137,7 +126,7 @@ public function testMetadataInvalidYaw()

public function testMetadataInvalidYawFrame()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(name: 'abc.mp4');
$fileMeta->addFrame('2016-12-19 12:27:00', yaw: 361);
Expand All @@ -147,7 +136,7 @@ public function testMetadataInvalidYawFrame()

public function testEmptyFilename()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();
$metadata = new VolumeMetadata;
$metadata->addFile(new VideoMetadata(name: ''));
$this->assertFalse($validator->passes(null, $metadata));
Expand All @@ -163,7 +152,7 @@ public function testEmpty()

public function testMultipleFrames()
{
$validator = new VideoMetadataRule(['abc.mp4']);
$validator = new VideoMetadataRule();

$metadata = new VolumeMetadata;
$fileMeta = new VideoMetadata(
Expand Down

0 comments on commit 2310e99

Please sign in to comment.