From f559b374a30f3615261f7a902fc3428cac6289f4 Mon Sep 17 00:00:00 2001 From: Dmitry Gutov Date: Wed, 4 May 2016 01:38:02 +0300 Subject: [PATCH] Add tests for xref-collect-matches * test/automated/xref-tests.el: New file. Add tests for xref-collect-matches. --- test/automated/data/xref/file1.txt | 2 ++ test/automated/data/xref/file2.txt | 2 ++ test/automated/xref-tests.el | 37 ++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 test/automated/data/xref/file1.txt create mode 100644 test/automated/data/xref/file2.txt create mode 100644 test/automated/xref-tests.el diff --git a/test/automated/data/xref/file1.txt b/test/automated/data/xref/file1.txt new file mode 100644 index 00000000000..5d7cc544443 --- /dev/null +++ b/test/automated/data/xref/file1.txt @@ -0,0 +1,2 @@ +foo foo +bar diff --git a/test/automated/data/xref/file2.txt b/test/automated/data/xref/file2.txt new file mode 100644 index 00000000000..9f075f26004 --- /dev/null +++ b/test/automated/data/xref/file2.txt @@ -0,0 +1,2 @@ + +bar diff --git a/test/automated/xref-tests.el b/test/automated/xref-tests.el new file mode 100644 index 00000000000..1b500c3c418 --- /dev/null +++ b/test/automated/xref-tests.el @@ -0,0 +1,37 @@ +(require 'xref) +(require 'cl-lib) + +(defvar xref-tests-data-dir + (expand-file-name "data/xref/" + (file-name-directory (or load-file-name (buffer-file-name))))) + +(ert-deftest xref-collect-matches-finds-none-for-some-regexp () + (should (null (xref-collect-matches "zzz" "*" xref-tests-data-dir nil)))) + +(ert-deftest xref-collect-matches-finds-some-for-bar () + (let* ((matches (xref-collect-matches "bar" "*" xref-tests-data-dir nil)) + (locs (cl-sort (mapcar #'xref-item-location matches) + #'string< + :key #'xref-location-group))) + (should (= 2 (length matches))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 0 locs)))) + (should (string-match-p "file2\\.txt\\'" (xref-location-group (nth 1 locs)))))) + +(ert-deftest xref-collect-matches-finds-two-matches-on-the-same-line () + (let* ((matches (xref-collect-matches "foo" "*" xref-tests-data-dir nil)) + (locs (mapcar #'xref-item-location matches))) + (should (= 2 (length matches))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 0 locs)))) + (should (string-match-p "file1\\.txt\\'" (xref-location-group (nth 1 locs)))) + (should (equal 1 (xref-location-line (nth 0 locs)))) + (should (equal 1 (xref-location-line (nth 1 locs)))) + (should (equal 0 (xref-file-location-column (nth 0 locs)))) + (should (equal 4 (xref-file-location-column (nth 1 locs)))))) + +;; (ert-deftest xref-collect-matches-finds-an-empty-line-regexp-match () +;; (let* ((matches (xref-collect-matches "^$" "*" xref-tests-data-dir nil)) +;; (locs (mapcar #'xref-item-location matches))) +;; (should (= 1 (length matches))) +;; (should (string-match-p "file2\\.txt\\'" (xref-location-group (nth 0 locs)))) +;; (should (equal 1 (xref-location-line (nth 0 locs)))) +;; (should (equal 0 (xref-file-location-column (nth 0 locs)))))) -- 2.39.2