12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const parseM3U = require("../radiomanifest.js").parsers.M3U;
- const chai = require("chai");
- chai.use(require("chai-as-promised"));
- const assert = chai.assert;
- const expect = chai.expect;
- describe("parseM3U parses basic M3U", () => {
- describe("empty M3U", () => {
- it("should return empty list", () => {
- var r = parseM3U("");
- assert.equal(r.length, 0);
- });
- it("should discard empty lines", () => {
- var r = parseM3U("\n\n\n");
- assert.equal(r.length, 0);
- });
- });
- describe("just some lines", () => {
- it("should return appropriate list", () => {
- var r = parseM3U("http://foo");
- assert.equal(r.length, 1);
- assert.equal(r[0], "http://foo");
- });
- it("should work with longer list", () => {
- var r = parseM3U("http://foo\nhttp://baz\nhttp://bar\n");
- assert.equal(r.length, 3);
- assert.equal(r[0], "http://foo");
- assert.equal(r[1], "http://baz");
- assert.equal(r[2], "http://bar");
- });
- it("should discard empty lines", () => {
- var r = parseM3U("http://foo\n\nhttp://baz\nhttp://bar\n\n\n");
- assert.equal(r.length, 3);
- assert.equal(r[0], "http://foo");
- assert.equal(r[1], "http://baz");
- assert.equal(r[2], "http://bar");
- });
- });
- describe("comments", () => {
- it("comments should be ignored", () => {
- var r = parseM3U("http://foo\n#asd");
- assert.equal(r.length, 1);
- assert.equal(r[0], "http://foo");
- });
- it("mid-line hash is not a comment", () => {
- var r = parseM3U("http://foo#asd");
- assert.equal(r.length, 1);
- assert.equal(r[0], "http://foo#asd");
- });
- });
- });
|