X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=test%2Fspec%2Fmkws-index-full.spec.js;h=3627e14051f4cfab770e2ce93a8e782c52f241da;hb=adfd31a7aba4f41f53393a3a057bcdede3076d79;hp=ff9f47ae19244b976816a1490502b2ea456937f8;hpb=56d5229e4595706d0b6b92bfe4d9ed0681ed72ff;p=mkws-moved-to-github.git diff --git a/test/spec/mkws-index-full.spec.js b/test/spec/mkws-index-full.spec.js index ff9f47a..3627e14 100644 --- a/test/spec/mkws-index-full.spec.js +++ b/test/spec/mkws-index-full.spec.js @@ -4,18 +4,8 @@ * */ -var file = '../examples/htdocs/index-full.html' - -var jsdom = require('jsdom').jsdom; -var myWindow = jsdom().createWindow(); -var $ = jQuery = require('jquery').create(myWindow); var fs = require("fs"); -var index_full = fs.readFileSync(file, "utf-8"); - -var mkws_tags_required = ["mkwsSearch", "mkwsResults"]; -var mkws_tags_optional = ["mkwsSwitch", "mkwsLang", "mkwsTargets"]; -var mkws_tags_optional2 = ["mkwsMOTD", "mkwsStat", "footer"]; /* * combine arrays, return a flat list @@ -39,28 +29,88 @@ function flat_list (list) { return data; } +/* + * simple test with string matching of the HTML page + * + */ + +function html_check (file, tags_array, ignore_doctype) { + var html = fs.readFileSync(file, "utf-8"); + var tags = flat_list(tags_array); + + describe("index-full.html string test for " + file, function() { + it("html test", function() { + expect(html).toBeDefined(); -describe("index-full.html test", function() { - it("html test", function() { - expect(index_full).toBeDefined(); + // forgotten doctype declaration + if (!ignore_doctype) { + expect(html).toMatch(//); + expect(html).toMatch(/<\/html.*?>/); + } + expect(html).toMatch(//); + expect(html).toMatch(//); + expect(html).toMatch(/<\/head.*?>/); + expect(html).toMatch(/<\/body.*?>/); - expect(index_full).toMatch(//); // forgotten doctype? - expect(index_full).toMatch(//); - expect(index_full).toMatch(//); - expect(index_full).toMatch(/<\/html.*?>/); - expect(index_full).toMatch(/<\/head.*?>/); - expect(index_full).toMatch(/<\/body.*?>/); + expect(html).toMatch(/.+<\/title>/i); + expect(html).toMatch(/.+<\/title>/i); - expect(index_full).toMatch(/'; + // console.log(data) + expect(html).toMatch(data); + } + }); + }); +} + +var mkws_tags_required = ["mkwsSearch", "mkwsResults"]; +var mkws_tags_optional = ["mkwsSwitch", "mkwsLang", "mkwsTargets"]; +var mkws_tags_optional2 = ["mkwsMOTD", "mkwsStat", "footer"]; +html_check('../examples/htdocs/index-full.html', [mkws_tags_required, mkws_tags_optional, mkws_tags_optional2]); +html_check('../examples/htdocs/index-mobile.html', [mkws_tags_required, mkws_tags_optional]); +html_check('../examples/htdocs/index-popup.html', [], true); +// html_check('../examples/htdocs/index-wolfram.html', [mkws_tags_required, mkws_tags_optional]); +html_check('../examples/htdocs/index-jquery.html', []); + +var file = '../examples/htdocs/index-full.html'; +var html = fs.readFileSync(file, "utf-8"); +/* + * parse HTML data to DOM, and run jQuery request on it + * + */ +describe("index-full.html jsdom + jquery", function() { + var window = require('jsdom').jsdom(html, null, { + + FetchExternalResources: false, + ProcessExternalResources: false, + MutationEvents: false, + QuerySelector: false + }).createWindow(); - for(var i = 0, data = ""; i < tags.length; i++) { - data = '
'; - // console.log(data) - expect(index_full).toMatch(data); + /* apply jquery to the window */ + var $ = jQuery = require('jquery').create(window); + + + it("html jquery test", function() { + expect(html).toBeDefined(); + + expect($("body").length == 0).toEqual(false); + expect($("body").length == 1).toEqual(true); + expect($("head").length == 1).toEqual(true); + + var tags = flat_list([mkws_tags_required, mkws_tags_optional, mkws_tags_optional2]); + for(var i = 0; i < tags.length; i++) { + expect($("#" + tags[i]).length == 1).toEqual(true); } }); + + it("html jquery fail test", function() { + expect(html).toBeDefined(); + + expect($("body_does_not_exists").length == 1).toEqual(false); + expect($("#body_does_not_exists").length == 1).toEqual(false); + }); });