UNPKG

quixote

Version:

CSS unit and integration testing

51 lines (40 loc) 1.74 kB
// Copyright (c) 2016-2017 Titanium I.T. LLC. All rights reserved. For license, see "README" or "LICENSE" file. "use strict"; var ensure = require("../util/ensure.js"); var RenderState = require("../values/render_state.js"); var Position = require("../values/position.js"); var Descriptor = require("./descriptor.js"); var ElementRenderEdge = require("./element_render_edge.js"); var Span = require("./span.js"); var Center = require("./center.js"); var Me = module.exports = function ElementRender(element) { var QElement = require("../q_element.js"); // break circular dependency ensure.signature(arguments, [ QElement ]); this.should = this.createShould(); this._element = element; // properties this.top = ElementRenderEdge.top(element); this.right = ElementRenderEdge.right(element); this.bottom = ElementRenderEdge.bottom(element); this.left = ElementRenderEdge.left(element); this.width = Span.create(this.left, this.right, "rendered width of " + element); this.height = Span.create(this.top, this.bottom, "rendered height of " + element); this.center = Center.x(this.left, this.right, "rendered center of " + element); this.middle = Center.y(this.top, this.bottom, "rendered middle of " + element); }; Descriptor.extend(Me); Me.create = function create(element) { return new Me(element); }; Me.prototype.value = function value() { if (this.top.value().equals(Position.noY())) return RenderState.notRendered(); else return RenderState.rendered(); }; Me.prototype.toString = function toString() { return this._element.toString() + " rendering"; }; Me.prototype.convert = function convert(arg, type) { if (type === "boolean") { return arg ? RenderState.rendered() : RenderState.notRendered(); } };