mirror of
https://github.com/jely2002/youtube-dl-gui.git
synced 2021-11-01 22:46:21 +03:00
80 lines
2.7 KiB
JavaScript
80 lines
2.7 KiB
JavaScript
const Video = require("../modules/types/Video");
|
|
const Format = require("../modules/types/Format");
|
|
|
|
describe('select highest quality', () => {
|
|
it('Sorts the formats high to low', () => {
|
|
const instance = instanceBuilder();
|
|
instance.selectHighestQuality();
|
|
expect(instance.formats[0].height).toEqual("1080");
|
|
expect(instance.formats[0].fps).toEqual("60");
|
|
});
|
|
it('Returns the index of the highest format', () => {
|
|
const instance = instanceBuilder();
|
|
const result = instance.selectHighestQuality();
|
|
expect(result).toBe(0);
|
|
});
|
|
});
|
|
|
|
describe('Get video format from label', () => {
|
|
it('Returns the format matching the label', () => {
|
|
const instance = instanceBuilder();
|
|
Format.prototype.getDisplayName = jest.fn(() => "1080p60");
|
|
const result = instance.getFormatFromLabel("1080p60");
|
|
expect(result).toEqual(instance.formats[0]);
|
|
});
|
|
});
|
|
|
|
describe('Get filename', () => {
|
|
it('Returns undefined when the video has no metadata', () => {
|
|
const instance = instanceBuilder();
|
|
instance.hasMetadata = false;
|
|
const result = instance.getFilename();
|
|
expect(result).toBeFalsy();
|
|
});
|
|
it('Returns only the title with (p) when there are no formats', () => {
|
|
const instance = instanceBuilder();
|
|
instance.hasMetadata = true;
|
|
instance.formats = [];
|
|
instance.title = "test__title";
|
|
const result = instance.getFilename();
|
|
expect(result).toBe("test__title-(p)");
|
|
});
|
|
it('Returns the filename as ytdl outputs it', () => {
|
|
const instance = instanceBuilder();
|
|
instance.hasMetadata = true;
|
|
instance.title = "test__title*";
|
|
instance.selected_format_index = 0;
|
|
const result = instance.getFilename();
|
|
expect(result).toBe("test__title_-(144p12)");
|
|
});
|
|
it('Clips the title length to 200', () => {
|
|
const instance = instanceBuilder();
|
|
instance.hasMetadata = true;
|
|
for(let i=0;i<20;i++) {
|
|
instance.title += "test__title*";
|
|
}
|
|
instance.selected_format_index = 0;
|
|
const result = instance.getFilename();
|
|
expect(result.length).toBeLessThanOrEqual(215);
|
|
})
|
|
});
|
|
|
|
function instanceBuilder(type) {
|
|
const env = {
|
|
paths: {
|
|
downloadPath: "test__downloadpath"
|
|
},
|
|
settings: {
|
|
nameFormatMode: "%(title).200s-(%(height)sp%(fps).0d).%(ext)s"
|
|
}
|
|
};
|
|
const video = new Video("http://test.url", type, env);
|
|
let formats = [];
|
|
const displayNames = ["144p12", "1080p", "480p", "480p30", "480p29", "1080p60"];
|
|
for (const name of displayNames) {
|
|
formats.push(Format.getFromDisplayName(name));
|
|
}
|
|
video.formats = formats;
|
|
return video;
|
|
}
|