var test = require('tape'); var punycode = require('punycode'); var ent = require('../'); test('hex', function (t) { for (var i = 0; i < 32; i++) { var a = String.fromCharCode(i); if (a.match(/\s/)) { t.equal(ent.decode(a), a); } else { var b = '&#x' + i.toString(16) + ';'; t.equal(ent.decode(b), a); t.equal(ent.encode(a), '&#' + i + ';'); } } for (var i = 127; i < 2000; i++) { var a = String.fromCharCode(i); var b = '&#x' + i.toString(16) + ';'; var c = '&#X' + i.toString(16) + ';'; t.equal(ent.decode(b), a); t.equal(ent.decode(c), a); var encoded = ent.encode(a); var encoded2 = ent.encode(a + a); if (!encoded.match(/^&\w+;/)) { t.equal(encoded, '&#' + i + ';'); t.equal(encoded2, '&#' + i + ';&#' + i + ';'); } } t.end(); });