From: Eli Zaretskii Date: Sat, 24 Sep 2016 10:23:20 +0000 (+0300) Subject: ; * Move test/lisp/legacy/textprop-tests.el to test/src/. X-Git-Tag: emacs-26.0.90~1554 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0123d567384fd69c137fcecc181dbb5a65e043b4;p=emacs.git ; * Move test/lisp/legacy/textprop-tests.el to test/src/. --- diff --git a/test/lisp/legacy/textprop-tests.el b/test/lisp/legacy/textprop-tests.el deleted file mode 100644 index 397ef28c035..00000000000 --- a/test/lisp/legacy/textprop-tests.el +++ /dev/null @@ -1,69 +0,0 @@ -;;; textprop-tests.el --- Test suite for text properties. - -;; Copyright (C) 2015-2016 Free Software Foundation, Inc. - -;; Author: Wolfgang Jenkner -;; Keywords: internal - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see . - -;;; Code: - -(require 'ert) - -(ert-deftest textprop-tests-format () - "Test `format' with text properties." - ;; See Bug#21351. - (should (equal-including-properties - (format #("mouse-1, RET: %s -- w: copy %s" - 12 20 (face minibuffer-prompt) - 21 30 (face minibuffer-prompt)) - "visit" "link") - #("mouse-1, RET: visit -- w: copy link" - 12 23 (face minibuffer-prompt) - 24 35 (face minibuffer-prompt))))) - -(ert-deftest textprop-tests-font-lock--remove-face-from-text-property () - "Test `font-lock--remove-face-from-text-property'." - (let* ((string "foobar") - (stack (list string)) - (faces '(bold (:foreground "red") underline))) - ;; Build each string in `stack' by adding a face to the previous - ;; string. - (let ((faces (reverse faces))) - (push (copy-sequence (car stack)) stack) - (put-text-property 0 3 'font-lock-face (pop faces) (car stack)) - (push (copy-sequence (car stack)) stack) - (put-text-property 3 6 'font-lock-face (pop faces) (car stack)) - (push (copy-sequence (car stack)) stack) - (font-lock-prepend-text-property 2 5 - 'font-lock-face (pop faces) (car stack))) - ;; Check that removing the corresponding face from each string - ;; yields the previous string in `stack'. - (while faces - ;; (message "%S" (car stack)) - (should (equal-including-properties - (progn - (font-lock--remove-face-from-text-property 0 6 - 'font-lock-face - (pop faces) - (car stack)) - (pop stack)) - (car stack)))) - ;; Sanity check. - ;; (message "%S" (car stack)) - (should (and (equal-including-properties (pop stack) string) - (null stack))))) diff --git a/test/src/textprop-tests.el b/test/src/textprop-tests.el new file mode 100644 index 00000000000..397ef28c035 --- /dev/null +++ b/test/src/textprop-tests.el @@ -0,0 +1,69 @@ +;;; textprop-tests.el --- Test suite for text properties. + +;; Copyright (C) 2015-2016 Free Software Foundation, Inc. + +;; Author: Wolfgang Jenkner +;; Keywords: internal + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Code: + +(require 'ert) + +(ert-deftest textprop-tests-format () + "Test `format' with text properties." + ;; See Bug#21351. + (should (equal-including-properties + (format #("mouse-1, RET: %s -- w: copy %s" + 12 20 (face minibuffer-prompt) + 21 30 (face minibuffer-prompt)) + "visit" "link") + #("mouse-1, RET: visit -- w: copy link" + 12 23 (face minibuffer-prompt) + 24 35 (face minibuffer-prompt))))) + +(ert-deftest textprop-tests-font-lock--remove-face-from-text-property () + "Test `font-lock--remove-face-from-text-property'." + (let* ((string "foobar") + (stack (list string)) + (faces '(bold (:foreground "red") underline))) + ;; Build each string in `stack' by adding a face to the previous + ;; string. + (let ((faces (reverse faces))) + (push (copy-sequence (car stack)) stack) + (put-text-property 0 3 'font-lock-face (pop faces) (car stack)) + (push (copy-sequence (car stack)) stack) + (put-text-property 3 6 'font-lock-face (pop faces) (car stack)) + (push (copy-sequence (car stack)) stack) + (font-lock-prepend-text-property 2 5 + 'font-lock-face (pop faces) (car stack))) + ;; Check that removing the corresponding face from each string + ;; yields the previous string in `stack'. + (while faces + ;; (message "%S" (car stack)) + (should (equal-including-properties + (progn + (font-lock--remove-face-from-text-property 0 6 + 'font-lock-face + (pop faces) + (car stack)) + (pop stack)) + (car stack)))) + ;; Sanity check. + ;; (message "%S" (car stack)) + (should (and (equal-including-properties (pop stack) string) + (null stack)))))