Commit | Line | Data |
---|---|---|
0ac26976 SM |
1 | ;;; subword-tests.el --- Testing the subword rules |
2 | ||
ba318903 | 3 | ;; Copyright (C) 2011-2014 Free Software Foundation, Inc. |
0ac26976 SM |
4 | |
5 | ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> | |
6 | ;; Keywords: | |
7 | ||
8 | ;; This program is free software; you can redistribute it and/or modify | |
9 | ;; it under the terms of the GNU General Public License as published by | |
10 | ;; the Free Software Foundation, either version 3 of the License, or | |
11 | ;; (at your option) any later version. | |
12 | ||
13 | ;; This program is distributed in the hope that it will be useful, | |
14 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | ;; GNU General Public License for more details. | |
17 | ||
18 | ;; You should have received a copy of the GNU General Public License | |
19 | ;; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
20 | ||
21 | ;;; Commentary: | |
22 | ||
23 | ;; | |
24 | ||
25 | ;;; Code: | |
26 | ||
27 | (require 'ert) | |
66878244 | 28 | (require 'subword) |
0ac26976 SM |
29 | |
30 | (defconst subword-tests-strings | |
31 | '("ABC^" ;;Bug#13758 | |
32 | "ABC^ ABC^Foo^ ABC^-Foo^ toto^ ABC^")) | |
33 | ||
34 | (ert-deftest subword-tests () | |
35 | "Test the `subword-mode' rules." | |
36 | (with-temp-buffer | |
37 | (dolist (str subword-tests-strings) | |
38 | (erase-buffer) | |
39 | (insert str) | |
40 | (goto-char (point-min)) | |
41 | (while (search-forward "^" nil t) | |
42 | (replace-match "")) | |
43 | (goto-char (point-min)) | |
44 | (while (not (eobp)) | |
45 | (subword-forward 1) | |
46 | (insert "^")) | |
47 | (should (equal (buffer-string) str))))) | |
48 | ||
6ddc4422 DC |
49 | (ert-deftest subword-tests2 () |
50 | "Test that motion in subword-mode stops at the right places." | |
51 | ||
52 | (let* ((line "fooBarBAZ quXD g_TESTThingAbc word BLAH test") | |
53 | (fwrd "* * * * * * * * * * * * *") | |
54 | (bkwd "* * * * * * * * * * * * *")) | |
55 | ||
56 | (with-temp-buffer | |
57 | (subword-mode 1) | |
58 | (insert line) | |
59 | ||
60 | ;; Test forward motion. | |
61 | ||
62 | (goto-char (point-min)) | |
63 | (let ((stops (make-string (length fwrd) ?\ ))) | |
64 | (while (progn | |
65 | (aset stops (1- (point)) ?\*) | |
66 | (not (eobp))) | |
67 | (forward-word)) | |
68 | (should (equal stops fwrd))) | |
69 | ||
70 | ;; Test backward motion. | |
71 | ||
72 | (goto-char (point-max)) | |
73 | (let ((stops (make-string (length bkwd) ?\ ))) | |
74 | (while (progn | |
75 | (aset stops (1- (point)) ?\*) | |
76 | (not (bobp))) | |
77 | (backward-word)) | |
78 | (should (equal stops bkwd)))))) | |
79 | ||
0ac26976 SM |
80 | (provide 'subword-tests) |
81 | ;;; subword-tests.el ends here |