committed by
dermotduffy
parent
591f466b92
commit
31d0c9322f
@@ -74,17 +74,6 @@ describe('FrigateEventViewMedia', () => {
|
||||
expect(media.inProgress()).toBe(false);
|
||||
});
|
||||
|
||||
it('should get video content type as HLS', () => {
|
||||
const media = new FrigateEventViewMedia(
|
||||
ViewMediaType.Clip,
|
||||
'camera',
|
||||
createFrigateEvent(),
|
||||
'content_id',
|
||||
'thumbnail',
|
||||
);
|
||||
expect(media.getVideoContentType()).toBe('hls');
|
||||
});
|
||||
|
||||
it('should get ID', () => {
|
||||
const event = createFrigateEvent({
|
||||
id: 'test-event-id',
|
||||
@@ -384,18 +373,6 @@ describe('FrigateRecordingViewMedia', () => {
|
||||
expect(media.inProgress()).toBe(false);
|
||||
});
|
||||
|
||||
it('should get video content type as HLS', () => {
|
||||
const media = new FrigateRecordingViewMedia(
|
||||
ViewMediaType.Recording,
|
||||
'camera',
|
||||
createFrigateRecording(),
|
||||
'id',
|
||||
'content_id',
|
||||
'title',
|
||||
);
|
||||
expect(media.getVideoContentType()).toBe('hls');
|
||||
});
|
||||
|
||||
it('should get content ID', () => {
|
||||
const media = new FrigateRecordingViewMedia(
|
||||
ViewMediaType.Recording,
|
||||
@@ -476,16 +453,6 @@ describe('FrigateReviewViewMedia', () => {
|
||||
expect(media.inProgress()).toBe(false);
|
||||
});
|
||||
|
||||
it('should get video content type as HLS', () => {
|
||||
const media = new FrigateReviewViewMedia(
|
||||
'camera',
|
||||
createFrigateReview(),
|
||||
'content_id',
|
||||
'thumb',
|
||||
);
|
||||
expect(media.getVideoContentType()).toBe('hls');
|
||||
});
|
||||
|
||||
it('should get content ID', () => {
|
||||
const media = new FrigateReviewViewMedia(
|
||||
'camera',
|
||||
|
||||
@@ -1017,7 +1017,6 @@ describe('ReolinkCameraManagerEngine', () => {
|
||||
expect(media?.[0].getCameraID()).toBe('office');
|
||||
expect(media?.[0].getStartTime()).toEqual(new Date('2024-11-04T21:00:00'));
|
||||
expect(media?.[0].getEndTime()).toEqual(new Date('2024-11-04T22:00:00'));
|
||||
expect(media?.[0].getVideoContentType()).toBe('mp4');
|
||||
expect(media?.[0].getID()).toBe('office/2024-11-04 21:00:00');
|
||||
expect(media?.[0].getContentID()).toBe(
|
||||
'media-source://reolink/FILE|01J8XHYTNH77WE3C654K03KX1F|0|sub|Rec_20241105_052353_211_S.mp4',
|
||||
|
||||
@@ -5,7 +5,7 @@ import {
|
||||
BrowseMediaViewFolder,
|
||||
} from '../../../src/ha/browse-media/item';
|
||||
import { formatDateAndTime } from '../../../src/utils/basic';
|
||||
import { VideoContentType, ViewMediaType } from '../../../src/view/item';
|
||||
import { ViewMediaType } from '../../../src/view/item';
|
||||
import {
|
||||
createBrowseMedia,
|
||||
createFolder,
|
||||
@@ -103,23 +103,6 @@ describe('BrowseMediaEventViewMedia', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('should get video content type', () => {
|
||||
it('should get video content type for clip', () => {
|
||||
const browseMedia = createRichBrowseMedia();
|
||||
const viewMedia = new BrowseMediaEventViewMedia(ViewMediaType.Clip, browseMedia);
|
||||
expect(viewMedia.getVideoContentType()).toBe(VideoContentType.MP4);
|
||||
});
|
||||
|
||||
it('should get null for snapshot', () => {
|
||||
const browseMedia = createBrowseMedia();
|
||||
const viewMedia = new BrowseMediaEventViewMedia(
|
||||
ViewMediaType.Snapshot,
|
||||
browseMedia,
|
||||
);
|
||||
expect(viewMedia.getVideoContentType()).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
it('should get content ID', () => {
|
||||
const browseMedia = createBrowseMedia({
|
||||
media_content_id: 'media_content_id',
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { classifyMimeType } from '../../src/utils/mime-type';
|
||||
|
||||
describe('classifyMimeType', () => {
|
||||
it('classifies undefined as neither video nor HLS', () => {
|
||||
expect(classifyMimeType(undefined)).toEqual({ isHLS: false, isVideo: false });
|
||||
});
|
||||
|
||||
it('classifies an empty string as neither video nor HLS', () => {
|
||||
expect(classifyMimeType('')).toEqual({ isHLS: false, isVideo: false });
|
||||
});
|
||||
|
||||
it('classifies application/vnd.apple.mpegurl as HLS and video', () => {
|
||||
expect(classifyMimeType('application/vnd.apple.mpegurl')).toEqual({
|
||||
isHLS: true,
|
||||
isVideo: true,
|
||||
});
|
||||
});
|
||||
|
||||
it('classifies application/x-mpegurl as HLS and video', () => {
|
||||
expect(classifyMimeType('application/x-mpegurl')).toEqual({
|
||||
isHLS: true,
|
||||
isVideo: true,
|
||||
});
|
||||
});
|
||||
|
||||
it('treats HLS mime types as case-insensitive', () => {
|
||||
expect(classifyMimeType('application/x-mpegURL')).toEqual({
|
||||
isHLS: true,
|
||||
isVideo: true,
|
||||
});
|
||||
expect(classifyMimeType('APPLICATION/VND.APPLE.MPEGURL')).toEqual({
|
||||
isHLS: true,
|
||||
isVideo: true,
|
||||
});
|
||||
});
|
||||
|
||||
it('classifies video/* as video but not HLS', () => {
|
||||
expect(classifyMimeType('video/mp4')).toEqual({ isHLS: false, isVideo: true });
|
||||
expect(classifyMimeType('VIDEO/WEBM')).toEqual({ isHLS: false, isVideo: true });
|
||||
});
|
||||
|
||||
it('classifies non-video mime types as neither', () => {
|
||||
expect(classifyMimeType('image/jpeg')).toEqual({ isHLS: false, isVideo: false });
|
||||
expect(classifyMimeType('application/json')).toEqual({
|
||||
isHLS: false,
|
||||
isVideo: false,
|
||||
});
|
||||
});
|
||||
});
|
||||
+1
-16
@@ -1,21 +1,7 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import {
|
||||
VideoContentType,
|
||||
ViewFolder,
|
||||
ViewMedia,
|
||||
ViewMediaType,
|
||||
} from '../../src/view/item';
|
||||
import { ViewFolder, ViewMedia, ViewMediaType } from '../../src/view/item';
|
||||
import { createFolder, TestViewMedia } from '../test-utils';
|
||||
|
||||
describe('VideoContentType', () => {
|
||||
it('MP4', () => {
|
||||
expect(VideoContentType.MP4).toBe('mp4');
|
||||
});
|
||||
it('HLS', () => {
|
||||
expect(VideoContentType.HLS).toBe('hls');
|
||||
});
|
||||
});
|
||||
|
||||
describe('ViewMedia', () => {
|
||||
beforeEach(() => {
|
||||
vi.useRealTimers();
|
||||
@@ -27,7 +13,6 @@ describe('ViewMedia', () => {
|
||||
});
|
||||
expect(media.getCameraID()).toBe('camera');
|
||||
expect(media.getMediaType()).toBe('clip');
|
||||
expect(media.getVideoContentType()).toBeNull();
|
||||
expect(media.getID()).toBeNull();
|
||||
expect(media.getStartTime()).toBeNull();
|
||||
expect(media.getEndTime()).toBeNull();
|
||||
|
||||
Reference in New Issue
Block a user