File: /var/www/zaklada/html/node_modules/jshint/node_modules/entities/test/test.js
var assert = require("assert"),
    path = require("path"),
    entities = require("../");
describe("Encode->decode test", function(){
	var testcases = [
		{
			input: "asdf & ÿ ü '",
			xml: "asdf & ÿ ü '",
			html: "asdf & ÿ ü '"
		}, {
			input: "&",
			xml: "&",
			html: "&"
		},
	];
	testcases.forEach(function(tc) {
		var encodedXML = entities.encodeXML(tc.input);
		it("should XML encode " + tc.input, function(){
			assert.equal(encodedXML, tc.xml);
		});
		it("should default to XML encode " + tc.input, function(){
			assert.equal(entities.encode(tc.input), tc.xml);
		});
		it("should XML decode " + encodedXML, function(){
			assert.equal(entities.decodeXML(encodedXML), tc.input);
		});
		it("should default to XML encode " + encodedXML, function(){
			assert.equal(entities.decode(encodedXML), tc.input);
		});
		it("should default strict to XML encode " + encodedXML, function(){
			assert.equal(entities.decodeStrict(encodedXML), tc.input);
		});
		var encodedHTML5 = entities.encodeHTML5(tc.input);
		it("should HTML5 encode " + tc.input, function(){
			assert.equal(encodedHTML5, tc.html);
		});
		it("should HTML5 decode " + encodedHTML5, function(){
			assert.equal(entities.decodeHTML(encodedHTML5), tc.input);
		});
	});
});
describe("Decode test", function(){
	var testcases = [
		{ input: "&",  output: "&" },
		{ input: "&",  output: "&" },
		{ input: "&", output: "&" },
		{ input: "&", output: "&" },
		{ input: "&",  output: "&" },
		{ input: "&", output: "&" },
		{ input: "&", output: "&" },
		{ input: ":",     output: ":" },
		{ input: ":",     output: ":" },
		{ input: ":",     output: ":" },
		{ input: ":",     output: ":" }
	];
	testcases.forEach(function(tc) {
		it("should XML decode " + tc.input, function(){
			assert.equal(entities.decodeXML(tc.input), tc.output);
		});
		it("should HTML4 decode " + tc.input, function(){
			assert.equal(entities.decodeHTML(tc.input), tc.output);
		});
		it("should HTML5 decode " + tc.input, function(){
			assert.equal(entities.decodeHTML(tc.input), tc.output);
		});
	});
});
var levels = ["xml", "entities"];
describe("Documents", function(){
	levels
	.map(function(n){ return path.join("..", "maps", n); })
	.map(require)
	.forEach(function(doc, i){
		describe("Decode", function(){
			it(levels[i], function(){
				Object.keys(doc).forEach(function(e){
					for(var l = i; l < levels.length; l++){
						assert.equal(entities.decode("&" + e + ";", l), doc[e]);
					}
				});
			});
		});
		describe("Decode strict", function(){
			it(levels[i], function(){
				Object.keys(doc).forEach(function(e){
					for(var l = i; l < levels.length; l++){
						assert.equal(entities.decodeStrict("&" + e + ";", l), doc[e]);
					}
				});
			});
		});
		describe("Encode", function(){
			it(levels[i], function(){
				Object.keys(doc).forEach(function(e){
					for(var l = i; l < levels.length; l++){
						assert.equal(entities.decode(entities.encode(doc[e], l), l), doc[e]);
					}
				});
			});
		});
	});
	var legacy = require("../maps/legacy.json");
	describe("Legacy", function(){
		it("should decode", runLegacy);
	});
	function runLegacy(){
		Object.keys(legacy).forEach(function(e){
			assert.equal(entities.decodeHTML("&" + e), legacy[e]);
		});
	}
});
var astral = {
	"1D306": "\uD834\uDF06",
	"1D11E": "\uD834\uDD1E"
};
var astralSpecial = {
	"80":    "\u20AC",
	"110000": "\uFFFD"
};
describe("Astral entities", function(){
	Object.keys(astral).forEach(function(c){
		it("should decode " + astral[c], function(){
			assert.equal(entities.decode("&#x" + c + ";"), astral[c]);
		});
		it("should encode " + astral[c], function(){
			assert.equal(entities.encode(astral[c]), "&#x" + c + ";");
		});
	});
	Object.keys(astralSpecial).forEach(function(c){
		it("special should decode \\u" + c, function(){
			assert.equal(entities.decode("&#x" + c + ";"), astralSpecial[c]);
		});
	});
});