diff options
| author | Stephen Blott | 2015-09-11 06:53:11 +0100 |
|---|---|---|
| committer | Stephen Blott | 2015-09-11 07:11:49 +0100 |
| commit | 4976850e975b98e20505d9a92bde4982608a18e2 (patch) | |
| tree | 069e1200c48c4534d907f54846275b3b3767a26a /tests | |
| parent | 00c1f4616c55d1156342ebae840b4c6833f9a8a2 (diff) | |
| download | vimium-4976850e975b98e20505d9a92bde4982608a18e2.tar.bz2 | |
Make the sort used for filetered link hints stable.
JavaScript's sort function is not stable; this PR makes the sort used for filtered link hints stable.
There are two reasons for doing this:
- High-scoring hints are more likely to keep the same hint string as the user continues typing. (Currently, the hints assigned change based on the vaguaries of the non-stable sort.)
- For equal-scoring hints, we retain the visit-child-before-parent ordering (which is used to NOT match a parent's text if we have already matched that text in a child).
And, as a result of all of that, the UX is more predictable and hence better.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/dom_tests/dom_tests.coffee | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tests/dom_tests/dom_tests.coffee b/tests/dom_tests/dom_tests.coffee index a79735ae..9d703774 100644 --- a/tests/dom_tests/dom_tests.coffee +++ b/tests/dom_tests/dom_tests.coffee @@ -185,18 +185,21 @@ context "Filtered link hints", should "label the hints", -> hintMarkers = getHintMarkers() - for i in [0...4] - assert.equal (i + 1).toString(), hintMarkers[i].textContent.toLowerCase() + expectedMarkers = [1..4].map (m) -> m.toString() + actualMarkers = [0...4].map (i) -> hintMarkers[i].textContent.toLowerCase() + assert.equal expectedMarkers.length, actualMarkers.length + for marker in expectedMarkers + assert.isTrue marker in actualMarkers should "narrow the hints", -> hintMarkers = getHintMarkers() sendKeyboardEvent "T" sendKeyboardEvent "R" assert.equal "none", hintMarkers[0].style.display - assert.equal "1", hintMarkers[1].hintString + assert.equal "3", hintMarkers[1].hintString assert.equal "", hintMarkers[1].style.display sendKeyboardEvent "A" - assert.equal "2", hintMarkers[3].hintString + assert.equal "1", hintMarkers[3].hintString context "Image hints", |
