aboutsummaryrefslogtreecommitdiffstats
path: root/testing
diff options
context:
space:
mode:
authorIhor Radchenko2022-11-09 10:12:44 +0800
committerIhor Radchenko2022-11-09 10:12:44 +0800
commit5a6d00a3a343d64acbc34fb0c35da754f52d172c (patch)
treeaf1c3dafafe943d7a03c9350980aafc8d52a679d /testing
parent8a827437a5f3e5c4f45d00c0926c317f1209415b (diff)
downloademacs-5a6d00a3a343d64acbc34fb0c35da754f52d172c.tar.gz
emacs-5a6d00a3a343d64acbc34fb0c35da754f52d172c.zip
test-org-num.el: Do not rely on fixed overlay order in `overlays-in'
* testing/lisp/test-org-num.el (test-org-num/max-level): (test-org-num/skip-numbering): (test-org-num/update): * testing/lisp/test-org-table.el (test-org-table/toggle-column-width): Do not expect specific overlay order in the return value of `overlays-in'. The order is not guaranteed by the docstring and has been changed in Emacs 29. Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59067
Diffstat (limited to 'testing')
-rw-r--r--testing/lisp/test-org-num.el192
-rw-r--r--testing/lisp/test-org-table.el34
2 files changed, 146 insertions, 80 deletions
diff --git a/testing/lisp/test-org-num.el b/testing/lisp/test-org-num.el
index 7a247b04a5a..1de7702d9eb 100644
--- a/testing/lisp/test-org-num.el
+++ b/testing/lisp/test-org-num.el
@@ -68,113 +68,143 @@
68(ert-deftest test-org-num/max-level () 68(ert-deftest test-org-num/max-level ()
69 "Test `org-num-max-level' option." 69 "Test `org-num-max-level' option."
70 (should 70 (should
71 (equal '("1.1 " "1 ") 71 (equal (sort '("1.1 " "1 ") #'string-lessp)
72 (org-test-with-temp-text "* H1\n** H2\n*** H3" 72 (org-test-with-temp-text "* H1\n** H2\n*** H3"
73 (let ((org-num-max-level 2)) (org-num-mode 1)) 73 (let ((org-num-max-level 2)) (org-num-mode 1))
74 (mapcar (lambda (o) (overlay-get o 'after-string)) 74 (sort
75 (overlays-in (point-min) (point-max))))))) 75 (mapcar (lambda (o) (overlay-get o 'after-string))
76 (overlays-in (point-min) (point-max)))
77 #'string-lessp)))))
76 78
77(ert-deftest test-org-num/skip-numbering () 79(ert-deftest test-org-num/skip-numbering ()
78 "Test various skip numbering parameters." 80 "Test various skip numbering parameters."
79 ;; Skip commented headlines. 81 ;; Skip commented headlines.
80 (should 82 (should
81 (equal '(nil "1 ") 83 (equal (sort '(nil "1 ") #'string-lessp)
82 (org-test-with-temp-text "* H1\n* COMMENT H2" 84 (org-test-with-temp-text "* H1\n* COMMENT H2"
83 (let ((org-num-skip-commented t)) (org-num-mode 1)) 85 (let ((org-num-skip-commented t)) (org-num-mode 1))
84 (mapcar (lambda (o) (overlay-get o 'after-string)) 86 (sort
85 (overlays-in (point-min) (point-max)))))) 87 (mapcar (lambda (o) (overlay-get o 'after-string))
88 (overlays-in (point-min) (point-max)))
89 #'string-lessp))))
86 (should 90 (should
87 (equal '("2 " "1 ") 91 (equal (sort '("2 " "1 ") #'string-lessp)
88 (org-test-with-temp-text "* H1\n* COMMENT H2" 92 (org-test-with-temp-text "* H1\n* COMMENT H2"
89 (let ((org-num-skip-commented nil)) (org-num-mode 1)) 93 (let ((org-num-skip-commented nil)) (org-num-mode 1))
90 (mapcar (lambda (o) (overlay-get o 'after-string)) 94 (sort
91 (overlays-in (point-min) (point-max)))))) 95 (mapcar (lambda (o) (overlay-get o 'after-string))
96 (overlays-in (point-min) (point-max)))
97 #'string-lessp))))
92 ;; Skip commented sub-trees. 98 ;; Skip commented sub-trees.
93 (should 99 (should
94 (equal '(nil nil) 100 (equal (sort '(nil nil) #'string-lessp)
95 (org-test-with-temp-text "* COMMENT H1\n** H2" 101 (org-test-with-temp-text "* COMMENT H1\n** H2"
96 (let ((org-num-skip-commented t)) (org-num-mode 1)) 102 (let ((org-num-skip-commented t)) (org-num-mode 1))
97 (mapcar (lambda (o) (overlay-get o 'after-string)) 103 (sort
98 (overlays-in (point-min) (point-max)))))) 104 (mapcar (lambda (o) (overlay-get o 'after-string))
105 (overlays-in (point-min) (point-max)))
106 #'string-lessp))))
99 ;; Skip footnotes sections. 107 ;; Skip footnotes sections.
100 (should 108 (should
101 (equal '(nil "1 ") 109 (equal (sort '(nil "1 ") #'string-lessp)
102 (org-test-with-temp-text "* H1\n* FN" 110 (org-test-with-temp-text "* H1\n* FN"
103 (let ((org-num-skip-footnotes t) 111 (let ((org-num-skip-footnotes t)
104 (org-footnote-section "FN")) 112 (org-footnote-section "FN"))
105 (org-num-mode 1)) 113 (org-num-mode 1))
106 (mapcar (lambda (o) (overlay-get o 'after-string)) 114 (sort
107 (overlays-in (point-min) (point-max)))))) 115 (mapcar (lambda (o) (overlay-get o 'after-string))
116 (overlays-in (point-min) (point-max)))
117 #'string-lessp))))
108 (should 118 (should
109 (equal '("2 " "1 ") 119 (equal (sort '("2 " "1 ") #'string-lessp)
110 (org-test-with-temp-text "* H1\n* FN" 120 (org-test-with-temp-text "* H1\n* FN"
111 (let ((org-num-skip-footnotes nil) 121 (let ((org-num-skip-footnotes nil)
112 (org-footnote-section "FN")) 122 (org-footnote-section "FN"))
113 (org-num-mode 1)) 123 (org-num-mode 1))
114 (mapcar (lambda (o) (overlay-get o 'after-string)) 124 (sort
115 (overlays-in (point-min) (point-max)))))) 125 (mapcar (lambda (o) (overlay-get o 'after-string))
126 (overlays-in (point-min) (point-max)))
127 #'string-lessp))))
116 ;; Skip tags, recursively. 128 ;; Skip tags, recursively.
117 (should 129 (should
118 (equal '(nil "1 ") 130 (equal (sort '(nil "1 ") #'string-lessp)
119 (org-test-with-temp-text "* H1\n* H2 :foo:" 131 (org-test-with-temp-text "* H1\n* H2 :foo:"
120 (let ((org-num-skip-tags '("foo"))) (org-num-mode 1)) 132 (let ((org-num-skip-tags '("foo"))) (org-num-mode 1))
121 (mapcar (lambda (o) (overlay-get o 'after-string)) 133 (sort
122 (overlays-in (point-min) (point-max)))))) 134 (mapcar (lambda (o) (overlay-get o 'after-string))
135 (overlays-in (point-min) (point-max)))
136 #'string-lessp))))
123 (should 137 (should
124 (equal '(nil nil) 138 (equal (sort '(nil nil) #'string-lessp)
125 (org-test-with-temp-text "* H1 :foo:\n** H2" 139 (org-test-with-temp-text "* H1 :foo:\n** H2"
126 (let ((org-num-skip-tags '("foo"))) (org-num-mode 1)) 140 (let ((org-num-skip-tags '("foo"))) (org-num-mode 1))
127 (mapcar (lambda (o) (overlay-get o 'after-string)) 141 (sort
128 (overlays-in (point-min) (point-max)))))) 142 (mapcar (lambda (o) (overlay-get o 'after-string))
143 (overlays-in (point-min) (point-max)))
144 #'string-lessp))))
129 ;; Skip unnumbered sections. 145 ;; Skip unnumbered sections.
130 (should 146 (should
131 (equal '(nil "1 ") 147 (equal (sort '(nil "1 ") #'string-lessp)
132 (org-test-with-temp-text 148 (org-test-with-temp-text
133 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: t\n:END:" 149 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: t\n:END:"
134 (let ((org-num-skip-unnumbered t)) (org-num-mode 1)) 150 (let ((org-num-skip-unnumbered t)) (org-num-mode 1))
135 (mapcar (lambda (o) (overlay-get o 'after-string)) 151 (sort
136 (overlays-in (point-min) (point-max)))))) 152 (mapcar (lambda (o) (overlay-get o 'after-string))
153 (overlays-in (point-min) (point-max)))
154 #'string-lessp))))
137 (should 155 (should
138 (equal '("2 " "1 ") 156 (equal (sort '("2 " "1 ") #'string-lessp)
139 (org-test-with-temp-text 157 (org-test-with-temp-text
140 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: t\n:END:" 158 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: t\n:END:"
141 (let ((org-num-skip-unnumbered nil)) (org-num-mode 1)) 159 (let ((org-num-skip-unnumbered nil)) (org-num-mode 1))
142 (mapcar (lambda (o) (overlay-get o 'after-string)) 160 (sort
143 (overlays-in (point-min) (point-max)))))) 161 (mapcar (lambda (o) (overlay-get o 'after-string))
162 (overlays-in (point-min) (point-max)))
163 #'string-lessp))))
144 (should 164 (should
145 (equal '("2 " "1 ") 165 (equal (sort '("2 " "1 ") #'string-lessp)
146 (org-test-with-temp-text 166 (org-test-with-temp-text
147 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: nil\n:END:" 167 "* H1\n* H2\n:PROPERTIES:\n:UNNUMBERED: nil\n:END:"
148 (let ((org-num-skip-unnumbered t)) (org-num-mode 1)) 168 (let ((org-num-skip-unnumbered t)) (org-num-mode 1))
149 (mapcar (lambda (o) (overlay-get o 'after-string)) 169 (sort
150 (overlays-in (point-min) (point-max)))))) 170 (mapcar (lambda (o) (overlay-get o 'after-string))
171 (overlays-in (point-min) (point-max)))
172 #'string-lessp))))
151 ;; Skip unnumbered sub-trees. 173 ;; Skip unnumbered sub-trees.
152 (should 174 (should
153 (equal '(nil nil) 175 (equal (sort '(nil nil) #'string-lessp)
154 (org-test-with-temp-text 176 (org-test-with-temp-text
155 "* H1\n:PROPERTIES:\n:UNNUMBERED: t\n:END:\n** H2" 177 "* H1\n:PROPERTIES:\n:UNNUMBERED: t\n:END:\n** H2"
156 (let ((org-num-skip-unnumbered t)) (org-num-mode 1)) 178 (let ((org-num-skip-unnumbered t)) (org-num-mode 1))
157 (mapcar (lambda (o) (overlay-get o 'after-string)) 179 (sort
158 (overlays-in (point-min) (point-max)))))) 180 (mapcar (lambda (o) (overlay-get o 'after-string))
181 (overlays-in (point-min) (point-max)))
182 #'string-lessp))))
159 ;; Do not choke on empty headlines. 183 ;; Do not choke on empty headlines.
160 (should 184 (should
161 (equal '("1 ") 185 (equal (sort '("1 ") #'string-lessp)
162 (org-test-with-temp-text "* " 186 (org-test-with-temp-text "* "
163 (let ((org-num-skip-commented t)) (org-num-mode 1)) 187 (let ((org-num-skip-commented t)) (org-num-mode 1))
164 (mapcar (lambda (o) (overlay-get o 'after-string)) 188 (sort
165 (overlays-in (point-min) (point-max)))))) 189 (mapcar (lambda (o) (overlay-get o 'after-string))
190 (overlays-in (point-min) (point-max)))
191 #'string-lessp))))
166 (should 192 (should
167 (equal '("1 ") 193 (equal (sort '("1 ") #'string-lessp)
168 (org-test-with-temp-text "* " 194 (org-test-with-temp-text "* "
169 (let ((org-num-skip-unnumbered t)) (org-num-mode 1)) 195 (let ((org-num-skip-unnumbered t)) (org-num-mode 1))
170 (mapcar (lambda (o) (overlay-get o 'after-string)) 196 (sort
171 (overlays-in (point-min) (point-max)))))) 197 (mapcar (lambda (o) (overlay-get o 'after-string))
198 (overlays-in (point-min) (point-max)))
199 #'string-lessp))))
172 (should 200 (should
173 (equal '("1 ") 201 (equal (sort '("1 ") #'string-lessp)
174 (org-test-with-temp-text "* " 202 (org-test-with-temp-text "* "
175 (let ((org-num-skip-footnotes t)) (org-num-mode 1)) 203 (let ((org-num-skip-footnotes t)) (org-num-mode 1))
176 (mapcar (lambda (o) (overlay-get o 'after-string)) 204 (sort
177 (overlays-in (point-min) (point-max))))))) 205 (mapcar (lambda (o) (overlay-get o 'after-string))
206 (overlays-in (point-min) (point-max)))
207 #'string-lessp)))))
178 208
179(ert-deftest test-org-num/update () 209(ert-deftest test-org-num/update ()
180 "Test numbering update after a buffer modification." 210 "Test numbering update after a buffer modification."
@@ -202,79 +232,97 @@
202 'after-string)))) 232 'after-string))))
203 ;; Headlines created at END. 233 ;; Headlines created at END.
204 (should 234 (should
205 (equal '("1 ") 235 (equal (sort '("1 ") #'string-lessp)
206 (org-test-with-temp-text "X<point> H" 236 (org-test-with-temp-text "X<point> H"
207 (org-num-mode 1) 237 (org-num-mode 1)
208 (insert "\n*") 238 (insert "\n*")
209 (mapcar (lambda (o) (overlay-get o 'after-string)) 239 (sort
210 (overlays-in (point-min) (point-max)))))) 240 (mapcar (lambda (o) (overlay-get o 'after-string))
241 (overlays-in (point-min) (point-max)))
242 #'string-lessp))))
211 (should 243 (should
212 (equal '("1 ") 244 (equal (sort '("1 ") #'string-lessp)
213 (org-test-with-temp-text "X<point>* H" 245 (org-test-with-temp-text "X<point>* H"
214 (org-num-mode 1) 246 (org-num-mode 1)
215 (insert "\n") 247 (insert "\n")
216 (mapcar (lambda (o) (overlay-get o 'after-string)) 248 (sort
217 (overlays-in (point-min) (point-max)))))) 249 (mapcar (lambda (o) (overlay-get o 'after-string))
250 (overlays-in (point-min) (point-max)))
251 #'string-lessp))))
218 ;; Headlines created between BEG and END. 252 ;; Headlines created between BEG and END.
219 (should 253 (should
220 (equal '("1.1 " "1 ") 254 (equal (sort '("1.1 " "1 ") #'string-lessp)
221 (org-test-with-temp-text "" 255 (org-test-with-temp-text ""
222 (org-num-mode 1) 256 (org-num-mode 1)
223 (insert "\n* H\n** H2") 257 (insert "\n* H\n** H2")
224 (mapcar (lambda (o) (overlay-get o 'after-string)) 258 (sort
225 (overlays-in (point-min) (point-max)))))) 259 (mapcar (lambda (o) (overlay-get o 'after-string))
260 (overlays-in (point-min) (point-max)))
261 #'string-lessp))))
226 ;; Change level of a headline. 262 ;; Change level of a headline.
227 (should 263 (should
228 (equal '("0.1 ") 264 (equal (sort '("0.1 ") #'string-lessp)
229 (org-test-with-temp-text "* H" 265 (org-test-with-temp-text "* H"
230 (org-num-mode 1) 266 (org-num-mode 1)
231 (insert "*") 267 (insert "*")
232 (mapcar (lambda (o) (overlay-get o 'after-string)) 268 (sort
233 (overlays-in (point-min) (point-max)))))) 269 (mapcar (lambda (o) (overlay-get o 'after-string))
270 (overlays-in (point-min) (point-max)))
271 #'string-lessp))))
234 (should 272 (should
235 (equal '("1 ") 273 (equal (sort '("1 ") #'string-lessp)
236 (org-test-with-temp-text "*<point>* H" 274 (org-test-with-temp-text "*<point>* H"
237 (org-num-mode 1) 275 (org-num-mode 1)
238 (delete-char 1) 276 (delete-char 1)
239 (mapcar (lambda (o) (overlay-get o 'after-string)) 277 (sort
240 (overlays-in (point-min) (point-max)))))) 278 (mapcar (lambda (o) (overlay-get o 'after-string))
279 (overlays-in (point-min) (point-max)))
280 #'string-lessp))))
241 ;; Alter skip state. 281 ;; Alter skip state.
242 (should 282 (should
243 (equal '("1 ") 283 (equal (sort '("1 ") #'string-lessp)
244 (org-test-with-temp-text "* H :fo<point>o:" 284 (org-test-with-temp-text "* H :fo<point>o:"
245 (let ((org-num-skip-tags '("foo"))) 285 (let ((org-num-skip-tags '("foo")))
246 (org-num-mode 1) 286 (org-num-mode 1)
247 (delete-char 1)) 287 (delete-char 1))
248 (mapcar (lambda (o) (overlay-get o 'after-string)) 288 (sort
249 (overlays-in (point-min) (point-max)))))) 289 (mapcar (lambda (o) (overlay-get o 'after-string))
290 (overlays-in (point-min) (point-max)))
291 #'string-lessp))))
250 (should 292 (should
251 (equal '(nil) 293 (equal (sort '(nil) #'string-lessp)
252 (org-test-with-temp-text "* H :fo<point>:" 294 (org-test-with-temp-text "* H :fo<point>:"
253 (let ((org-num-skip-tags '("foo"))) 295 (let ((org-num-skip-tags '("foo")))
254 (org-num-mode 1) 296 (org-num-mode 1)
255 (insert "o")) 297 (insert "o"))
256 (mapcar (lambda (o) (overlay-get o 'after-string)) 298 (sort
257 (overlays-in (point-min) (point-max)))))) 299 (mapcar (lambda (o) (overlay-get o 'after-string))
300 (overlays-in (point-min) (point-max)))
301 #'string-lessp))))
258 ;; Invalidate an overlay and insert new headlines. 302 ;; Invalidate an overlay and insert new headlines.
259 (should 303 (should
260 (equal '("1.2 " "1.1 " "1 ") 304 (equal (sort '("1.2 " "1.1 " "1 ") #'string-lessp)
261 (org-test-with-temp-text 305 (org-test-with-temp-text
262 "* H\n:PROPERTIES:\n:UNNUMBE<point>RED: t\n:END:" 306 "* H\n:PROPERTIES:\n:UNNUMBE<point>RED: t\n:END:"
263 (let ((org-num-skip-unnumbered t)) 307 (let ((org-num-skip-unnumbered t))
264 (org-num-mode 1) 308 (org-num-mode 1)
265 (insert "\n** H2\n** H3\n") 309 (insert "\n** H2\n** H3\n")
266 (mapcar (lambda (o) (overlay-get o 'after-string)) 310 (sort
267 (overlays-in (point-min) (point-max))))))) 311 (mapcar (lambda (o) (overlay-get o 'after-string))
312 (overlays-in (point-min) (point-max)))
313 #'string-lessp)))))
268 ;; Invalidate two overlays: current headline and next one. 314 ;; Invalidate two overlays: current headline and next one.
269 (should 315 (should
270 (equal '("1 ") 316 (equal (sort '("1 ") #'string-lessp)
271 (org-test-with-temp-text 317 (org-test-with-temp-text
272 "* H\n:PROPERTIES:\n:UNNUMBE<point>RED: t\n:END:\n** H2" 318 "* H\n:PROPERTIES:\n:UNNUMBE<point>RED: t\n:END:\n** H2"
273 (let ((org-num-skip-unnumbered t)) 319 (let ((org-num-skip-unnumbered t))
274 (org-num-mode 1) 320 (org-num-mode 1)
275 (delete-region (point) (line-beginning-position 3)) 321 (delete-region (point) (line-beginning-position 3))
276 (mapcar (lambda (o) (overlay-get o 'after-string)) 322 (sort
277 (overlays-in (point-min) (point-max)))))))) 323 (mapcar (lambda (o) (overlay-get o 'after-string))
324 (overlays-in (point-min) (point-max)))
325 #'string-lessp))))))
278 326
279(provide 'test-org-num) 327(provide 'test-org-num)
280;;; org-test-num.el ends here 328;;; org-test-num.el ends here
diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el
index 57317987832..646ff9012f8 100644
--- a/testing/lisp/test-org-table.el
+++ b/testing/lisp/test-org-table.el
@@ -3049,23 +3049,36 @@ See also `test-org-table/copy-field'."
3049 (org-table-toggle-column-width) 3049 (org-table-toggle-column-width)
3050 (buffer-substring (line-beginning-position) 3050 (buffer-substring (line-beginning-position)
3051 (overlay-start 3051 (overlay-start
3052 (car (overlays-in (line-beginning-position) 3052 (nth
3053 (line-end-position)))))))) 3053 1
3054 (sort
3055 (overlays-in (line-beginning-position)
3056 (line-end-position))
3057 (lambda (ov1 ov2) (< (overlay-start ov1)
3058 (overlay-start ov2))))))))))
3054 (should 3059 (should
3055 (equal "| a " 3060 (equal "| a "
3056 (org-test-with-temp-text "| <3> |\n| <point>a |" 3061 (org-test-with-temp-text "| <3> |\n| <point>a |"
3057 (org-table-toggle-column-width) 3062 (org-table-toggle-column-width)
3058 (buffer-substring (line-beginning-position) 3063 (buffer-substring (line-beginning-position)
3059 (overlay-start 3064 (overlay-start
3060 (car (overlays-in (line-beginning-position) 3065 (car
3061 (line-end-position)))))))) 3066 (sort
3067 (overlays-in (line-beginning-position)
3068 (line-end-position))
3069 (lambda (ov1 ov2) (< (overlay-start ov1)
3070 (overlay-start ov2))))))))))
3062 (should 3071 (should
3063 (equal (concat "----" org-table-shrunk-column-indicator) 3072 (equal (concat "----" org-table-shrunk-column-indicator)
3064 (org-test-with-temp-text "| <3> |\n|--<point>----|" 3073 (org-test-with-temp-text "| <3> |\n|--<point>----|"
3065 (org-table-toggle-column-width) 3074 (org-table-toggle-column-width)
3066 (overlay-get 3075 (overlay-get
3067 (car (overlays-in (line-beginning-position) 3076 (car
3068 (line-end-position))) 3077 (sort
3078 (overlays-in (line-beginning-position)
3079 (line-end-position))
3080 (lambda (ov1 ov2) (< (overlay-start ov1)
3081 (overlay-start ov2)))))
3069 'display)))) 3082 'display))))
3070 ;; Width only takes into account visible characters. 3083 ;; Width only takes into account visible characters.
3071 (should 3084 (should
@@ -3074,8 +3087,13 @@ See also `test-org-table/copy-field'."
3074 (org-table-toggle-column-width) 3087 (org-table-toggle-column-width)
3075 (buffer-substring (line-beginning-position) 3088 (buffer-substring (line-beginning-position)
3076 (overlay-start 3089 (overlay-start
3077 (car (overlays-in (line-beginning-position) 3090 (nth
3078 (line-end-position)))))))) 3091 1
3092 (sort
3093 (overlays-in (line-beginning-position)
3094 (line-end-position))
3095 (lambda (ov1 ov2) (< (overlay-start ov1)
3096 (overlay-start ov2))))))))))
3079 ;; Before the first column or after the last one, ask for columns 3097 ;; Before the first column or after the last one, ask for columns
3080 ;; ranges. 3098 ;; ranges.
3081 (should 3099 (should