##// END OF EJS Templates
Backport PR #5459: Fix interact animation page jump FF...
Backport PR #5459: Fix interact animation page jump FF Firefox doesn't render images immediately as the data is available. When animating the way that we animate, this causes the output area to collapse quickly before returning to its original size. When the output area collapses, FireFox scrolls upwards in attempt to compensate for the lost vertical content (so it looks like you are on the same spot in the page, with respect to the contents below the image's prior location). The solution is to resize the image output after the `img onload` event has fired. This PR: - Releases the `clear_output` height lock after the image has been loaded (instead of immediately or using a timeout). - Removes a `setTimeout` call in the `append_output` method. - `clear_output` in zmqshell no longer sends `\r` to the stream outputs. closes #5128

File last commit:

r15936:c5e9bff0
r16229:ff1462d3
Show More
dualmode.js
78 lines | 2.9 KiB | application/javascript | JavascriptLexer
Jonathan Frederic
Add dual mode JS tests
r15914 // Test the notebook dual mode feature.
// Test
casper.notebook_test(function () {
Jonathan Frederic
Added ctrl+(j&k), a, and b tests
r15928 var a = 'print("a")';
var index = this.append_cell(a);
Jonathan Frederic
Add dual mode JS tests
r15914 this.execute_cell_then(index);
Jonathan Frederic
Added ctrl+(j&k), a, and b tests
r15928
var b = 'print("b")';
index = this.append_cell(b);
Jonathan Frederic
Add dual mode JS tests
r15914 this.execute_cell_then(index);
Jonathan Frederic
Added ctrl+(j&k), a, and b tests
r15928
var c = 'print("c")';
index = this.append_cell(c);
Jonathan Frederic
Add dual mode JS tests
r15914 this.execute_cell_then(index);
this.then(function () {
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('initial state', 'edit', 0);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('esc');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('esc', 'command', 0);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('down');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('down', 'command', 1);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('enter');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('enter', 'edit', 1);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('j');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('j in edit mode', 'edit', 1);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('esc');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('esc', 'command', 1);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('j');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('j in command mode', 'command', 2);
Jonathan Frederic
Added up/down and markdown tests
r15926 this.click_cell_editor(0);
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('click cell 0', 'edit', 0);
Jonathan Frederic
Added up/down and markdown tests
r15926 this.click_cell_editor(3);
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('click cell 3', 'edit', 3);
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('esc');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('esc', 'command', 3);
Jonathan Frederic
Add dual mode JS tests
r15914
// Open keyboard help
this.evaluate(function(){
$('#keyboard_shortcuts a').click();
}, {});
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('k');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('k in command mode while keyboard help is up', 'command', 3);
Jonathan Frederic
Add dual mode JS tests
r15914
// Close keyboard help
this.evaluate(function(){
$('div.modal button.close').click();
}, {});
Jonathan Frederic
s/key_press/trigger_keydown
r15915 this.trigger_keydown('k');
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('k in command mode', 'command', 2);
Jonathan Frederic
Added up/down and markdown tests
r15926 this.click_cell_editor(0);
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('click cell 0', 'edit', 0);
Jonathan Frederic
Add dual mode JS tests
r15914 this.focus_notebook();
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('focus #notebook', 'command', 0);
Jonathan Frederic
Added up/down and markdown tests
r15926 this.click_cell_editor(0);
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('click cell 0', 'edit', 0);
Jonathan Frederic
Add dual mode JS tests
r15914 this.focus_notebook();
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('focus #notebook', 'command', 0);
Jonathan Frederic
Added up/down and markdown tests
r15926 this.click_cell_editor(3);
Jonathan Frederic
HUGE speed improvements to dual mode tests
r15934 this.validate_notebook_state('click cell 3', 'edit', 3);
Jonathan Frederic
Made *+enter tests more complicated.
r15922
Jonathan Frederic
Added ctrl+(j&k), a, and b tests
r15928 // Cell deletion
Jonathan Frederic
Cleaned up test names and locations.
r15936 this.trigger_keydown('esc', 'd', 'd');
this.test.assertEquals(this.get_cells_length(), 3, 'dd actually deletes a cell');
this.validate_notebook_state('dd', 'command', 2);
Jonathan Frederic
Add dd tests
r15924
Jonathan Frederic
Added ctrl+(j&k), a, and b tests
r15928 // Make sure that if the time between d presses is too long, nothing gets removed.
Jonathan Frederic
Add dd tests
r15924 this.trigger_keydown('d');
Jonathan Frederic
Add dual mode JS tests
r15914 });
Jonathan Frederic
Add dd tests
r15924 this.wait(1000);
this.then(function () {
this.trigger_keydown('d');
Jonathan Frederic
Cleaned up test names and locations.
r15936 this.test.assertEquals(this.get_cells_length(), 3, "d, 1 second wait, d doesn't delete a cell");
this.validate_notebook_state('d, 1 second wait, d', 'command', 2);
Jonathan Frederic
Add dd tests
r15924 });
Jonathan Frederic
Add dual mode JS tests
r15914 });