I provided a UI test of numberEdit field created ExtJs component and pureJS. It doesn't work correctly.
Method "type" should simulate number typing from keyboard, but it is typing any symbols passing by component logic.
Is that Siesta bug, or I use incorrect logic?
There is test code:
StartTest(function(t) {
var pureInput = document.createElement("input");
pureInput.id = "exp1-input";
document.body.appendChild(pureInput);
pureInput.onkeypress = function(){
var e = window.event || e;
var keyunicode = e.charCode || e.keyCode;
if(!validateKey(keyunicode)){
return false;
}
}
function validateKey(keyunicode){
var availChars = new RegExp('[\\d-.,]','gi');
var key = String.fromCharCode(keyunicode);
return availChars.test(key);
}
//-------------------------------------------------------------------
var numEdit = Ext.create('Ext.container.AbstractContainer', {
renderTo: Ext.getBody(),
items: [
{
xtype: 'numberfield',
fieldLabel: 'Num',
}
]
});
var extNumberEdit = numEdit.el.dom.getElementsByTagName("input")[0];
//-------------------------------------------------------------------
t.chain(
{
action: 'type',
target: pureInput,
text: 'some text'
},
{
action: 'type',
target: extNumberEdit,
text: 'some text'
},
function(next){
t.is(pureInput.value, '', "Pure JS simpleNumberEdit");
next();
},
function(next){
t.is(extNumberEdit.value, '', "ExtJS numberEdit");
next();
}
);
});