aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorStephen Blott2016-03-30 12:49:40 +0100
committerStephen Blott2016-03-30 12:49:40 +0100
commita2fba970e089254adae2631a5b154e6bd92ec1e2 (patch)
treeecdbf35236b300478789c01f179f13123ad918cd /tests
parent8fc46ff8b00ae82b574e3314ebc8ae6046c3215f (diff)
downloadvimium-a2fba970e089254adae2631a5b154e6bd92ec1e2.tar.bz2
Add tests for GrabBackFocus.
Diffstat (limited to 'tests')
-rw-r--r--tests/dom_tests/dom_tests.coffee36
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