mirror of
https://github.com/vector-im/element-web.git
synced 2025-11-08 12:11:07 +01:00
* Only set MSC4230 is_animated flag if we are able to tell if the media is animated Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Set blob type correctly to not need to weave the mimetype around Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Use ImageDecoder to determine whether media is animated or not, adding support for AVIF and other formats Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Iterate Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Add test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Fix test Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
/*
|
|
Copyright 2025 New Vector Ltd.
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
|
|
Please see LICENSE files in the repository root for full details.
|
|
*/
|
|
|
|
import { MatrixEvent } from "matrix-js-sdk/src/matrix";
|
|
|
|
import { MediaEventHelper } from "../../../src/utils/MediaEventHelper.ts";
|
|
import { stubClient } from "../../test-utils";
|
|
|
|
describe("MediaEventHelper", () => {
|
|
it("should set the mime type on the blob based on the event metadata", async () => {
|
|
stubClient();
|
|
|
|
const event = new MatrixEvent({
|
|
type: "m.room.message",
|
|
content: {
|
|
msgtype: "m.image",
|
|
body: "image.png",
|
|
info: {
|
|
mimetype: "image/png",
|
|
size: 1234,
|
|
w: 100,
|
|
h: 100,
|
|
thumbnail_info: {
|
|
mimetype: "image/png",
|
|
},
|
|
thumbnail_url: "mxc://matrix.org/thumbnail",
|
|
},
|
|
url: "mxc://matrix.org/abcdef",
|
|
},
|
|
});
|
|
const helper = new MediaEventHelper(event);
|
|
|
|
const blob = await helper.thumbnailBlob.value;
|
|
expect(blob?.type).toBe(event.getContent().info.thumbnail_info?.mimetype);
|
|
});
|
|
});
|