diff options
| -rw-r--r-- | tests/dom_tests/dom_tests.coffee | 36 | 
1 files changed, 36 insertions, 0 deletions
| diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee index 158112b3..ccb84fe0 100644 --- a/tests/dom_tests/dom_tests.coffee +++ b/tests/dom_tests/dom_tests.coffee @@ -1034,3 +1034,39 @@ context "SuppressAllKeyboardEvents",      sendKeyboardEvent "a"      assert.equal 0, pageKeyboardEventCount +context "GrabBackFocus", +  setup -> +    testContent = "<input type='text' value='some value' id='input'/>" +    document.getElementById("test-div").innerHTML = testContent +    stubSettings "grabBackFocus", true + +  tearDown -> +    document.getElementById("test-div").innerHTML = "" + +  should "blur an already focused input", -> +    document.getElementById("input").focus() +    assert.isTrue document.activeElement +    assert.isTrue DomUtils.isEditable document.activeElement +    initializeModeState() +    assert.isTrue document.activeElement +    assert.isFalse DomUtils.isEditable document.activeElement + +  should "blur a newly focused input", -> +    initializeModeState() +    document.getElementById("input").focus() +    assert.isTrue document.activeElement +    assert.isFalse DomUtils.isEditable document.activeElement + +  should "exit on a key event", -> +    initializeModeState() +    sendKeyboardEvent "a" +    document.getElementById("input").focus() +    assert.isTrue document.activeElement +    assert.isTrue DomUtils.isEditable document.activeElement + +  should "exit on a mousedown event", -> +    initializeModeState() +    handlerStack.bubbleEvent "mousedown", target: document.body +    document.getElementById("input").focus() +    assert.isTrue document.activeElement +    assert.isTrue DomUtils.isEditable document.activeElement | 
