@qooxdoo/framework
Version:
The JS Framework for Coders
958 lines (669 loc) • 29 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2007-2008 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Fabian Jakobs (fjakobs)
************************************************************************ */
qx.Class.define("qx.test.html.Element",
{
extend : qx.dev.unit.TestCase,
members :
{
setUp : function()
{
var helper = document.createElement("div");
document.body.appendChild(helper);
this._doc = new qx.html.Root(helper);
this._doc.setAttribute("id", "doc");
},
tearDown : function()
{
qx.html.Element.flush();
this._doc.dispose();
var div = document.getElementById("doc");
document.body.removeChild(div);
},
testHasListenerNoFlush : function()
{
var listener = function(e) {};
var el = new qx.html.Element();
el.addListener("click", listener, this);
el.addListener("mousedown", listener, this, true);
this.assertTrue(el.hasListener("click", false));
this.assertFalse(el.hasListener("click", true));
this.assertTrue(el.hasListener("mousedown", true));
this.assertFalse(el.hasListener("mousedown", false));
el.dispose();
},
testHasListenerFlush : function()
{
var listener = function(e) {};
var el = new qx.html.Element();
el.addListener("click", listener, this);
el.addListener("mousedown", listener, this, true);
qx.html.Element.flush();
this.assertTrue(el.hasListener("click", false));
this.assertFalse(el.hasListener("click", true));
this.assertTrue(el.hasListener("mousedown", true));
this.assertFalse(el.hasListener("mousedown", false));
el.dispose();
},
testAddListener : function()
{
// flush at end
var listener = function() {};
var el = new qx.html.Element();
el.addListener("click", listener, this, false);
this.assertTrue(el.hasListener("click", false));
el.removeListener("click", listener, this, false);
this.assertFalse(el.hasListener("click", false));
qx.html.Element.flush();
el.dispose();
// flush after create
el = new qx.html.Element();
qx.html.Element.flush();
el.addListener("click", listener, this, false);
this.assertTrue(el.hasListener("click", false));
el.removeListener("click", listener, this, false);
this.assertFalse(el.hasListener("click", false));
el.dispose();
// flush after add listener
var el = new qx.html.Element();
el.addListener("click", listener, this, false);
qx.html.Element.flush();
this.assertTrue(el.hasListener("click", false));
el.removeListener("click", listener, this, false);
this.assertFalse(el.hasListener("click", false));
el.dispose();
},
testRemoveListenerById : function()
{
// flush at end
var el = new qx.html.Element();
var id = el.addListener("click", function() {}, this, false);
this.assertTrue(el.hasListener("click", false));
el.removeListenerById(id);
this.assertFalse(el.hasListener("click", false));
qx.html.Element.flush();
el.dispose();
// flush after create
var el = new qx.html.Element();
qx.html.Element.flush();
var id = el.addListener("click", function() {}, this, false);
this.assertTrue(el.hasListener("click", false));
el.removeListenerById(id);
this.assertFalse(el.hasListener("click", false));
el.dispose();
// flush after add
var el = new qx.html.Element();
var id = el.addListener("click", function() {}, this, false);
qx.html.Element.flush();
this.assertTrue(el.hasListener("click", false));
el.removeListenerById(id);
this.assertFalse(el.hasListener("click", false));
el.dispose();
},
testAddListenerOnce: function() {
var el = new qx.html.Element("div", {
width: '100px'
});
el.hide();
qx.core.Init.getApplication().getRoot().getContentElement().add(el);
var called = 0;
el.addListenerOnce("appear", function() {
this.debug("appear!");
called++;
}, this);
el.show();
qx.html.Element.flush();
el.hide();
qx.html.Element.flush();
el.show();
this.wait(100, function() {
this.assertEquals(1, called);
el.dispose();
}, this);
},
testBasics : function()
{
//
// BASICS
//
var el1 = new qx.html.Element;
var el2a = new qx.html.Element;
var el2b = new qx.html.Element;
var el3a = new qx.html.Element;
var el3b = new qx.html.Element;
this.assertQxObject(el1);
this.assertQxObject(el2a);
// ...
el1.setAttribute("id", "el1");
el2a.setAttribute("id", "el2a");
el2b.setAttribute("id", "el2b");
el3a.setAttribute("id", "el3a");
el3b.setAttribute("id", "el3b");
this.assertIdentical(el1.getAttribute("id"), "el1");
this.assertIdentical(el2a.getAttribute("id"), "el2a");
// ...
el1.add(el2a, el2b);
el2a.add(el3a, el3b);
this._doc.add(el1);
el3a.setAttribute("html", "<b>hello</b>");
this.assertIdentical(el3a.getAttribute("html"), "<b>hello</b>");
el1.setStyle("color", "blue");
el1.setStyle("width", "100px").setStyle("height", "100px");
this.assertCssColor("blue", el1.getStyle("color"));
this.assertIdentical("100px", el1.getStyle("width"));
this.assertIdentical("100px", el1.getStyle("height"));
qx.html.Element.flush();
// DOM Structure Tests
var pa = document.getElementById("el1");
var ch1 = document.getElementById("el2a");
var ch2 = document.getElementById("el2b");
var ch3 = document.getElementById("el3a");
var ch4 = document.getElementById("el3b");
this.assertFalse(ch1===ch2);
this.assertIdentical(ch1.parentNode, pa);
this.assertIdentical(ch2.parentNode, pa);
this.assertIdentical(ch3.parentNode, ch1);
this.assertIdentical(ch4.parentNode, ch1);
// Internal Structure Tests
this.assertIdentical(el1.getChildren()[0], el2a);
this.assertIdentical(el1.getChildren()[1], el2b);
this.assertIdentical(el2a.getChildren()[0], el3a);
this.assertIdentical(el2a.getChildren()[1], el3b);
//
// POSITIONED INSERT #1
//
this.assertIdentical(this._doc.getChildren()[0], el1);
var before1 = new qx.html.Element;
before1.setAttribute("id", "before1");
before1.insertBefore(el1);
var after1 = new qx.html.Element;
after1.setAttribute("id", "after1");
after1.insertAfter(el1);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], el1);
this.assertIdentical(this._doc.getChildren()[2], after1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], after1.getDomElement());
//
// POSITIONED INSERT #2
//
var before2 = new qx.html.Element;
before2.setAttribute("id", "before2");
this._doc.addAt(before2, 0);
var after2 = new qx.html.Element;
after2.setAttribute("id", "after2");
this._doc.addAt(after2, 10);
this.assertIdentical(this._doc.getChildren()[0], before2);
this.assertIdentical(this._doc.getChildren()[1], before1);
this.assertIdentical(this._doc.getChildren()[2], el1);
this.assertIdentical(this._doc.getChildren()[3], after1);
this.assertIdentical(this._doc.getChildren()[4], after2);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after2.getDomElement());
//
// MOVE
//
before2.moveAfter(before1);
after2.moveBefore(after1);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], before2);
this.assertIdentical(this._doc.getChildren()[2], el1);
this.assertIdentical(this._doc.getChildren()[3], after2);
this.assertIdentical(this._doc.getChildren()[4], after1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], after2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after1.getDomElement());
//
// SWITCH
//
var in1 = this._doc.indexOf(before2);
var in2 = this._doc.indexOf(after2);
this.assertIdentical(in1, 1);
this.assertIdentical(in2, 3);
before2.moveTo(in2);
after2.moveTo(in1);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], after2);
this.assertIdentical(this._doc.getChildren()[2], el1);
this.assertIdentical(this._doc.getChildren()[3], before2);
this.assertIdentical(this._doc.getChildren()[4], after1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], after2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after1.getDomElement());
//
// REMOVE
//
this._doc.remove(before2);
this._doc.remove(after2);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], el1);
this.assertIdentical(this._doc.getChildren()[2], after1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], after1.getDomElement());
// RE-ADD
this._doc.add(before2, after2);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], el1);
this.assertIdentical(this._doc.getChildren()[2], after1);
this.assertIdentical(this._doc.getChildren()[3], before2);
this.assertIdentical(this._doc.getChildren()[4], after2);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after2.getDomElement());
// REMOVE, ADD, REMOVE, ADD
// should be identical afterwards
this._doc.remove(before2, after2);
this._doc.add(before2, after2);
this._doc.remove(before2, after2);
this._doc.add(before2, after2);
this.assertIdentical(this._doc.getChildren()[0], before1);
this.assertIdentical(this._doc.getChildren()[1], el1);
this.assertIdentical(this._doc.getChildren()[2], after1);
this.assertIdentical(this._doc.getChildren()[3], before2);
this.assertIdentical(this._doc.getChildren()[4], after2);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after2.getDomElement());
// REMOVER, MOVE AND INSERT IN ONE STEP
this._doc.remove(before2);
before1.moveAfter(after1);
before2.insertBefore(before1);
this.assertIdentical(this._doc.getChildren()[0], el1);
this.assertIdentical(this._doc.getChildren()[1], after1);
this.assertIdentical(this._doc.getChildren()[2], before2);
this.assertIdentical(this._doc.getChildren()[3], before1);
this.assertIdentical(this._doc.getChildren()[4], after2);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], after2.getDomElement());
/*
BEFORE: AFTER1: AFTER2: AFTER3:
before1 before1 el1 el1
el1 el1 after1 after1
after1 after1 before1 before2
before2 after2 after2 before1
after2 after2
*/
// SORT
var a = this._doc.getChildren();
for (var i=1, l=a.length; i<l; i++) {
a[i].moveTo(0);
}
this.assertIdentical(this._doc.getChildren()[0], after2);
this.assertIdentical(this._doc.getChildren()[1], before1);
this.assertIdentical(this._doc.getChildren()[2], before2);
this.assertIdentical(this._doc.getChildren()[3], after1);
this.assertIdentical(this._doc.getChildren()[4], el1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], after2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], el1.getDomElement());
// ROTATION
before1.moveAfter(before2);
this.assertIdentical(this._doc.getChildren()[0], after2);
this.assertIdentical(this._doc.getChildren()[1], before2);
this.assertIdentical(this._doc.getChildren()[2], before1);
this.assertIdentical(this._doc.getChildren()[3], after1);
this.assertIdentical(this._doc.getChildren()[4], el1);
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], after2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], before2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], before1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], after1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], el1.getDomElement());
},
testExclude : function()
{
this.info("Create five elements (2 hidden)");
var el1 = new qx.html.Element;
el1.setAttribute("id", "el1");
var el2 = new qx.html.Element;
el2.setAttribute("id", "el2");
var el3 = new qx.html.Element;
el3.setAttribute("id", "el3");
var el4 = new qx.html.Element;
el4.setAttribute("id", "el4");
var el5 = new qx.html.Element;
el5.setAttribute("id", "el5");
this._doc.add(el1, el2, el3, el4, el5);
el2.exclude();
el4.exclude();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], undefined);
/**
* Current:
*
* doc
* - el1
* - el3
* - el5
*/
this.info("Make simple hidden element visible");
el2.include();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], undefined);
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el5
*/
this.info("Make complex hidden element visible");
var el4_1 = new qx.html.Element;
el4_1.setAttribute("id", "el4_1");
var el4_2 = new qx.html.Element;
el4_2.setAttribute("id", "el4_2");
el4_2.setStyle("color", "red");
el4_2.setAttribute("text", "el4_2");
el4_2.exclude();
var el4_3 = new qx.html.Element;
el4_3.setAttribute("id", "el4_3");
el4.add(el4_1, el4_2, el4_3);
el4.include();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el4.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[5], undefined);
this.assertIdentical(this._doc.getDomElement().childNodes[3].firstChild, el4_1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].lastChild, el4_3.getDomElement());
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el4
* - el4_1
* - el4_3
* - el5
*/
this.info("Show inner element");
el4_2.include();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el4.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[5], undefined);
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[0], el4_1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[1], el4_2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[2], el4_3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[3], undefined);
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el4
* - el4_1
* - el4_2
* - el4_3
* - el5
*/
this.info("Internal move while hidden");
el4.exclude();
el4_3.moveTo(0);
el4.remove(el4_2);
el4_1.setStyle("fontSize", "20px");
el4_1.setAttribute("text", "el4_1");
el4.setStyle("backgroundColor", "#ccc");
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], undefined);
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el5
*/
this.info("Internal move while hidden -> show again");
el4.include();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el4.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[5], undefined);
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[0], el4_3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[1], el4_1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3].childNodes[2], undefined);
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el4
* - el4_3
* - el4_1
* - el5
*/
el4_2.dispose();
},
testVisibility : function()
{
this.info("Create five elements (2 hidden)");
var el1 = new qx.html.Element;
el1.setAttribute("id", "el1");
var el2 = new qx.html.Element;
el2.setAttribute("id", "el2");
var el3 = new qx.html.Element;
el3.setAttribute("id", "el3");
var el4 = new qx.html.Element;
el4.setAttribute("id", "el4");
var el5 = new qx.html.Element;
el5.setAttribute("id", "el5");
this._doc.add(el1, el2, el3, el4, el5);
el2.hide();
el4.hide();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], undefined);
/**
* Current:
*
* doc
* - el1
* - el3
* - el5
*/
this.info("Show one of the two hidden elements");
el2.show();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], undefined);
/**
* Current:
*
* doc
* - el1
* - el2
* - el3
* - el5
*/
this.info("Hide a rendered element");
el3.hide();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], undefined);
this.assertIdentical(el3.getDomElement().style.display, "none");
/**
* Current:
*
* doc
* - el1
* - el2
* - el3 (hidden)
* - el5
*/
this.info("Exclude & show together");
el3.exclude();
el3.show();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], undefined);
this.assertIdentical(el3.getDomElement().style.display, "");
/**
* Current:
*
* doc
* - el1
* - el2
* - el5
*/
this.info("Include one and hide another element");
el3.include();
el2.hide();
qx.html.Element.flush();
this.assertIdentical(this._doc.getDomElement().childNodes[0], el1.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[1], el2.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[2], el3.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[3], el5.getDomElement());
this.assertIdentical(this._doc.getDomElement().childNodes[4], undefined);
this.assertIdentical(el2.getDomElement().style.display, "none");
this.assertIdentical(el3.getDomElement().style.display, "");
/**
* Current:
*
* doc
* - el1
* - el2 (hidden)
* - el3
* - el5
*/
},
testResetStyles : function()
{
var el = new qx.html.Element();
this._doc.add(el);
qx.html.Element.flush();
this.assertIdentical(el.getDomElement().style.backgroundColor, '');
el.setStyle("backgroundColor", "green");
qx.html.Element.flush();
this.assertCssColor("green", el.getDomElement().style.backgroundColor);
el.setStyle("backgroundColor", null);
el.setStyle("backgroundColor", "yellow");
qx.html.Element.flush();
this.assertCssColor("yellow", el.getDomElement().style.backgroundColor);
el.setStyle("backgroundColor", null);
qx.html.Element.flush();
this.assertIdentical(el.getDomElement().style.backgroundColor, "");
},
testGetTextSelection : function()
{
var el = new qx.html.Element("input");
el.setAttribute("value", "vanillebaer");
this._doc.add(el);
qx.html.Element.flush();
qx.bom.Selection.set(el.getDomElement(), 0, 4);
this.assertEquals(el.getTextSelection(), "vani");
el.clearTextSelection();
qx.html.Element.flush();
},
testSetTextSelection : function()
{
var el = new qx.html.Element("input");
el.setAttribute("value", "vanillebaer");
this._doc.add(el);
qx.html.Element.flush();
qx.bom.Selection.set(el.getDomElement(), 0, 4);
this.assertEquals(el.getTextSelection(), "vani");
el.setTextSelection(2, 5);
this.assertEquals(el.getTextSelection(), "nil");
el.clearTextSelection();
qx.html.Element.flush();
},
testClearTextSelection : function()
{
var el = new qx.html.Element("input");
el.setAttribute("value", "vanillebaer");
this._doc.add(el);
qx.html.Element.flush();
qx.bom.Selection.set(el.getDomElement(), 0, 2);
this.assertEquals(el.getTextSelection(), "va");
el.clearTextSelection();
this.assertEquals(el.getTextSelection(), "");
el.clearTextSelection();
qx.html.Element.flush();
},
testSelectAllText : function()
{
var el = new qx.html.Element("input");
el.setAttribute("value", "vanillebaer");
this._doc.add(el);
qx.html.Element.flush();
qx.bom.Selection.set(el.getDomElement(), 0);
this.assertEquals(el.getTextSelection(), "vanillebaer");
el.clearTextSelection();
qx.html.Element.flush();
}
}
});