UNPKG

charset-parser

Version:

Parse charset string from http header and hmtl meta

49 lines (45 loc) 2.18 kB
var assert = require('assert'); var charsetParser = require('../index'); describe('#HTTP Header Inputs', function() { it('Content-Type UTF-8 charset', function(){ assert.equal(charsetParser('Content-Type:text/html; charset=utf-8'),'utf-8'); }); it('Content-Type iso-8859-1 charset', function(){ assert.equal(charsetParser('Content-Type:text/html; charset=iso-8859-1'),'iso-8859-1'); }); it('Content-Type no charset', function(){ assert.equal(charsetParser('Content-Type:text/html'), null); }); it('Empty string input', function(){ assert.equal(charsetParser(""), null); }); it('No input', function(){ assert.equal(charsetParser(), null); }); }); describe('#HTML Inputs', function() { it('HTML5 with meta charset', function(){ assert.equal(charsetParser('<html><head><meta charset=utf-8></head><body></body></html>'), 'utf-8'); }); it('HTML4 with meta charset', function(){ var html4 = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="de"><head><link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /><link rel="icon" href="favicon.ico" type="image/x-icon" /><title>Title</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body></body></html>'; assert.equal(charsetParser(html4), 'UTF-8'); }); }); describe('#3 Input params', function(){ it('Header with charset', function(){ assert.equal(charsetParser('Content-Type:text/html; charset=iso-8859-1', '<html><head><meta charset=utf-8></head><body></body></html>', 'utf8'), 'iso-8859-1'); }); it('Empty Header', function(){ assert.equal(charsetParser('', '<html><head><meta charset=utf-8></head><body></body></html>', 'iso-8859-1'), 'utf-8'); }); it('No header, No body, default charset', function(){ assert.equal(charsetParser('', '', 'iso-8859-1'), 'iso-8859-1'); }); it('No header, No body, no default', function(){ assert.equal(charsetParser('', ''), 'utf-8'); }); it('No header, No body, null default', function(){ assert.equal(charsetParser('', '', null), null); }); });