| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="UndoTests.js"></script> |
| <script> |
| |
| function insertHeading(numbered,title) |
| { |
| UndoManager_newGroup("Insert heading"); |
| var h1 = DOM_createElement(document,"H1"); |
| DOM_appendChild(h1,DOM_createTextNode(document,title)); |
| Clipboard_pasteNodes([h1]); |
| Outline_setNumbered(h1.getAttribute("id"),numbered); |
| |
| |
| // Place the cursor directly after the heading |
| var offset = DOM_nodeOffset(h1); |
| var pos = new Position(h1.parentNode,offset); |
| pos = Position_closestMatchForwards(pos,Position_okForMovement); |
| Selection_set(pos.node,pos.offset,pos.node,pos.offset); |
| |
| PostponedActions_add(UndoManager_newGroup); |
| } |
| |
| function performTest() |
| { |
| Outline_init(); |
| PostponedActions_perform(); |
| UndoManager_clear(); |
| |
| var versions = new Array(); |
| |
| var body = document.body; |
| versions.push(DOM_cloneNode(body,true)); |
| |
| insertHeading(false,"First heading"); |
| PostponedActions_perform(); |
| versions.push(DOM_cloneNode(body,true)); |
| |
| placeCursorAfterElement("item1"); |
| insertHeading(false,"Second heading"); |
| PostponedActions_perform(); |
| versions.push(DOM_cloneNode(body,true)); |
| |
| placeCursorAfterElement("item1"); |
| |
| insertHeading(false,"Third heading"); |
| PostponedActions_perform(); |
| versions.push(DOM_cloneNode(body,true)); |
| |
| placeCursorAfterElement("item2"); |
| insertHeading(false,"Fourth heading"); |
| PostponedActions_perform(); |
| versions.push(DOM_cloneNode(body,true)); |
| |
| testUndo(versions,body); |
| } |
| </script> |
| </head> |
| <body> |
| [] |
| </body> |
| </html> |