@hallparty/xmpp-jid
Version:
XMPP identifiers (JID) for JavaScript
137 lines (113 loc) • 4.88 kB
JavaScript
"use strict";
const test = require("ava");
const JID = require("../lib/JID");
test("escape `space cadet@example.com`", (t) => {
const esc = new JID("space cadet", "example.com");
t.is(esc.toString(), "space\\20cadet@example.com");
t.is(esc.toString(true), "space cadet@example.com");
});
test('escape `call me "ishmael".com`', (t) => {
const esc = new JID('call me "ishmael"', "example.com");
t.is(esc.toString(), "call\\20me\\20\\22ishmael\\22@example.com");
t.is(esc.toString(true), 'call me "ishmael".com');
});
test("escape `at&t guy@example.com`", (t) => {
const esc = new JID("at&t guy", "example.com");
t.is(esc.toString(), "at\\26t\\20guy@example.com");
t.is(esc.toString(true), "at&t guy@example.com");
});
test("escape `d'artagnan@example.com`", (t) => {
const esc = new JID("d'artagnan", "example.com");
t.is(esc.toString(), "d\\27artagnan@example.com");
t.is(esc.toString(true), "d'artagnan@example.com");
});
test("escape `/.fanboy@example.com`", (t) => {
const esc = new JID("/.fanboy", "example.com");
t.is(esc.toString(), "\\2f.fanboy@example.com");
t.is(esc.toString(true), "/.fanboy@example.com");
});
test("escape `::foo::@example.com`", (t) => {
const esc = new JID("::foo::", "example.com");
t.is(esc.toString(), "\\3a\\3afoo\\3a\\3a@example.com");
t.is(esc.toString(true), "::foo::@example.com");
});
test("escape `<foo>@example.com`", (t) => {
const esc = new JID("<foo>", "example.com");
t.is(esc.toString(), "\\3cfoo\\3e@example.com");
t.is(esc.toString(true), "<foo>@example.com");
});
test("escape `user@host@example.com`", (t) => {
const esc = new JID("user@host", "example.com");
t.is(esc.toString(), "user\\40host@example.com");
t.is(esc.toString(true), "user@host@example.com");
});
test("escape `c:\\net@example.com`", (t) => {
const esc = new JID("c:\\net", "example.com");
t.is(esc.toString(), "c\\3a\\5cnet@example.com");
t.is(esc.toString(true), "c:\\net@example.com");
});
test("escape `c:\\\\net@example.com`", (t) => {
const esc = new JID("c:\\\\net", "example.com");
t.is(esc.toString(), "c\\3a\\5c\\5cnet@example.com");
t.is(esc.toString(true), "c:\\\\net@example.com");
});
test("escape `c:\\cool stuff@example.com`", (t) => {
const esc = new JID("c:\\cool stuff", "example.com");
t.is(esc.toString(), "c\\3a\\5ccool\\20stuff@example.com");
t.is(esc.toString(true), "c:\\cool stuff@example.com");
});
test("escape `c:\\5commas@example.com`", (t) => {
const esc = new JID("c:\\5commas", "example.com");
t.is(esc.toString(), "c\\3a\\5c5commas@example.com");
t.is(esc.toString(true), "c:\\5commas@example.com");
});
test("escape `space\\20cadet@example.com`", (t) => {
const esc = new JID("space\\20cadet", "example.com");
t.is(esc.toString(), "space\\20cadet@example.com");
t.is(esc.toString(true), "space cadet@example.com");
});
test("escape `at\\26t\\20guy@example.com`", (t) => {
const esc = new JID("at\\26t\\20guy", "example.com");
t.is(esc.toString(), "at\\26t\\20guy@example.com");
t.is(esc.toString(true), "at&t guy@example.com");
});
test("escape `d\\27artagnan@example.com`", (t) => {
const esc = new JID("d\\27artagnan", "example.com");
t.is(esc.toString(), "d\\27artagnan@example.com");
t.is(esc.toString(true), "d'artagnan@example.com");
});
test("escape `\\2f.fanboy@example.com`", (t) => {
const esc = new JID("\\2f.fanboy", "example.com");
t.is(esc.toString(), "\\2f.fanboy@example.com");
t.is(esc.toString(true), "/.fanboy@example.com");
});
test("escape `\\3a\\3afoo\\3a\\3a@example.com`", (t) => {
const esc = new JID("\\3a\\3afoo\\3a\\3a", "example.com");
t.is(esc.toString(), "\\3a\\3afoo\\3a\\3a@example.com");
t.is(esc.toString(true), "::foo::@example.com");
});
test("escape `\\3cfoo\\3e@example.com`", (t) => {
const esc = new JID("\\3cfoo\\3e", "example.com");
t.is(esc.toString(), "\\3cfoo\\3e@example.com");
t.is(esc.toString(true), "<foo>@example.com");
});
test("escape `user\\40host@example.com`", (t) => {
const esc = new JID("user\\40host", "example.com");
t.is(esc.toString(), "user\\40host@example.com");
t.is(esc.toString(true), "user@host@example.com");
});
test("escape `c\\3a\\5cnet@example.com`", (t) => {
const esc = new JID("c\\3a\\5cnet", "example.com");
t.is(esc.toString(), "c\\3a\\5cnet@example.com");
t.is(esc.toString(true), "c:\\net@example.com");
});
test("escape `c\\3a\\5ccool\\20stuff@example.com`", (t) => {
const esc = new JID("c\\3a\\5ccool\\20stuff", "example.com");
t.is(esc.toString(), "c\\3a\\5ccool\\20stuff@example.com");
t.is(esc.toString(true), "c:\\cool stuff@example.com");
});
test("escape `c\\3a\\5c5commas@example.com`", (t) => {
const esc = new JID("c\\3a\\5c5commas", "example.com");
t.is(esc.toString(), "c\\3a\\5c5commas@example.com");
t.is(esc.toString(true), "c:\\5commas@example.com");
});