diff --git a/IPython/html/tests/notebook/dualmode.js b/IPython/html/tests/notebook/dualmode.js
index 2f7ce2e49..32454ef55 100644
--- a/IPython/html/tests/notebook/dualmode.js
+++ b/IPython/html/tests/notebook/dualmode.js
@@ -229,17 +229,42 @@ casper.notebook_test(function () {
this.test.assertEquals(this.get_cell_text(3), '', 'b; New cell 3 text is empty');
this.validate_state('b', 'command', 3);
- // Copy/past/cut
+ // Copy/paste/cut
var num_cells = this.get_cells_length();
this.test.assertEquals(this.get_cell_text(1), a, 'Verify that cell 1 is a');
this.select_cell(1);
this.trigger_keydown('x'); // Cut
this.validate_state('x', 'command', 1);
- this.test.assertEquals(this.get_cells_length(), num_cells-1, 'Verify that the cell was removed.');
+ this.test.assertEquals(this.get_cells_length(), num_cells-1, 'Verify that a cell was removed.');
this.test.assertEquals(this.get_cell_text(1), '', 'Verify that cell 2 is now where cell 1 was.');
this.select_cell(2);
this.trigger_keydown('v'); // Paste
- this.validate_state('v', 'command', 3);
+ this.validate_state('v', 'command', 3); // Selection should move to pasted cell, below current cell.
+ this.test.assertEquals(this.get_cell_text(3), a, 'Verify that cell 3 has the cut contents.');
+ this.test.assertEquals(this.get_cells_length(), num_cells, 'Verify a the cell was added.');
+ this.trigger_keydown('v'); // Paste
+ this.validate_state('v', 'command', 4); // Selection should move to pasted cell, below current cell.
+ this.test.assertEquals(this.get_cell_text(4), a, 'Verify that cell 4 has the cut contents.');
+ this.test.assertEquals(this.get_cells_length(), num_cells+1, 'Verify a the cell was added.');
+ this.select_cell(5);
+ this.trigger_keydown('c'); // Copy
+ this.validate_state('c', 'command', 5);
+ this.test.assertEquals(this.get_cell_text(5), b, 'Verify that cell 5 is b');
+ this.select_cell(6);
+ this.trigger_keydown('c'); // Copy
+ this.validate_state('c', 'command', 6);
+ this.test.assertEquals(this.get_cell_text(6), c, 'Verify that cell 6 is c');
+ this.trigger_keydown('v'); // Paste
+ this.validate_state('v', 'command', 7);
+ this.test.assertEquals(this.get_cell_text(6), c, 'Verify that cell 6 still has the copied contents.');
+ this.test.assertEquals(this.get_cell_text(7), c, 'Verify that cell 7 has the copied contents.');
+ this.test.assertEquals(this.get_cells_length(), num_cells+2, 'Verify a the cell was added.');
+ this.select_cell(0);
+ this.trigger_keydown('shift+v'); // Paste
+ this.validate_state('shift+v', 'command', 0);
+ this.test.assertEquals(this.get_cell_text(0), c, 'Verify that cell 0 has the copied contents.');
+ this.test.assertEquals(this.get_cells_length(), num_cells+3, 'Verify a the cell was added.');
+
});