aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/link_hints.coffee20
-rw-r--r--tests/dom_tests/dom_tests.coffee32
2 files changed, 27 insertions, 25 deletions
diff --git a/content_scripts/link_hints.coffee b/content_scripts/link_hints.coffee
index 31cdcfdf..81a5912e 100644
--- a/content_scripts/link_hints.coffee
+++ b/content_scripts/link_hints.coffee
@@ -19,6 +19,16 @@ OPEN_INCOGNITO = name: "incognito"
DOWNLOAD_LINK_URL = name: "download"
LinkHints =
+ activateMode: (mode = OPEN_IN_CURRENT_TAB) -> new LinkHintsMode mode
+
+ activateModeToOpenInNewTab: -> @activateMode OPEN_IN_NEW_BG_TAB
+ activateModeToOpenInNewForegroundTab: -> @activateMode OPEN_IN_NEW_FG_TAB
+ activateModeToCopyLinkUrl: -> @activateMode COPY_LINK_URL
+ activateModeWithQueue: -> @activateMode OPEN_WITH_QUEUE
+ activateModeToOpenIncognito: -> @activateMode OPEN_INCOGNITO
+ activateModeToDownloadLink: -> @activateMode DOWNLOAD_LINK_URL
+
+class LinkHintsMode
hintMarkerContainingDiv: null
# One of the enums listed at the top of this file.
mode: undefined
@@ -35,15 +45,7 @@ LinkHints =
# A count of the number of Tab presses since the last non-Tab keyboard event.
tabCount: 0
- # We need this as a top-level function because our command system doesn't yet support arguments.
- activateModeToOpenInNewTab: -> @activateMode(OPEN_IN_NEW_BG_TAB)
- activateModeToOpenInNewForegroundTab: -> @activateMode(OPEN_IN_NEW_FG_TAB)
- activateModeToCopyLinkUrl: -> @activateMode(COPY_LINK_URL)
- activateModeWithQueue: -> @activateMode(OPEN_WITH_QUEUE)
- activateModeToOpenIncognito: -> @activateMode(OPEN_INCOGNITO)
- activateModeToDownloadLink: -> @activateMode(DOWNLOAD_LINK_URL)
-
- activateMode: (mode = OPEN_IN_CURRENT_TAB) ->
+ constructor: (mode = OPEN_IN_CURRENT_TAB) ->
# we need documentElement to be ready in order to append links
return unless document.documentElement
diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee
index 8f293075..dd2f5a5d 100644
--- a/tests/dom_tests/dom_tests.coffee
+++ b/tests/dom_tests/dom_tests.coffee
@@ -67,27 +67,27 @@ createGeneralHintTests = (isFilteredMode) ->
document.getElementById("test-div").innerHTML = ""
should "create hints when activated, discard them when deactivated", ->
- LinkHints.activateMode()
- assert.isFalse not LinkHints.hintMarkerContainingDiv?
- LinkHints.deactivateMode()
- assert.isTrue not LinkHints.hintMarkerContainingDiv?
+ linkHints = LinkHints.activateMode()
+ assert.isFalse not linkHints.hintMarkerContainingDiv?
+ linkHints.deactivateMode()
+ assert.isTrue not linkHints.hintMarkerContainingDiv?
should "position items correctly", ->
assertStartPosition = (element1, element2) ->
assert.equal element1.getClientRects()[0].left, element2.getClientRects()[0].left
assert.equal element1.getClientRects()[0].top, element2.getClientRects()[0].top
stub document.body, "style", "static"
- LinkHints.activateMode()
+ linkHints = LinkHints.activateMode()
hintMarkers = getHintMarkers()
assertStartPosition document.getElementsByTagName("a")[0], hintMarkers[0]
assertStartPosition document.getElementsByTagName("a")[1], hintMarkers[1]
- LinkHints.deactivateMode()
+ linkHints.deactivateMode()
stub document.body.style, "position", "relative"
- LinkHints.activateMode()
+ linkHints = LinkHints.activateMode()
hintMarkers = getHintMarkers()
assertStartPosition document.getElementsByTagName("a")[0], hintMarkers[0]
assertStartPosition document.getElementsByTagName("a")[1], hintMarkers[1]
- LinkHints.deactivateMode()
+ linkHints.deactivateMode()
createGeneralHintTests false
createGeneralHintTests true
@@ -142,10 +142,10 @@ context "Alphabetical link hints",
# Three hints will trigger double hint chars.
createLinks 3
- LinkHints.activateMode()
+ @linkHints = LinkHints.activateMode()
tearDown ->
- LinkHints.deactivateMode()
+ @linkHints.deactivateMode()
document.getElementById("test-div").innerHTML = ""
should "label the hints correctly", ->
@@ -177,11 +177,11 @@ context "Filtered link hints",
initializeModeState()
testContent = "<a>test</a>" + "<a>tress</a>" + "<a>trait</a>" + "<a>track<img alt='alt text'/></a>"
document.getElementById("test-div").innerHTML = testContent
- LinkHints.activateMode()
+ @linkHints = LinkHints.activateMode()
tearDown ->
document.getElementById("test-div").innerHTML = ""
- LinkHints.deactivateMode()
+ @linkHints.deactivateMode()
should "label the hints", ->
hintMarkers = getHintMarkers()
@@ -205,11 +205,11 @@ context "Filtered link hints",
testContent = "<a><img alt='alt text'/></a><a><img alt='alt text' title='some title'/></a>
<a><img title='some title'/></a>" + "<a><img src='' width='320px' height='100px'/></a>"
document.getElementById("test-div").innerHTML = testContent
- LinkHints.activateMode()
+ @linkHints = LinkHints.activateMode()
tearDown ->
document.getElementById("test-div").innerHTML = ""
- LinkHints.deactivateMode()
+ @linkHints.deactivateMode()
should "label the images", ->
hintMarkers = getHintMarkers()
@@ -227,11 +227,11 @@ context "Filtered link hints",
<input type='text' id='test-input' value='some value'/>
<label for='test-input-2'/>a label: </label><input type='text' id='test-input-2' value='some value'/>"
document.getElementById("test-div").innerHTML = testContent
- LinkHints.activateMode()
+ @linkHints = LinkHints.activateMode()
tearDown ->
document.getElementById("test-div").innerHTML = ""
- LinkHints.deactivateMode()
+ @linkHints.deactivateMode()
should "label the input elements", ->
hintMarkers = getHintMarkers()