import { knockout } from "../../Source/Cesium.js";
|
|
describe("ThirdParty/knockout", function () {
|
it("check binding with constants", function () {
|
var div = document.createElement("div");
|
div.setAttribute(
|
"data-bind",
|
'\
|
cesiumSvgPath: { path: "M 100 100 L 300 100 L 200 300 Z", width: 28, height: 40, css: "someClass" }'
|
);
|
|
document.body.appendChild(div);
|
|
knockout.applyBindings({}, div);
|
|
var svg = div.querySelector("svg.cesium-svgPath-svg");
|
expect(svg).not.toBeNull();
|
expect(svg.getAttribute("width")).toEqual("28");
|
expect(svg.getAttribute("height")).toEqual("40");
|
expect(svg.getAttribute("class").split(/\s/)).toContain("someClass");
|
|
var path = div.querySelector("svg > path");
|
expect(path).not.toBeNull();
|
expect(path.getAttribute("d")).toEqual("M 100 100 L 300 100 L 200 300 Z");
|
|
knockout.cleanNode(div);
|
document.body.removeChild(div);
|
});
|
|
it("check binding with observables", function () {
|
var div = document.createElement("div");
|
div.setAttribute(
|
"data-bind",
|
"\
|
cesiumSvgPath: { path: p, width: w, height: h, css: c }"
|
);
|
|
document.body.appendChild(div);
|
|
knockout.applyBindings(
|
{
|
p: knockout.observable("M 100 100 L 300 100 L 200 300 Z"),
|
w: knockout.observable(28),
|
h: knockout.observable(40),
|
c: knockout.observable("someClass"),
|
},
|
div
|
);
|
|
var svg = div.querySelector("svg.cesium-svgPath-svg");
|
expect(svg).not.toBeNull();
|
expect(svg.getAttribute("width")).toEqual("28");
|
expect(svg.getAttribute("height")).toEqual("40");
|
expect(svg.getAttribute("class").split(/\s/)).toContain("someClass");
|
|
var path = div.querySelector("svg > path");
|
expect(path).not.toBeNull();
|
expect(path.getAttribute("d")).toEqual("M 100 100 L 300 100 L 200 300 Z");
|
|
knockout.cleanNode(div);
|
document.body.removeChild(div);
|
});
|
|
it("check binding with observable parameter object", function () {
|
var div = document.createElement("div");
|
div.setAttribute("data-bind", "\
|
cesiumSvgPath: svgPath");
|
|
document.body.appendChild(div);
|
|
var viewModel = {
|
svgPath: knockout.observable({
|
path: knockout.observable("M 100 100 L 300 100 L 200 300 Z"),
|
width: knockout.observable(28),
|
height: knockout.observable(40),
|
css: knockout.observable("someClass"),
|
}),
|
};
|
knockout.applyBindings(viewModel, div);
|
|
var svg = div.querySelector("svg.cesium-svgPath-svg");
|
expect(svg).not.toBeNull();
|
expect(svg.getAttribute("width")).toEqual("28");
|
expect(svg.getAttribute("height")).toEqual("40");
|
expect(svg.getAttribute("class").split(/\s/)).toContain("someClass");
|
|
var path = div.querySelector("svg > path");
|
expect(path).not.toBeNull();
|
expect(path.getAttribute("d")).toEqual("M 100 100 L 300 100 L 200 300 Z");
|
|
knockout.cleanNode(div);
|
document.body.removeChild(div);
|
});
|
});
|