diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/eshell/em-glob-tests.el | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/test/lisp/eshell/em-glob-tests.el b/test/lisp/eshell/em-glob-tests.el index 16ae9be1bce..57343eced6b 100644 --- a/test/lisp/eshell/em-glob-tests.el +++ b/test/lisp/eshell/em-glob-tests.el | |||
| @@ -134,17 +134,19 @@ value of `eshell-glob-splice-results'." | |||
| 134 | 134 | ||
| 135 | (ert-deftest em-glob-test/convert/current-start-directory () | 135 | (ert-deftest em-glob-test/convert/current-start-directory () |
| 136 | "Test converting a glob starting in the current directory." | 136 | "Test converting a glob starting in the current directory." |
| 137 | (should (equal (eshell-glob-convert "*.el") | 137 | (should (equal (eshell-glob-convert (eshell-parse-glob-string "*.el")) |
| 138 | '("./" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) | 138 | '("./" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) |
| 139 | 139 | ||
| 140 | (ert-deftest em-glob-test/convert/relative-start-directory () | 140 | (ert-deftest em-glob-test/convert/relative-start-directory () |
| 141 | "Test converting a glob starting in a relative directory." | 141 | "Test converting a glob starting in a relative directory." |
| 142 | (should (equal (eshell-glob-convert "some/where/*.el") | 142 | (should (equal (eshell-glob-convert |
| 143 | (eshell-parse-glob-string "some/where/*.el")) | ||
| 143 | '("./some/where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) | 144 | '("./some/where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) |
| 144 | 145 | ||
| 145 | (ert-deftest em-glob-test/convert/absolute-start-directory () | 146 | (ert-deftest em-glob-test/convert/absolute-start-directory () |
| 146 | "Test converting a glob starting in an absolute directory." | 147 | "Test converting a glob starting in an absolute directory." |
| 147 | (should (equal (eshell-glob-convert "/some/where/*.el") | 148 | (should (equal (eshell-glob-convert |
| 149 | (eshell-parse-glob-string "/some/where/*.el")) | ||
| 148 | '("/some/where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) | 150 | '("/some/where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) |
| 149 | 151 | ||
| 150 | (ert-deftest em-glob-test/convert/remote-start-directory () | 152 | (ert-deftest em-glob-test/convert/remote-start-directory () |
| @@ -152,16 +154,30 @@ value of `eshell-glob-splice-results'." | |||
| 152 | (skip-unless (eshell-tests-remote-accessible-p)) | 154 | (skip-unless (eshell-tests-remote-accessible-p)) |
| 153 | (let* ((default-directory ert-remote-temporary-file-directory) | 155 | (let* ((default-directory ert-remote-temporary-file-directory) |
| 154 | (remote (file-remote-p default-directory))) | 156 | (remote (file-remote-p default-directory))) |
| 155 | (should (equal (eshell-glob-convert (format "%s/some/where/*.el" remote)) | 157 | (should (equal (eshell-glob-convert |
| 158 | (format (eshell-parse-glob-string "%s/some/where/*.el") | ||
| 159 | remote)) | ||
| 156 | `(,(format "%s/some/where/" remote) | 160 | `(,(format "%s/some/where/" remote) |
| 157 | (("\\`.*\\.el\\'" . "\\`\\.")) nil))))) | 161 | (("\\`.*\\.el\\'" . "\\`\\.")) nil))))) |
| 158 | 162 | ||
| 159 | (ert-deftest em-glob-test/convert/quoted-start-directory () | 163 | (ert-deftest em-glob-test/convert/start-directory-with-spaces () |
| 160 | "Test converting a glob starting in a quoted directory name." | 164 | "Test converting a glob starting in a directory with spaces in its name." |
| 161 | (should (equal (eshell-glob-convert | 165 | (should (equal (eshell-glob-convert |
| 162 | (concat (eshell-escape-arg "some where/") "*.el")) | 166 | (eshell-parse-glob-string "some where/*.el")) |
| 163 | '("./some where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) | 167 | '("./some where/" (("\\`.*\\.el\\'" . "\\`\\.")) nil)))) |
| 164 | 168 | ||
| 169 | (ert-deftest em-glob-test/convert/literal-characters () | ||
| 170 | "Test converting a \"glob\" with only literal characters." | ||
| 171 | (should (equal (eshell-glob-convert "*.el") '("./*.el" nil nil))) | ||
| 172 | (should (equal (eshell-glob-convert "**/") '("./**/" nil t)))) | ||
| 173 | |||
| 174 | (ert-deftest em-glob-test/convert/mixed-literal-characters () | ||
| 175 | "Test converting a glob with some literal characters." | ||
| 176 | (should (equal (eshell-glob-convert (eshell-parse-glob-string "\\*\\*/*.el")) | ||
| 177 | '("./**/" (("\\`.*\\.el\\'" . "\\`\\.")) nil))) | ||
| 178 | (should (equal (eshell-glob-convert (eshell-parse-glob-string "**/\\*.el")) | ||
| 179 | '("./" (recurse ("\\`\\*\\.el\\'" . "\\`\\.")) nil)))) | ||
| 180 | |||
| 165 | 181 | ||
| 166 | ;; Glob matching | 182 | ;; Glob matching |
| 167 | 183 | ||
| @@ -262,11 +278,11 @@ value of `eshell-glob-splice-results'." | |||
| 262 | 278 | ||
| 263 | (ert-deftest em-glob-test/match-n-or-more-groups () | 279 | (ert-deftest em-glob-test/match-n-or-more-groups () |
| 264 | "Test that \"(x)#\" and \"(x)#\" match zero or more instances of \"(x)\"." | 280 | "Test that \"(x)#\" and \"(x)#\" match zero or more instances of \"(x)\"." |
| 265 | (with-fake-files '("h.el" "ha.el" "hi.el" "hii.el" "dir/hi.el") | 281 | (with-fake-files '("h.el" "ha.el" "hi.el" "hah.el" "hahah.el" "dir/hah.el") |
| 266 | (should (equal (eshell-extended-glob "hi#.el") | 282 | (should (equal (eshell-extended-glob "h(ah)#.el") |
| 267 | '("h.el" "hi.el" "hii.el"))) | 283 | '("h.el" "hah.el" "hahah.el"))) |
| 268 | (should (equal (eshell-extended-glob "hi##.el") | 284 | (should (equal (eshell-extended-glob "h(ah)##.el") |
| 269 | '("hi.el" "hii.el"))))) | 285 | '("hah.el" "hahah.el"))))) |
| 270 | 286 | ||
| 271 | (ert-deftest em-glob-test/match-n-or-more-character-sets () | 287 | (ert-deftest em-glob-test/match-n-or-more-character-sets () |
| 272 | "Test that \"[x]#\" and \"[x]#\" match zero or more instances of \"[x]\"." | 288 | "Test that \"[x]#\" and \"[x]#\" match zero or more instances of \"[x]\"." |
| @@ -300,11 +316,11 @@ value of `eshell-glob-splice-results'." | |||
| 300 | (ert-deftest em-glob-test/no-matches () | 316 | (ert-deftest em-glob-test/no-matches () |
| 301 | "Test behavior when a glob fails to match any files." | 317 | "Test behavior when a glob fails to match any files." |
| 302 | (with-fake-files '("foo.el" "bar.el") | 318 | (with-fake-files '("foo.el" "bar.el") |
| 303 | (should (equal (eshell-extended-glob "*.txt") | 319 | (should (equal-including-properties (eshell-extended-glob "*.txt") |
| 304 | "*.txt")) | 320 | "*.txt")) |
| 305 | (let ((eshell-glob-splice-results t)) | 321 | (let ((eshell-glob-splice-results t)) |
| 306 | (should (equal (eshell-extended-glob "*.txt") | 322 | (should (equal-including-properties (eshell-extended-glob "*.txt") |
| 307 | '("*.txt")))) | 323 | '("*.txt")))) |
| 308 | (let ((eshell-error-if-no-glob t)) | 324 | (let ((eshell-error-if-no-glob t)) |
| 309 | (should-error (eshell-extended-glob "*.txt"))))) | 325 | (should-error (eshell-extended-glob "*.txt"))))) |
| 310 | 326 | ||