1 ;;; editfns-tests.el -- tests for editfns.c
3 ;; Copyright (C) 2016 Free Software Foundation, Inc.
5 ;; This file is part of GNU Emacs.
7 ;; This program is free software; you can redistribute it and/or modify
8 ;; it under the terms of the GNU General Public License as published by
9 ;; the Free Software Foundation, either version 3 of the License, or
10 ;; (at your option) any later version.
12 ;; This program is distributed in the hope that it will be useful,
13 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;; GNU General Public License for more details.
17 ;; You should have received a copy of the GNU General Public License
18 ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
24 (ert-deftest format-properties ()
26 (should (ert-equal-including-properties
27 (format (propertize "%d" 'face '(:background "red")) 1)
28 #("1" 0 1 (face (:background "red")))))
29 (should (ert-equal-including-properties
30 (format (propertize "%2d" 'face '(:background "red")) 1)
31 #(" 1" 0 2 (face (:background "red")))))
32 (should (ert-equal-including-properties
33 (format (propertize "%02d" 'face '(:background "red")) 1)
34 #("01" 0 2 (face (:background "red")))))
35 (should (ert-equal-including-properties
36 (format (concat (propertize "%2d" 'x 'X)
37 (propertize "a" 'a 'A)
38 (propertize "b" 'b 'B))
40 #(" 1ab" 0 2 (x X) 2 3 (a A) 3 4 (b B))))
43 (should (ert-equal-including-properties
45 (concat "1234567890aaaa"
46 (propertize "12345678901234567890" 'xxx 25)))
48 (should (ert-equal-including-properties
51 (propertize "12345678901234567890" 'xxx 25)))
52 #("1234567891" 9 10 (xxx 25))))
55 (should (ert-equal-including-properties
56 (format "%4s" (propertize "hi" 'face 'bold))
57 #(" hi" 0 4 (face bold))))
60 (should (ert-equal-including-properties
61 (format "%s" (concat (propertize "01234" 'face 'bold) "56789"))
62 #("0123456789" 0 5 (face bold))))
63 (should (ert-equal-including-properties
64 (format "%s" (concat (propertize "01" 'face 'bold)
65 (propertize "23" 'face 'underline)
67 #("012345" 0 2 (face bold) 2 4 (face underline)))))