From 6a52d848813ab7f19fa917a3b11e9fa8d0682536 Mon Sep 17 00:00:00 2001 From: Martin Kampas Date: Thu, 7 Mar 2024 10:14:50 +0100 Subject: [PATCH] Add tests for reading sidecar files Thanks grasdk for providing the .json files! Co-authored-by: grasdk --- .../assets/sidecar/20240107_110258.jpg | Bin 0 -> 15126 bytes .../assets/sidecar/20240107_110258.jpg.xmp | 73 +++++++++++ .../assets/sidecar/20240107_110258.json | 22 ++++ .../assets/sidecar/20240121_102400.JPG | Bin 0 -> 25556 bytes .../assets/sidecar/20240121_102400.JPG.xmp | 91 ++++++++++++++ .../assets/sidecar/20240121_102400.json | 23 ++++ .../assets/sidecar/20240128_105420.json | 15 +++ .../assets/sidecar/20240128_105420.mp4 | Bin 0 -> 23132 bytes .../assets/sidecar/20240128_105420.mp4.xmp | 115 +++++++++++++++++ .../assets/sidecar/20240128_120909.json | 15 +++ .../assets/sidecar/20240128_120909.mp4 | Bin 0 -> 22896 bytes .../assets/sidecar/20240128_120909.mp4.xmp | 117 ++++++++++++++++++ .../assets/sidecar/20240128_185808.JPG | Bin 0 -> 47059 bytes .../assets/sidecar/20240128_185808.JPG.xmp | 114 +++++++++++++++++ .../assets/sidecar/20240128_185808.json | 23 ++++ .../model/threading/MetaDataLoader.spec.ts | 21 ++++ 16 files changed, 629 insertions(+) create mode 100644 test/backend/assets/sidecar/20240107_110258.jpg create mode 100644 test/backend/assets/sidecar/20240107_110258.jpg.xmp create mode 100644 test/backend/assets/sidecar/20240107_110258.json create mode 100755 test/backend/assets/sidecar/20240121_102400.JPG create mode 100644 test/backend/assets/sidecar/20240121_102400.JPG.xmp create mode 100644 test/backend/assets/sidecar/20240121_102400.json create mode 100644 test/backend/assets/sidecar/20240128_105420.json create mode 100644 test/backend/assets/sidecar/20240128_105420.mp4 create mode 100644 test/backend/assets/sidecar/20240128_105420.mp4.xmp create mode 100644 test/backend/assets/sidecar/20240128_120909.json create mode 100644 test/backend/assets/sidecar/20240128_120909.mp4 create mode 100644 test/backend/assets/sidecar/20240128_120909.mp4.xmp create mode 100644 test/backend/assets/sidecar/20240128_185808.JPG create mode 100644 test/backend/assets/sidecar/20240128_185808.JPG.xmp create mode 100644 test/backend/assets/sidecar/20240128_185808.json diff --git a/test/backend/assets/sidecar/20240107_110258.jpg b/test/backend/assets/sidecar/20240107_110258.jpg new file mode 100644 index 0000000000000000000000000000000000000000..924a4d7fea66d26063c956fe733557751846bde2 GIT binary patch literal 15126 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 CQ}WRO literal 0 HcmV?d00001 diff --git a/test/backend/assets/sidecar/20240107_110258.jpg.xmp b/test/backend/assets/sidecar/20240107_110258.jpg.xmp new file mode 100644 index 00000000..42665535 --- /dev/null +++ b/test/backend/assets/sidecar/20240107_110258.jpg.xmp @@ -0,0 +1,73 @@ + + + + + + + + 40 + + + + + Travel + + + + + Travel + + + + + + diff --git a/test/backend/assets/sidecar/20240107_110258.json b/test/backend/assets/sidecar/20240107_110258.json new file mode 100644 index 00000000..537f61d2 --- /dev/null +++ b/test/backend/assets/sidecar/20240107_110258.json @@ -0,0 +1,22 @@ +{ + "cameraData": { + "ISO": 40, + "exposure": 0.009524, + "fStop": 2.2, + "focalLength": 3.75, + "make": "samsung", + "model": "SM-A715F" + }, + "creationDate": 1704621779177, + "creationDateOffset": "+01:00", + "fileSize": 15126, + "size": { + "height": 13, + "width": 10 + }, + "keywords": [ + "Výlet", + "Travel" + ], + "rating": 3 +} diff --git a/test/backend/assets/sidecar/20240121_102400.JPG b/test/backend/assets/sidecar/20240121_102400.JPG new file mode 100755 index 0000000000000000000000000000000000000000..121ba39173c723dd356bcf80a588340aede68957 GIT binary patch literal 25556 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 V^iJmw={`NxCLfv9m-+oS{ugfO + + + + + + + 1 + 2 + 3 + 0 + + + + + 100 + + + + + Travel + + + + + + + + Travel + + + + + + diff --git a/test/backend/assets/sidecar/20240121_102400.json b/test/backend/assets/sidecar/20240121_102400.json new file mode 100644 index 00000000..79005c08 --- /dev/null +++ b/test/backend/assets/sidecar/20240121_102400.json @@ -0,0 +1,23 @@ +{ + "cameraData": { + "ISO": 100, + "exposure": 0.003125, + "fStop": 6.3, + "focalLength": 16, + "lens": "NIKKOR Z DX 16-50mm f/3.5-6.3 VR", + "make": "NIKON CORPORATION", + "model": "NIKON Z 30" + }, + "creationDate": 1705829040930, + "creationDateOffset": "+01:00", + "fileSize": 25556, + "size": { + "height": 10, + "width": 15 + }, + "keywords": [ + "Výlet", + "Travel" + ], + "rating": 3 +} diff --git a/test/backend/assets/sidecar/20240128_105420.json b/test/backend/assets/sidecar/20240128_105420.json new file mode 100644 index 00000000..977a736f --- /dev/null +++ b/test/backend/assets/sidecar/20240128_105420.json @@ -0,0 +1,15 @@ +{ + "bitRate": 184871, + "creationDate": 1706432060000, + "duration": 1000, + "fileSize": 23132, + "size": { + "height": 46, + "width": 80 + }, + "fps": 60000, + "keywords": [ + "Travel" + ], + "rating": 3 +} diff --git a/test/backend/assets/sidecar/20240128_105420.mp4 b/test/backend/assets/sidecar/20240128_105420.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1de9f155fc0d719168130b8f368b0e8dce011fd1 GIT binary patch literal 23132 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 literal 0 HcmV?d00001 diff --git a/test/backend/assets/sidecar/20240128_105420.mp4.xmp b/test/backend/assets/sidecar/20240128_105420.mp4.xmp new file mode 100644 index 00000000..47155971 --- /dev/null +++ b/test/backend/assets/sidecar/20240128_105420.mp4.xmp @@ -0,0 +1,115 @@ + + + + + + + 1 + 2 + 3 + 0 + + + + + Travel + + + + + Travel + + + + + + diff --git a/test/backend/assets/sidecar/20240128_120909.json b/test/backend/assets/sidecar/20240128_120909.json new file mode 100644 index 00000000..c13e4602 --- /dev/null +++ b/test/backend/assets/sidecar/20240128_120909.json @@ -0,0 +1,15 @@ +{ + "bitRate": 183168, + "creationDate": 1706436545000, + "duration": 1000, + "fileSize": 22896, + "size": { + "height": 80, + "width": 46 + }, + "fps": 30, + "keywords": [ + "Travel" + ], + "rating": 3 +} diff --git a/test/backend/assets/sidecar/20240128_120909.mp4 b/test/backend/assets/sidecar/20240128_120909.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..ffa60ea3120945016c6050ae7a155310999edb75 GIT binary patch literal 22896 zcmZ5{19YT8)9%F9#@J+H+qSi_t&P30ZQIrc8{61e8`~Qvn~gDd_WS<--gEApGw)P) zSJm5H)p)wP2LJ#7E#17FtX&=L0RTwAzhCf|&E%UItGyEkD*yn1w{)?v005Mt?9ENw zz&v%ZFd$I%rsQeQ@tRCqI>Rb(jr{7`lZ}f5$OtrZbg=-kf=L&4Ru�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 K2Bjff-T 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 La=RfarR;wIGvtHm literal 0 HcmV?d00001 diff --git a/test/backend/assets/sidecar/20240128_120909.mp4.xmp b/test/backend/assets/sidecar/20240128_120909.mp4.xmp new file mode 100644 index 00000000..662428f7 --- /dev/null +++ b/test/backend/assets/sidecar/20240128_120909.mp4.xmp @@ -0,0 +1,117 @@ + + + + + + + 1 + 2 + 3 + 0 + + + + + Travel + + + + + Travel + + + + + + diff --git a/test/backend/assets/sidecar/20240128_185808.JPG b/test/backend/assets/sidecar/20240128_185808.JPG new file mode 100644 index 0000000000000000000000000000000000000000..f9e7ebf847526cc4ca82a8033ea5f1381070823c GIT binary patch literal 47059 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 Hj=TQ@;>ltC literal 0 HcmV?d00001 diff --git a/test/backend/assets/sidecar/20240128_185808.JPG.xmp b/test/backend/assets/sidecar/20240128_185808.JPG.xmp new file mode 100644 index 00000000..8644809b --- /dev/null +++ b/test/backend/assets/sidecar/20240128_185808.JPG.xmp @@ -0,0 +1,114 @@ + + + + + + + + 1 + 2 + 3 + 0 + + + + + 25600 + + + + + Travel + + + + + Travel + + + + + Travel + + + + + Travel + + + + + + + + Travel + + + + + + diff --git a/test/backend/assets/sidecar/20240128_185808.json b/test/backend/assets/sidecar/20240128_185808.json new file mode 100644 index 00000000..3ac57a61 --- /dev/null +++ b/test/backend/assets/sidecar/20240128_185808.json @@ -0,0 +1,23 @@ +{ + "cameraData": { + "ISO": 25600, + "exposure": 0.04, + "fStop": 4.2, + "focalLength": 25, + "lens": "NIKKOR Z DX 16-50mm f/3.5-6.3 VR", + "make": "NIKON CORPORATION", + "model": "NIKON Z 30" + }, + "creationDate": 1706464688660, + "creationDateOffset": "+01:00", + "fileSize": 47059, + "size": { + "height": 10, + "width": 15 + }, + "keywords": [ + "Výlet", + "Travel" + ], + "rating": 3 +} diff --git a/test/backend/unit/model/threading/MetaDataLoader.spec.ts b/test/backend/unit/model/threading/MetaDataLoader.spec.ts index e0b0b8c6..48a62827 100644 --- a/test/backend/unit/model/threading/MetaDataLoader.spec.ts +++ b/test/backend/unit/model/threading/MetaDataLoader.spec.ts @@ -5,6 +5,7 @@ import {Utils} from '../../../../../src/common/Utils'; import * as path from 'path'; import * as fs from 'fs'; import {PhotoProcessing} from '../../../../../src/backend/model/fileaccess/fileprocessing/PhotoProcessing'; +import {VideoProcessing} from '../../../../../src/backend/model/fileaccess/fileprocessing/VideoProcessing'; import {Config} from '../../../../../src/common/config/private/Config'; import {DatabaseType} from '../../../../../src/common/config/private/PrivateConfig'; @@ -257,4 +258,24 @@ describe('MetadataLoader', () => { expect(Utils.clone(data)).to.be.deep.equal(expected); }); + describe('should load metadata from sidecar files', () => { + const root = path.join(__dirname, '/../../../assets/sidecar'); + const files = fs.readdirSync(root); + for (const item of files) { + const fullFilePath = path.join(root, item); + if (PhotoProcessing.isPhoto(fullFilePath)) { + it(item, async () => { + const data = await MetadataLoader.loadPhotoMetadata(fullFilePath); + const expected = require(fullFilePath.split('.').slice(0, -1).join('.') + '.json'); + expect(Utils.clone(data)).to.be.deep.equal(expected); + }); + } else if (VideoProcessing.isVideo(fullFilePath)) { + it(item, async () => { + const data = await MetadataLoader.loadVideoMetadata(fullFilePath); + const expected = require(fullFilePath.split('.').slice(0, -1).join('.') + '.json'); + expect(Utils.clone(data)).to.be.deep.equal(expected); + }); + } + } + }); });