From 4bf243679f585ca351d0f121872806ffa88ae4dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Afonso?= Date: Mon, 22 Feb 2021 05:25:18 +0000 Subject: [PATCH] Ignore case when parsing FLAC tags --- src/FLACTagReader.js | 2 +- src/__tests__/FLACTagReader-test.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/FLACTagReader.js b/src/FLACTagReader.js index 7e6ea0b..d305ed1 100644 --- a/src/FLACTagReader.js +++ b/src/FLACTagReader.js @@ -275,7 +275,7 @@ class FLACTagReader extends MediaTagReader { let s = data.getStringWithCharsetAt(dataOffset + 4, dataLength, "utf-8").toString(); let d = s.indexOf("="); let split = [s.slice(0, d), s.slice(d + 1)]; - switch (split[0]) { + switch (split[0].toUpperCase()) { case "TITLE": title = split[1]; break; diff --git a/src/__tests__/FLACTagReader-test.js b/src/__tests__/FLACTagReader-test.js index d62c101..8c12cfb 100644 --- a/src/__tests__/FLACTagReader-test.js +++ b/src/__tests__/FLACTagReader-test.js @@ -75,6 +75,27 @@ describe("FLACTagReader", function() { expect(tags.picture).toBeTruthy(); }); }); + + it("reads tags no matter their case", function () { + var flacFileContents = new FLACTagContents([FLACTagContents.createCommentBlock( + ["Title", "A Title"], + ["artist", "An Artist"], + )]); + mediaFileReader = new ArrayFileReader(flacFileContents.toArray()); + tagReader = new FLACTagReader(mediaFileReader); + return new Promise(function (resolve, reject) { + tagReader.read({ + onSuccess: resolve, + onFailure: reject + }); + jest.runAllTimers(); + }).then(function (tag) { + var tags = tag.tags; + expect(tags.title).toBeTruthy(); + expect(tags.artist).toBeTruthy(); + }); + }); + it("calls failure callback if file doesn't have comments", function() { var flacFileEmpty = new FLACTagContents(); var fileReaderEmpty = new ArrayFileReader(flacFileEmpty.toArray());