@qooxdoo/framework
Version:
The JS Framework for Coders
270 lines (215 loc) • 6.78 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2004-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)
************************************************************************ */
/**
* @asset(qx/test/webfonts/*)
*/
qx.Class.define("qx.test.ui.basic.Label", {
extend: qx.test.ui.LayoutTestCase,
include: [qx.dev.unit.MRequirements, qx.dev.unit.MMock],
members: {
hasWebFontSupport() {
var browser = qx.core.Environment.get("browser.name");
var version = qx.core.Environment.get("browser.version");
if (
(browser == "firefox" && version < 3.5) ||
(browser == "opera" && version < 10)
) {
return false;
}
return true;
},
tearDown() {
super.tearDown();
this.getSandbox().restore();
},
testHeightForWidth() {
var container = new qx.ui.container.Composite(new qx.ui.layout.Grow());
this.getRoot().add(container);
var label = new qx.ui.basic.Label(
"juhu kinners juhu kinners juhu kinners juhu kinners juhu kinners juhu kinners "
).set({
rich: true
});
container.add(label);
this.flush();
var width = label.getBounds().width;
this.assertEquals(width, container.getBounds().width);
container.setWidth(10);
this.flush();
container.resetWidth();
this.flush();
this.assertEquals(width, label.getBounds().width);
container.destroy();
},
testSelectableSetOnCreate() {
var l = new qx.ui.basic.Label().set({ selectable: true });
this.getRoot().add(l);
this.flush();
this.assertEquals(
"on",
l.getContentElement().getDomElement().getAttribute("qxselectable")
);
l.destroy();
},
testSelectableUnSetOnCreate() {
var l = new qx.ui.basic.Label().set({ selectable: false });
this.getRoot().add(l);
this.flush();
this.assertEquals(
"off",
l.getContentElement().getDomElement().getAttribute("qxselectable")
);
l.destroy();
},
testSelectableSet() {
var l = new qx.ui.basic.Label();
l.setSelectable(true);
this.getRoot().add(l);
this.flush();
this.assertEquals(
"on",
l.getContentElement().getDomElement().getAttribute("qxselectable")
);
l.destroy();
},
testSelectableUnset() {
var l = new qx.ui.basic.Label();
l.setSelectable(false);
this.getRoot().add(l);
this.flush();
this.assertEquals(
"off",
l.getContentElement().getDomElement().getAttribute("qxselectable")
);
l.destroy();
},
testWrapSet() {
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setWrap(true);
this.assertEquals("normal", l.getContentElement().getStyle("whiteSpace"));
l.dispose();
},
testTextAlign() {
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setTextAlign("justify");
this.assertEquals("justify", l.getContentElement().getStyle("textAlign"));
l.dispose();
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setTextAlign("right");
this.assertEquals("right", l.getContentElement().getStyle("textAlign"));
l.dispose();
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setTextAlign("left");
this.assertEquals("left", l.getContentElement().getStyle("textAlign"));
l.dispose();
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setTextAlign("center");
this.assertEquals("center", l.getContentElement().getStyle("textAlign"));
l.dispose();
},
testWrapNotSet() {
var l = new qx.ui.basic.Label();
l.setRich(true);
l.setWrap(false);
this.assertEquals("nowrap", l.getContentElement().getStyle("whiteSpace"));
l.dispose();
},
testApplyFontColorAndTextColor() {
var font1 = new qx.bom.Font();
font1.setColor("#FF0000");
var label1 = new qx.ui.basic.Label("test 1");
label1.setTextColor("#00FF00");
label1.setFont(font1);
this.getRoot().add(label1);
this.flush();
this.assertEquals(
"#00FF00",
label1.getContentElement().getStyle("color"),
"Color property should have more priority than font color."
);
label1.destroy();
font1.dispose();
},
testBuddy() {
var label = new qx.ui.basic.Label();
var textfield1 = new qx.ui.form.TextField();
var textfield2 = new qx.ui.form.TextField();
// set first text field as buddy
label.setBuddy(textfield1);
// label and textfield1 must have the same binding
this.assertEquals(
1,
label.getBindings().length,
"There must be one binding!"
);
this.assertEquals(
1,
textfield1.getBindings().length,
"There must be one binding!"
);
this.assertTrue(
qx.lang.Array.equals(
label.getBindings()[0],
textfield1.getBindings()[0]
),
"label and textfield1 must have the same binding"
);
// change the buddy of label to textfield2
label.setBuddy(textfield2);
// textfield1 must not have a binding anymore
this.assertEquals(
0,
textfield1.getBindings().length,
"There is still a binding!"
);
// label and textfield2 must have the same binding
this.assertEquals(
1,
label.getBindings().length,
"There must be one binding!"
);
this.assertEquals(
1,
textfield2.getBindings().length,
"There must be one binding!"
);
this.assertTrue(
qx.lang.Array.equals(
label.getBindings()[0],
textfield2.getBindings()[0]
),
"label and textfield1 must have the same binding"
);
label.dispose();
},
testLocaleInitialization() {
var label = new qx.ui.basic.Label();
var localeManager = qx.locale.Manager.getInstance();
localeManager.addTranslation("en", { TEST: "EN" });
localeManager.addTranslation("de", { TEST: "DE" });
localeManager.setLocale("en");
var test = qx.locale.Manager.tr("TEST");
localeManager.setLocale("de");
label.setValue(test);
this.assertEquals(
"DE",
label.getContentElement().getValue(),
"label must have the current locale set"
);
}
}
});