// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root for license information.
//
///
///
///
module CorsicaTests {
"use strict";
var q = WinJS.Utilities.query;
export class TemplateQueryTests {
testCanRenderSingleTemplate = function (complete) {
var holder = document.createElement("div");
holder.innerHTML = "
" +
"Your text here" +
"
" +
"";
WinJS.UI.processAll(holder).then(function () {
var undefined;
var renderPromise = null;
q("#target", holder).template(q("#template", holder)[0], undefined, function (donePromise) {
renderPromise = donePromise;
});
return renderPromise;
}).done(function () {
var expectedSpan = holder.querySelectorAll("div span");
LiveUnit.Assert.areEqual(1, expectedSpan.length);
LiveUnit.Assert.areEqual("Your text here", expectedSpan[0].textContent);
complete();
});
}
testCanRenderTemplatesWithData = function (complete) {
var holder = document.createElement("div");
holder.innerHTML = "" +
"" +
"
" +
"";
var data = [{ title: "first" }, { title: "second" }, { title: "third" }];
WinJS.UI.processAll(holder).then(function () {
var renderPromise = null;
q("#target", holder).template(q("#template", holder)[0], data, function (donePromise) {
renderPromise = donePromise;
});
return renderPromise;
}).done(function () {
var rendered = holder.querySelectorAll(".rendered");
LiveUnit.Assert.areEqual(data.length, rendered.length);
for (var i = 0, len = data.length; i < len; ++i) {
LiveUnit.Assert.areEqual(data[i].title, rendered[i].textContent);
}
complete();
});
}
testCanRenderTemplatesReferencedAsElement = function (complete) {
var holder = document.createElement("div");
holder.innerHTML = "" +
"" +
"
" +
"";
var data = [{ title: "first" }, { title: "second" }, { title: "third" }];
var template = holder.querySelector("#template");
WinJS.UI.processAll(holder).then(function () {
var renderPromise = null;
q("#target", holder).template(template, data, function (donePromise) {
renderPromise = donePromise;
});
return renderPromise;
}).done(function () {
var rendered = holder.querySelectorAll(".rendered");
LiveUnit.Assert.areEqual(data.length, rendered.length);
for (var i = 0, len = data.length; i < len; ++i) {
LiveUnit.Assert.areEqual(data[i].title, rendered[i].textContent);
}
complete();
});
}
testCanChainOffTemplateMethod = function (complete) {
var holder = document.createElement("div");
holder.innerHTML = "" +
"" +
"
" +
"";
var data = [{ title: "first" }, { title: "second" }, { title: "third" }];
WinJS.UI.processAll(holder).then(function () {
q("#target", holder).template(q("#template", holder)[0], data).addClass("chained");
}).done(function () {
LiveUnit.Assert.isTrue(WinJS.Utilities.hasClass(q("#target", holder)[0], "chained"));
complete();
});
}
};
}
LiveUnit.registerTestClass("CorsicaTests.TemplateQueryTests");