| <!DOCTYPE html> <!-- webkit-test-runner [ UndoManagerAPIEnabled=true ] --> |
| <html> |
| <meta charset="utf8"> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| <script src="../editing.js"></script> |
| <script> |
| function runTest() { |
| description("Verifies that undo and redo callback handlers survive garbage collection. This test requires WebKitTestRunner."); |
| |
| text = document.getElementById("text"); |
| |
| document.undoManager.addItem(new UndoItem({ |
| label: "Test action", |
| undo: () => text.textContent = "After undo", |
| redo: () => text.textContent = "After redo" |
| })); |
| |
| if (window.GCController) |
| GCController.collect(); |
| |
| document.execCommand("Undo"); |
| shouldBeEqualToString("text.textContent", "After undo"); |
| |
| document.execCommand("Redo"); |
| shouldBeEqualToString("text.textContent", "After redo"); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <div id="text">Initial state</div> |
| <pre id="description"></pre> |
| <pre id="console"></pre> |
| </body> |
| </html> |