diff options
| author | Tino Calancha | 2016-12-30 15:31:01 +0900 |
|---|---|---|
| committer | Tino Calancha | 2016-12-30 15:31:01 +0900 |
| commit | c336420d9f2ffe5270d7deec360d84e1f45b4a55 (patch) | |
| tree | edbab7c255781c4963da04896c90bc706c90c104 /test | |
| parent | 9672f2c916b5909cc5836f67edc4d66842cce7cd (diff) | |
| download | emacs-c336420d9f2ffe5270d7deec360d84e1f45b4a55.tar.gz emacs-c336420d9f2ffe5270d7deec360d84e1f45b4a55.zip | |
ffap-string-at-point: Limit max length of active region
Prevents that 'ffap-guesser' waste time checking large strings
which are likely not valid candidates (Bug#25243).
* lisp/ffap.el (ffap-max-region-length): New variable.
(ffap-string-at-point): Use it.
* test/lisp/ffap-tests.el: New test suite.
(ffap-tests-25243): Add test for this bug.
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/ffap-tests.el | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/lisp/ffap-tests.el b/test/lisp/ffap-tests.el new file mode 100644 index 00000000000..61fa891fe72 --- /dev/null +++ b/test/lisp/ffap-tests.el | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | ;;; ffap-tests.el --- Test suite for ffap.el -*- lexical-binding: t -*- | ||
| 2 | |||
| 3 | ;; Copyright (C) 2016 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: Tino Calancha <tino.calancha@gmail.com> | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 21 | |||
| 22 | ;;; Commentary: | ||
| 23 | |||
| 24 | ;;; Code: | ||
| 25 | |||
| 26 | (require 'ert) | ||
| 27 | (require 'ffap) | ||
| 28 | |||
| 29 | (ert-deftest ffap-tests-25243 () | ||
| 30 | "Test for http://debbugs.gnu.org/25243 ." | ||
| 31 | (let ((file (make-temp-file "test-Bug#25243"))) | ||
| 32 | (unwind-protect | ||
| 33 | (with-temp-file file | ||
| 34 | (let ((str "diff --git b/lisp/ffap.el a/lisp/ffap.el | ||
| 35 | index 3d7cebadcf..ad4b70d737 100644 | ||
| 36 | --- b/lisp/ffap.el | ||
| 37 | +++ a/lisp/ffap.el | ||
| 38 | @@ -203,6 +203,9 @@ ffap-foo-at-bar-prefix | ||
| 39 | ")) | ||
| 40 | (transient-mark-mode 1) | ||
| 41 | (when (natnump ffap-max-region-length) | ||
| 42 | (insert | ||
| 43 | (concat | ||
| 44 | str | ||
| 45 | (make-string ffap-max-region-length #xa) | ||
| 46 | (format "%s ENDS HERE" file))) | ||
| 47 | (mark-whole-buffer) | ||
| 48 | (should (equal "" (ffap-string-at-point))) | ||
| 49 | (should (equal '(1 1) ffap-string-at-point-region))))) | ||
| 50 | (and (file-exists-p file) (delete-file file))))) | ||
| 51 | |||
| 52 | (provide 'ffap-tests) | ||
| 53 | |||
| 54 | ;;; ffap-tests.el ends here | ||