123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- var test = require('tape');
- var punycode = require('punycode');
- var ent = require('../');
- test('amp', function (t) {
- var a = 'a & b & c';
- var b = 'a & b & c';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.end();
- });
- test('html', function (t) {
- var a = '<html> © π " \'';
- var b = '<html> © π " '';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.end();
- });
- test('html named', function (t) {
- var a = '<html> © π " \' ∴ Β β';
- var b = '<html> © π " ' ∴ Β β';
- t.equal(ent.encode(a, { named: true }), b);
- t.equal(ent.decode(b), a);
- t.end();
- });
- test('ambiguous ampersands', function (t) {
- var a = '• &bullet';
- var b = '• &bullet';
- var c = '• &bullet';
- t.equal(ent.encode(a, { named: true }), c);
- t.equal(ent.decode(b), a);
- t.equal(ent.decode(c), a);
- t.end();
- });
- test('entities', function (t) {
- var a = '\u2124';
- var b = 'ℤ';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.end();
- });
- test('entities named', function (t) {
- var a = '\u2124';
- var b = 'ℤ';
- t.equal(ent.encode(a, { named: true }), b);
- t.equal(ent.decode(b), a);
- t.end();
- });
- test('num', function (t) {
- var a = String.fromCharCode(1337);
- var b = 'Թ';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.equal(ent.encode(a + a), b + b);
- t.equal(ent.decode(b + b), a + a);
- t.end();
- });
- test('astral num', function (t) {
- var a = punycode.ucs2.encode([0x1d306]);
- var b = '𝌆';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.equal(ent.encode(a + a), b + b);
- t.equal(ent.decode(b + b), a + a);
- t.end();
- });
- test('nested escapes', function (t) {
- var a = '&';
- var b = '&amp;';
- t.equal(ent.encode(a), b);
- t.equal(ent.decode(b), a);
- t.equal(ent.encode(a + a), b + b);
- t.equal(ent.decode(b + b), a + a);
- t.end();
- });
- test('encode `special` option', function (t) {
- var a = '<>\'"&';
- var b = '<>\'"&';
- t.equal(ent.encode(a, {
- named: true,
- special: {
- '<': true,
- '>': true,
- '&': true
- }
- }), b);
- t.end();
- });
|