charset-parser
Version:
Parse charset string from http header and hmtl meta
49 lines (45 loc) • 2.18 kB
JavaScript
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);
});
});