summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/emacs-yasnippet-fix-tests.patch
blob: 475352d8dbd4ad01f479055223f42c5612daf6aa (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
From 904a058fcf4e1f4985e03f8551eec282ca12ccb5 Mon Sep 17 00:00:00 2001
From: Philipp Stephani <phst@google.com>
Date: Mon, 6 Dec 2021 18:50:10 +0100
Subject: [PATCH] Unbreak unit tests under Emacs 28.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

- Emacs 28 has a new mode ‘lisp-data-mode’ for Lisp data.
- A test that was temporarily broken passes again.
- The default for ‘org-adapt-indentation’ has changed.
---
 yasnippet-tests.el | 41 ++++++++++++++++++++++++++---------------
 1 file changed, 26 insertions(+), 15 deletions(-)

diff --git a/yasnippet-tests.el b/yasnippet-tests.el
index b8a7980f..9fadf00c 100644
--- a/yasnippet-tests.el
+++ b/yasnippet-tests.el
@@ -1,6 +1,6 @@
 ;;; yasnippet-tests.el --- some yasnippet tests  -*- lexical-binding: t -*-
 
-;; Copyright (C) 2012-2015, 2017-2018  Free Software Foundation, Inc.
+;; Copyright (C) 2012-2015, 2017-2018, 2021  Free Software Foundation, Inc.
 
 ;; Author: João Távora <joaot@siscog.pt>
 ;; Keywords: emulations, convenience
@@ -556,16 +556,19 @@ XXXXX   ------------------------"))))
     (yas-mock-insert "foo bar")
     (ert-simulate-command '(yas-next-field))
     (goto-char (point-min))
-    (let ((expected (with-temp-buffer
-                      (insert (format (concat "* Test foo bar\n"
-                                              "  " org-property-format "\n"
-                                              "  " org-property-format "\n"
-                                              "  " org-property-format)
-                                      ":PROPERTIES:" ""
-                                      ":ID:" "foo bar-after"
-                                      ":END:" ""))
-                      (delete-trailing-whitespace)
-                      (buffer-string))))
+    ;; The default value of `org-adapt-indentation' changed between Org-mode 9.4
+    ;; and 9.5, so force a specific value.
+    (let* ((org-adapt-indentation nil)
+           (expected (with-temp-buffer
+                       (insert (format (concat "* Test foo bar\n"
+                                               org-property-format "\n"
+                                               org-property-format "\n"
+                                               org-property-format)
+                                       ":PROPERTIES:" ""
+                                       ":ID:" "foo bar-after"
+                                       ":END:" ""))
+                       (delete-trailing-whitespace)
+                       (buffer-string))))
       ;; Some org-mode versions leave trailing whitespace, some don't.
       (delete-trailing-whitespace)
       (should (equal expected (buffer-string))))))
@@ -1390,7 +1393,9 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
                           ,@(if (fboundp 'prog-mode)
                                 '(prog-mode))
                           emacs-lisp-mode
-                          lisp-interaction-mode))
+                          lisp-interaction-mode
+                          ;; `lisp-data-mode' doesn't exist prior to Emacs 28.
+                          ,@(and (fboundp 'lisp-data-mode) '(lisp-data-mode))))
               (observed (yas--modes-to-activate)))
          (should (equal major-mode (car observed)))
          (should (equal (sort expected #'string<) (sort observed #'string<))))))))
@@ -1418,7 +1423,11 @@ hello ${1:$(when (stringp yas-text) (funcall func yas-text))} foo${1:$$(concat \
                                      '(prog-mode))
                                emacs-lisp-mode
                                and-also-this-one
-                               lisp-interaction-mode))
+                               lisp-interaction-mode
+                               ;; `lisp-data-mode' doesn't exist prior to
+                               ;; Emacs 28.
+                               ,@(and (fboundp 'lisp-data-mode)
+                                      '(lisp-data-mode))))
               (observed (yas--modes-to-activate)))
          (should (equal expected-first
                         (cl-subseq observed 0 (length expected-first))))
@@ -1691,9 +1700,11 @@ TODO: be meaner"
   "Test expansion of snippets in org source blocks."
   ;; org 9+ no longer runs fontification for text-mode, so our hacks
   ;; don't work.  Note that old ert doesn't have skipping, so we have
-  ;; to expect failure instead.
+  ;; to expect failure instead.  Starting with Org-mode 9.5 this seems
+  ;; to work again.
   :expected-result (if (and (fboundp 'org-in-src-block-p)
-                            (version< (org-version) "9"))
+                            (or (version< (org-version) "9")
+                                (version<= "9.5" (org-version))))
                        :passed :failed)
   (let ((text-mode-hook #'yas-minor-mode))
     (do-yas-org-native-tab-in-source-block "text")))