branch: elpa/multiple-cursors
commit bf9e8e95e0f76b6a0014909415bb789804f9a8ef
Author: lexa <[email protected]>
Commit: lexa <[email protected]>
Added testcase for mc-hide-unmatched-lines-mode
---
features/hide-unmatched-lines.feature | 73 ++++++++++++++++++++++
.../step-definitions/multiple-cursors-steps.el | 27 ++++++++
2 files changed, 100 insertions(+)
diff --git a/features/hide-unmatched-lines.feature
b/features/hide-unmatched-lines.feature
new file mode 100644
index 0000000..3a4040e
--- /dev/null
+++ b/features/hide-unmatched-lines.feature
@@ -0,0 +1,73 @@
+Feature: Hiding lines without cursor
+
+ Scenario: Hiding lines when three cursor active
+ Given I have cursors at "line" in :
+ """
+ 0
+ line
+ 2
+ 3
+ line
+ 5
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ line
+ 13
+ 14
+ 15
+ """
+ And I press "C-'"
+ Then I should have 3 cursors
+ Then I should see exactly:
+ """
+ 0
+ line
+ 2
+ 3
+ line
+ 5
+ 6
+
+ 10
+ 11
+ line
+ 13
+ 14
+
+ """
+
+
+ Scenario: Hiding lines when only two cursor active
+ When I insert:
+ """
+ 1
+ 2
+ 3
+ 4
+ 5
+ text
+ 6
+ 7
+ 8
+ 9
+ 10
+ """
+ And I go to the front of the word "text"
+ And I press "C->"
+ And I press "C-'"
+ Then I should have 2 cursors
+ Then I should see exactly:
+ """
+
+ 4
+ 5
+ text
+ 6
+ 7
+ 8
+
+ """
diff --git a/features/step-definitions/multiple-cursors-steps.el
b/features/step-definitions/multiple-cursors-steps.el
index a0052fd..a5590b7 100644
--- a/features/step-definitions/multiple-cursors-steps.el
+++ b/features/step-definitions/multiple-cursors-steps.el
@@ -79,6 +79,17 @@
(mc/mark-all-like-this)
(mc/keyboard-quit)))
+(Given "^I have cursors at \"\\(.+\\)\" in \\(?: \"\\(.+\\)\"\\|:\\)$"
+ (lambda (needle haystack)
+ (insert haystack)
+ (goto-char (point-min))
+ (search-forward needle)
+ (set-mark (point))
+ (goto-char (match-beginning 0))
+ (mc/mark-all-like-this)
+ (mc/keyboard-quit)))
+
+
(When "^I copy \"\\(.+\\)\" in another program$"
(lambda (text)
(lexical-let ((text text))
@@ -137,3 +148,19 @@
(split-string rest))
"-"))))
(call-interactively func))))
+
+(Then "^I should see exactly\\(?: \"\\(.+\\)\"\\|:\\)$"
+ "Asserts that the current buffer does not include some text with
+ respect of text hidden by overlays"
+ (lambda (expected)
+ (let ((p (point-min))
+ (visible-text "")
+ (message "Expected '%s' to be part of '%s', but was not found in
current buffer.")
+ )
+ (while (not (= p (point-max)))
+ (if (not (invisible-p p))
+ (setq visible-text (concat visible-text (buffer-substring p
(1+ p))))
+ )
+ (setq p (1+ p))
+ )
+ (cl-assert (s-equals? expected visible-text) nil message expected
visible-text))))