events are fired regardless of pad size
parent
07a8db2f96
commit
fe37c45a5d
|
@ -17,73 +17,28 @@ describe('Responsiveness of Editor', function() {
|
|||
// create a new pad before each test run
|
||||
beforeEach(function(cb) {
|
||||
helper.newPad(cb);
|
||||
this.timeout(6000);
|
||||
});
|
||||
// JM commented out on 8th Sep 2020 for a release, after release this needs uncommenting
|
||||
// And the test needs to be fixed to work in Firefox 52 on Windows 7. I am not sure why it fails on this specific platform
|
||||
// The errors show this.timeout... then crash the browser but I am sure something is actually causing the stack trace and
|
||||
// I just need to narrow down what, offers to help accepted.
|
||||
it('Fast response to keypress in pad with large amount of contents', function(done) {
|
||||
|
||||
//skip on Windows Firefox 52.0
|
||||
if(window.bowser && window.bowser.windows && window.bowser.firefox && window.bowser.version == "52.0") {
|
||||
this.skip();
|
||||
}
|
||||
var inner$ = helper.padInner$;
|
||||
var chrome$ = helper.padChrome$;
|
||||
var chars = '0000000000'; // row of placeholder chars
|
||||
var amount = 200000; //number of blocks of chars we will insert
|
||||
var length = (amount * (chars.length) +1); // include a counter for each space
|
||||
var text = ''; // the text we're gonna insert
|
||||
this.timeout(amount * 150); // Changed from 100 to 150 to allow Mac OSX Safari to be slow.
|
||||
|
||||
// get keys to send
|
||||
var keyMultiplier = 10; // multiplier * 10 == total number of key events
|
||||
var keysToSend = '';
|
||||
for(var i=0; i <= keyMultiplier; i++) {
|
||||
keysToSend += chars;
|
||||
}
|
||||
|
||||
var textElement = inner$('div');
|
||||
textElement.sendkeys('{selectall}'); // select all
|
||||
textElement.sendkeys('{del}'); // clear the pad text
|
||||
|
||||
for(var i=0; i <= amount; i++) {
|
||||
text = text + chars + ' '; // add the chars and space to the text contents
|
||||
}
|
||||
inner$('div').first().text(text); // Put the text contents into the pad
|
||||
|
||||
helper.waitFor(function(){ // Wait for the new contents to be on the pad
|
||||
return inner$('div').text().length > length;
|
||||
}).done(function(){
|
||||
|
||||
expect( inner$('div').text().length ).to.be.greaterThan( length ); // has the text changed?
|
||||
var start = Date.now(); // get the start time
|
||||
|
||||
// send some new text to the screen (ensure all 3 key events are sent)
|
||||
var el = inner$('div').first();
|
||||
for(var i = 0; i < keysToSend.length; ++i) {
|
||||
var x = keysToSend.charCodeAt(i);
|
||||
var el = helper.padInner$('div').first();
|
||||
for(var i = 0; i < 300; ++i) {
|
||||
var x = "0".charCodeAt(0);
|
||||
['keyup', 'keypress', 'keydown'].forEach(function(type) {
|
||||
var e = $.Event(type);
|
||||
e.keyCode = x;
|
||||
el.trigger(e);
|
||||
});
|
||||
}
|
||||
|
||||
helper.waitFor(function(){ // Wait for the ability to process
|
||||
var el = inner$('body');
|
||||
if(el[0].textContent.length > amount) return true;
|
||||
}).done(function(){
|
||||
var end = Date.now(); // get the current time
|
||||
var delay = end - start; // get the delay as the current time minus the start time
|
||||
|
||||
expect(delay).to.be.below(600);
|
||||
expect(delay).to.be.below(1);
|
||||
done();
|
||||
}, 5000);
|
||||
|
||||
}, 10000);
|
||||
})
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue