UNPKG

jsoniq

Version:

JSONiq implementation for JavaScript

84 lines (82 loc) 11.4 kB
"use strict"; /// <reference path="../../../typings/tsd.d.ts" /> require("jasmine2-pit"); var p = require("path"); var fs = require("fs"); var u = require("./Utils"); function getQueries(path) { var files = []; fs.readdirSync(path).forEach(file => { file = p.resolve(p.normalize(path + "/" + file)); if (fs.statSync(file).isFile() && ["jq", "xq"].indexOf(file.substring(file.length - 2)) !== -1) { files.push(file); } else if (fs.statSync(file).isDirectory()) { files = files.concat(getQueries(file)); } }); return files; } describe("Test JSONiq Expressions", () => { var base = "tests/queries/zorba/Queries/zorba/jsoniq"; var queries = []; //getQueries("tests/queries/zorba/Queries/zorba/jsoniq") queries.forEach(file => { file = base + "/" + file; it(file, () => { var query = fs.readFileSync(file, "utf-8"); var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq"); file = file.replace("/Queries/", "/ExpQueryResults/"); file = file.substring(0, file.length - 3); file = file + ".xml.res"; e.toEqual(fs.readFileSync(file, "utf-8")); }); }); }); describe("Test FLWOR Expressions", () => { var base = "tests/queries/zorba/Queries/zorba/flwor"; var queries = [ "flwor00.xq", "flwor01.xq", "flwor02.xq", //"flwor03.xq", //"flwor04.xq", //"flwor05.xq", "flwor06.xq", "flwor07.xq", "flwor08.xq", //"flwor09.xq", "flwor10.xq" ]; queries.forEach(file => { file = base + "/" + file; it(file, () => { var query = fs.readFileSync(file, "utf-8"); var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq"); file = file.replace("/Queries/", "/ExpQueryResults/"); file = file.substring(0, file.length - 3); file = file + ".xml.res"; e.toEqual(fs.readFileSync(file, "utf-8").trim()); }); }); }); describe("Test Bang Expressions", () => { var base = "tests/queries/zorba/Queries/zorba/bang"; var queries = [ "1.xq", "9.xq", "10.xq" ]; queries.forEach(file => { file = base + "/" + file; it(file, () => { var query = fs.readFileSync(file, "utf-8"); var e = u.expectSerializedQuery(query, file.substring(file.length - 3) === ".jq"); file = file.replace("/Queries/", "/ExpQueryResults/"); file = file.substring(0, file.length - 3); file = file + ".xml.res"; e.toEqual(fs.readFileSync(file, "utf-8").trim()); }); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3RzL25vZGUvcnVudGltZS9ab3JiYS50cyJdLCJuYW1lcyI6WyJnZXRRdWVyaWVzIl0sIm1hcHBpbmdzIjoiO0FBQUEsa0RBQWtEO0FBQ2xELE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN4QixJQUFZLENBQUMsV0FBTSxNQUFNLENBQUMsQ0FBQTtBQUMxQixJQUFZLEVBQUUsV0FBTSxJQUFJLENBQUMsQ0FBQTtBQUV6QixJQUFZLENBQUMsV0FBTSxTQUFTLENBQUMsQ0FBQTtBQUU3QixvQkFBb0IsSUFBWTtJQUM1QkEsSUFBSUEsS0FBS0EsR0FBYUEsRUFBRUEsQ0FBQ0E7SUFDekJBLEVBQUVBLENBQUNBLFdBQVdBLENBQUNBLElBQUlBLENBQUNBLENBQUNBLE9BQU9BLENBQUNBLElBQUlBO1FBQzdCQSxJQUFJQSxHQUFHQSxDQUFDQSxDQUFDQSxPQUFPQSxDQUFDQSxDQUFDQSxDQUFDQSxTQUFTQSxDQUFDQSxJQUFJQSxHQUFHQSxHQUFHQSxHQUFHQSxJQUFJQSxDQUFDQSxDQUFDQSxDQUFDQTtRQUNqREEsRUFBRUEsQ0FBQUEsQ0FBQ0EsRUFBRUEsQ0FBQ0EsUUFBUUEsQ0FBQ0EsSUFBSUEsQ0FBQ0EsQ0FBQ0EsTUFBTUEsRUFBRUEsSUFBSUEsQ0FBQ0EsSUFBSUEsRUFBRUEsSUFBSUEsQ0FBQ0EsQ0FBQ0EsT0FBT0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsU0FBU0EsQ0FBQ0EsSUFBSUEsQ0FBQ0EsTUFBTUEsR0FBR0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsS0FBS0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0EsQ0FBQ0E7WUFDNUZBLEtBQUtBLENBQUNBLElBQUlBLENBQUNBLElBQUlBLENBQUNBLENBQUNBO1FBQ3JCQSxDQUFDQTtRQUFDQSxJQUFJQSxDQUFDQSxFQUFFQSxDQUFBQSxDQUFDQSxFQUFFQSxDQUFDQSxRQUFRQSxDQUFDQSxJQUFJQSxDQUFDQSxDQUFDQSxXQUFXQSxFQUFFQSxDQUFDQSxDQUFDQSxDQUFDQTtZQUN4Q0EsS0FBS0EsR0FB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Q0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ2hCLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztRQUN6QixFQUFFLENBQUMsSUFBSSxFQUFFO1lBQ0wsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbEYsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDdEQsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLElBQUksR0FBRyxVQUFVLENBQUM7WUFDekIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsImZpbGUiOiJ0ZXN0cy9ub2RlL3J1bnRpbWUvWm9yYmEuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi4vLi4vLi4vdHlwaW5ncy90c2QuZC50c1wiIC8+XG5yZXF1aXJlKFwiamFzbWluZTItcGl0XCIpO1xuaW1wb3J0ICogYXMgcCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5cbmltcG9ydCAqIGFzIHUgZnJvbSBcIi4vVXRpbHNcIjtcblxuZnVuY3Rpb24gZ2V0UXVlcmllcyhwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgdmFyIGZpbGVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZzLnJlYWRkaXJTeW5jKHBhdGgpLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICAgIGZpbGUgPSBwLnJlc29sdmUocC5ub3JtYWxpemUocGF0aCArIFwiL1wiICsgZmlsZSkpO1xuICAgICAgICBpZihmcy5zdGF0U3luYyhmaWxlKS5pc0ZpbGUoKSAmJiBbXCJqcVwiLCBcInhxXCJdLmluZGV4T2YoZmlsZS5zdWJzdHJpbmcoZmlsZS5sZW5ndGggLSAyKSkgIT09IC0xKSB7XG4gICAgICAgICAgICBmaWxlcy5wdXNoKGZpbGUpO1xuICAgICAgICB9IGVsc2UgaWYoZnMuc3RhdFN5bmMoZmlsZSkuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgZmlsZXMgPSBmaWxlcy5jb25jYXQoZ2V0UXVlcmllcyhmaWxlKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsZXM7XG59XG5cbmRlc2NyaWJlKFwiVGVzdCBKU09OaXEgRXhwcmVzc2lvbnNcIiwgKCkgPT4ge1xuXG4gICAgdmFyIGJhc2UgPSBcInRlc3RzL3F1ZXJpZXMvem9yYmEvUXVlcmllcy96b3JiYS9qc29uaXFcIjtcbiAgICB2YXIgcXVlcmllcyA9IFtcbiAgICAgICAgLy9cInZlcnNpb25fZGVjbF8wMi54cVwiXG4gICAgXTtcbiAgICAvL2dldFF1ZXJpZXMoXCJ0ZXN0cy9xdWVyaWVzL3pvcmJhL1F1ZXJpZXMvem9yYmEvanNvbmlxXCIpXG4gICAgcXVlcmllcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgICBmaWxlID0gYmFzZSArIFwiL1wiICsgZmlsZTtcbiAgICAgICAgaXQoZmlsZSwgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gZnMucmVhZEZpbGVTeW5jKGZpbGUsIFwidXRmLThcIik7XG4gICAgICAgICAgICB2YXIgZSA9IHUuZXhwZWN0U2VyaWFsaXplZFF1ZXJ5KHF1ZXJ5LCBmaWxlLnN1YnN0cmluZyhmaWxlLmxlbmd0aCAtIDMpID09PSBcIi5qcVwiKTtcbiAgICAgICAgICAgIGZpbGUgPSBmaWxlLnJlcGxhY2UoXCIvUXVlcmllcy9cIiwgXCIvRXhwUXVlcnlSZXN1bHRzL1wiKTtcbiAgICAgICAgICAgIGZpbGUgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxlbmd0aCAtIDMpO1xuICAgICAgICAgICAgZmlsZSA9IGZpbGUgKyBcIi54bWwucmVzXCI7XG4gICAgICAgICAgICBlLnRvRXF1YWwoZnMucmVhZEZpbGVTeW5jKGZpbGUsIFwidXRmLThcIikpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIlRlc3QgRkxXT1IgRXhwcmVzc2lvbnNcIiwgKCkgPT4ge1xuXG4gICAgdmFyIGJhc2UgPSBcInRlc3RzL3F1ZXJpZXMvem9yYmEvUXVlcmllcy96b3JiYS9mbHdvclwiO1xuICAgIHZhciBxdWVyaWVzID0gW1xuICAgICAgICBcImZsd29yMDAueHFcIixcbiAgICAgICAgXCJmbHdvcjAxLnhxXCIsXG4gICAgICAgIFwiZmx3b3IwMi54cVwiLFxuICAgICAgICAvL1wiZmx3b3IwMy54cVwiLFxuICAgICAgICAvL1wiZmx3b3IwNC54cVwiLFxuICAgICAgICAvL1wiZmx3b3IwNS54cVwiLFxuICAgICAgICBcImZsd29yMDYueHFcIixcbiAgICAgICAgXCJmbHdvcjA3LnhxXCIsXG4gICAgICAgIFwiZmx3b3IwOC54cVwiLFxuICAgICAgICAvL1wiZmx3b3IwOS54cVwiLFxuICAgICAgICBcImZsd29yMTAueHFcIlxuICAgIF07XG4gICAgcXVlcmllcy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgICBmaWxlID0gYmFzZSArIFwiL1wiICsgZmlsZTtcbiAgICAgICAgaXQoZmlsZSwgKCkgPT4ge1xuICAgICAgICAgICAgdmFyIHF1ZXJ5ID0gZnMucmVhZEZpbGVTeW5jKGZpbGUsIFwidXRmLThcIik7XG4gICAgICAgICAgICB2YXIgZSA9IHUuZXhwZWN0U2VyaWFsaXplZFF1ZXJ5KHF1ZXJ5LCBmaWxlLnN1YnN0cmluZyhmaWxlLmxlbmd0aCAtIDMpID09PSBcIi5qcVwiKTtcbiAgICAgICAgICAgIGZpbGUgPSBmaWxlLnJlcGxhY2UoXCIvUXVlcmllcy9cIiwgXCIvRXhwUXVlcnlSZXN1bHRzL1wiKTtcbiAgICAgICAgICAgIGZpbGUgPSBmaWxlLnN1YnN0cmluZygwLCBmaWxlLmxlbmd0aCAtIDMpO1xuICAgICAgICAgICAgZmlsZSA9IGZpbGUgKyBcIi54bWwucmVzXCI7XG4gICAgICAgICAgICBlLnRvRXF1YWwoZnMucmVhZEZpbGVTeW5jKGZpbGUsIFwidXRmLThcIikudHJpbSgpKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJUZXN0IEJhbmcgRXhwcmVzc2lvbnNcIiwgKCkgPT4ge1xuXG4gICAgdmFyIGJhc2UgPSBcInRlc3RzL3F1ZXJpZXMvem9yYmEvUXVlcmllcy96b3JiYS9iYW5nXCI7XG4gICAgdmFyIHF1ZXJpZXMgPSBbXG4gICAgICAgIFwiMS54cVwiLFxuICAgICAgICBcIjkueHFcIixcbiAgICAgICAgXCIxMC54cVwiXG4gICAgXTtcbiAgICBxdWVyaWVzLmZvckVhY2goZmlsZSA9PiB7XG4gICAgICAgIGZpbGUgPSBiYXNlICsgXCIvXCIgKyBmaWxlO1xuICAgICAgICBpdChmaWxlLCAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgcXVlcnkgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZSwgXCJ1dGYtOFwiKTtcbiAgICAgICAgICAgIHZhciBlID0gdS5leHBlY3RTZXJpYWxpemVkUXVlcnkocXVlcnksIGZpbGUuc3Vic3RyaW5nKGZpbGUubGVuZ3RoIC0gMykgPT09IFwiLmpxXCIpO1xuICAgICAgICAgICAgZmlsZSA9IGZpbGUucmVwbGFjZShcIi9RdWVyaWVzL1wiLCBcIi9FeHBRdWVyeVJlc3VsdHMvXCIpO1xuICAgICAgICAgICAgZmlsZSA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGVuZ3RoIC0gMyk7XG4gICAgICAgICAgICBmaWxlID0gZmlsZSArIFwiLnhtbC5yZXNcIjtcbiAgICAgICAgICAgIGUudG9FcXVhbChmcy5yZWFkRmlsZVN5bmMoZmlsZSwgXCJ1dGYtOFwiKS50cmltKCkpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9