public function FileMetadataExifTest::testTiffExifSaveToFile in File metadata manager 8.2
Same name and namespace in other branches
- 8 file_mdm_exif/tests/src/Kernel/FileMetadataExifTest.php \Drupal\Tests\file_mdm_exif\Kernel\FileMetadataExifTest::testTiffExifSaveToFile()
Test writing metadata to TIFF file.
File
- file_mdm_exif/
tests/ src/ Kernel/ FileMetadataExifTest.php, line 340
Class
- FileMetadataExifTest
- Tests that File Metadata EXIF plugin works properly.
Namespace
Drupal\Tests\file_mdm_exif\KernelCode
public function testTiffExifSaveToFile() {
$fmdm = $this->container
->get('file_metadata_manager');
// Copy test file to public://.
$this->fileSystem
->copy(drupal_get_path('module', 'file_mdm') . '/tests/files/sample-1.tiff', 'public://', FileSystemInterface::EXISTS_REPLACE);
$file_uri = 'public://sample-1.tiff';
$file_metadata = $fmdm
->uri($file_uri);
// Check values via exif_read_data before operations.
$data = @exif_read_data($file_uri);
$this
->assertEquals(1, $data['Orientation']);
$this
->assertEquals(2, $data['PhotometricInterpretation']);
$this
->assertEquals([
8,
8,
8,
8,
], $data['BitsPerSample']);
// Change tags from IFD0.
$this
->assertEquals(15, $this
->countMetadataKeys($file_metadata, 'exif'));
$this
->assertEquals(1, $file_metadata
->getMetadata('exif', 'orientation')['value']);
$data['Orientation'] = 4;
$this
->assertTrue($file_metadata
->setMetadata('exif', 'orientation', $data['Orientation']));
$this
->assertEquals($data['Orientation'], $file_metadata
->getMetadata('exif', 'orientation')['value']);
$this
->assertEquals(2, $file_metadata
->getMetadata('exif', 'PhotometricInterpretation')['value']);
$data['PhotometricInterpretation'] = 4;
$this
->assertTrue($file_metadata
->setMetadata('exif', 'PhotometricInterpretation', $data['PhotometricInterpretation']));
$this
->assertEquals($data['PhotometricInterpretation'], $file_metadata
->getMetadata('exif', 'PhotometricInterpretation')['value']);
$this
->assertEquals([
8,
8,
8,
8,
], $file_metadata
->getMetadata('exif', 'BitsPerSample')['value']);
$data['BitsPerSample'] = [
7,
6,
5,
4,
];
$bps_tag = $this->container
->get('file_mdm_exif.tag_mapper')
->resolveKeyToIfdAndTag('BitsPerSample');
$bps = new PelEntryShort($bps_tag['tag'], $data['BitsPerSample']);
$this
->assertTrue($file_metadata
->setMetadata('exif', 'BitsPerSample', $bps));
$this
->assertEquals($data['BitsPerSample'], $file_metadata
->getMetadata('exif', 'BitsPerSample')['value']);
// Save metadata to file.
$this
->assertTrue($file_metadata
->saveMetadataToFile('exif'));
// Check results via exif_read_data.
$data_reloaded = @exif_read_data($file_uri);
$this
->assertEquals(4, $data_reloaded['Orientation']);
$this
->assertEquals(4, $data_reloaded['PhotometricInterpretation']);
$this
->assertEquals([
7,
6,
5,
4,
], $data_reloaded['BitsPerSample']);
}