summaryrefslogtreecommitdiff
path: root/test/lisp/autorevert-tests.el
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2019-06-10 17:52:50 +0200
committerMattias EngdegÄrd <mattiase@acm.org>2019-06-11 22:15:38 +0200
commite92dac3434d30b870461898a336854879620f400 (patch)
tree888eca0db7ebaccdd9c5cf13a98b66d6337df7c2 /test/lisp/autorevert-tests.el
parent2b8f9ded06590d8e299ed25e09a0db7af0299fe4 (diff)
downloademacs-e92dac3434d30b870461898a336854879620f400.tar.gz
Keep auto-revert-mode working when changing buffer file name (bug#36159)
* lisp/autorevert.el (after-set-visited-file-name-hook): Add unconditionally. (global-auto-revert-mode): Don't use `after-set-visited-file-name-hook' here. (auto-revert-set-visited-file-name): Rename from `auto-revert--global-set-visited-file-name' and generalise. * test/lisp/autorevert-tests.el (auto-revert-test06-write-file): New.
Diffstat (limited to 'test/lisp/autorevert-tests.el')
-rw-r--r--test/lisp/autorevert-tests.el34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/lisp/autorevert-tests.el b/test/lisp/autorevert-tests.el
index 3c9e04bf194..f21fb864f27 100644
--- a/test/lisp/autorevert-tests.el
+++ b/test/lisp/autorevert-tests.el
@@ -542,6 +542,40 @@ This expects `auto-revert--messages' to be bound by
(auto-revert--deftest-remote auto-revert-test05-global-notify
"Test `global-auto-revert-mode' without polling for remote buffers.")
+(ert-deftest auto-revert-test06-write-file ()
+ "Verify that notification follows `write-file' correctly."
+ :tags '(:expensive-test)
+ (skip-unless (or file-notify--library
+ (file-remote-p temporary-file-directory)))
+ (let* ((auto-revert-use-notify t)
+ (file-1 (make-temp-file "auto-revert-test"))
+ (file-2 (concat file-1 "-2"))
+ (buf nil))
+ (unwind-protect
+ (progn
+ (setq buf (find-file-noselect file-1))
+ (with-current-buffer buf
+ (insert "A")
+ (save-buffer)
+
+ (auto-revert-mode 1)
+
+ (insert "B")
+ (write-file file-2)
+
+ (auto-revert-test--write-file "C" file-2)
+ (auto-revert-test--wait-for-buffer-text
+ buf "C" (+ auto-revert-interval 1))
+ (should (equal (buffer-string) "C"))))
+
+ ;; Clean up.
+ (ignore-errors (kill-buffer buf))
+ (ignore-errors (delete-file file-1))
+ (ignore-errors (delete-file file-2)))))
+
+(auto-revert--deftest-remote auto-revert-test06-write-file
+ "Test `write-file' in `auto-revert-mode' for remote buffers.")
+
(defun auto-revert-test-all (&optional interactive)
"Run all tests for \\[auto-revert]."
(interactive "p")