| 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(); |
| }); |
| |