diff options
| -rw-r--r-- | content_scripts/link_hints.coffee | 20 | ||||
| -rw-r--r-- | tests/dom_tests/dom_tests.coffee | 32 |
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() |
