1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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")
- })
- })
- })
|