diff --git a/IPython/html/tests/notebook/dualmode.js b/IPython/html/tests/notebook/dualmode.js index 7126829..444f0de 100644 --- a/IPython/html/tests/notebook/dualmode.js +++ b/IPython/html/tests/notebook/dualmode.js @@ -55,18 +55,58 @@ casper.notebook_test(function () { this.validate_state('focus #notebook', 'command', 0); this.click_cell(3); this.validate_state('click cell 3', 'edit', 3); + + // shift+enter tests. + // last cell in notebook + var base_index = 3; + this.trigger_keydown('shift+enter'); // Creates one cell + this.validate_state('shift+enter (no cell below)', 'edit', base_index + 1); + // not last cell in notebook & starts in edit mode + this.click_cell(base_index); + this.validate_state('click cell %d' % base_index, 'edit', base_index); this.trigger_keydown('shift+enter'); - this.validate_state('shift+enter (no cell below)', 'edit', 4); - this.click_cell(3); - this.validate_state('click cell 3', 'edit', 3); + this.validate_state('shift+enter (cell exists below)', 'command', base_index + 1); + // starts in command mode + this.trigger_keydown('k'); + this.validate_state('k in comand mode', 'command', base_index); this.trigger_keydown('shift+enter'); - this.validate_state('shift+enter (cell exists below)', 'command', 4); - this.click_cell(3); - this.validate_state('click cell 3', 'edit', 3); - this.trigger_keydown('alt+enter'); - this.validate_state('alt+enter', 'edit', 4); + this.validate_state('shift+enter (start in command mode)', 'command', base_index + 1); + + // ctrl+enter tests. + // last cell in notebook + base_index++; this.trigger_keydown('ctrl+enter'); - this.validate_state('ctrl+enter', 'command', 4); + this.validate_state('ctrl+enter (no cell below)', 'command', base_index); + // not last cell in notebook & starts in edit mode + this.click_cell(base_index-1); + this.validate_state('click cell %d' % (base_index-1), 'edit', base_index-1); + this.trigger_keydown('ctrl+enter'); + this.validate_state('ctrl+enter (cell exists below)', 'command', base_index-1); + // starts in command mode + this.trigger_keydown('j'); + this.validate_state('j in comand mode', 'command', base_index); + this.trigger_keydown('ctrl+enter'); + this.validate_state('ctrl+enter (start in command mode)', 'command', base_index); + + // alt+enter tests. + // last cell in notebook + base_index++; + this.trigger_keydown('alt+enter'); // Creates one cell + this.validate_state('alt+enter (no cell below)', 'edit', base_index + 1); + // not last cell in notebook & starts in edit mode + this.click_cell(base_index); + this.validate_state('click cell %d' % base_index, 'edit', base_index); + this.trigger_keydown('alt+enter'); // Creates one cell + this.validate_state('alt+enter (cell exists below)', 'edit', base_index + 1); + // starts in command mode + this.trigger_keydown('esc'); + this.trigger_keydown('k'); + this.validate_state('k in comand mode', 'command', base_index); + this.trigger_keydown('alt+enter'); // Creates one cell + this.validate_state('alt+enter (start in command mode)', 'edit', base_index + 1); + + // Notebook will now have 8 cells, the index of the last cell will be 7. + });