Mercurial > hg > xemacs-beta
diff tests/automated/files-tests.el @ 5766:182d01410b8d
Add mode-require-final-newline from GNU. Thanks GNU.
lisp/ChangeLog:
2013-09-15 Mats Lidell <matsl@cxemacs.org>
* files.el (mode-require-final-newline): Variable synced from
GNU. Thank you GNU. Allows modes to control final newlines.
(require-final-newline): Add action on visiting and visiting or
saving in sync with GNU.
* text-mode.el (text-mode): Use mode-require-final-newline.
man/ChangeLog:
2013-09-15 Mats Lidell <matsl@xemacs.org>
* xemacs/files.texi (Saving): New variable
mode-require-final-newline. Update info for
require-final-newline.
tests/ChangeLog:
2013-09-15 Mats Lidell <matsl@xemacs.org>
* automated/files-tests.el: New file. Test new states in
require-final-newline and new variable
mode-require-final-newline.
author | Mats Lidell <mats.lidell@cag.se> |
---|---|
date | Mon, 16 Sep 2013 00:00:12 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/automated/files-tests.el Mon Sep 16 00:00:12 2013 +0200 @@ -0,0 +1,115 @@ +;; Copyright (C) 2013 Free Software Foundation, Inc. + +;; Author: Mats Lidell <matsl@xemacs.org> +;; Maintainer: +;; Created: 2013 +;; Keywords: tests + +;; This file is part of XEmacs. + +;; XEmacs is free software: you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by the +;; Free Software Foundation, either version 3 of the License, or (at your +;; option) any later version. + +;; XEmacs is distributed in the hope that it will be useful, but WITHOUT +;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +;; for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. + +;;; Synched up with: Not in FSF. + +;;; Commentary: + +;; Test tag support. +;; See test-harness.el for instructions on how to run these tests. + +(require 'test-harness) + +;; Require a newline on save +(let ((test-file-name (make-temp-file "files-tests")) + (require-final-newline t)) + (find-file test-file-name) + (erase-buffer) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (Assert (equal (buffer-string) "no newline\n")) + (kill-buffer nil) + (delete-file test-file-name)) + +;; Don't require a newline on save +(let ((test-file-name (make-temp-file "files-tests")) + (require-final-newline nil)) + (find-file test-file-name) + (erase-buffer) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (Assert (equal (buffer-string) "no newline")) + (kill-buffer nil) + (delete-file test-file-name)) + +;; Require a newline on visit (not on save) +;; Answer query when saving with both no and yes. +(let ((test-file-name (make-temp-file "files-tests")) + (require-final-newline nil)) + (find-file test-file-name) + (erase-buffer) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (kill-buffer nil) + (let ((require-final-newline 'visit)) + (find-file test-file-name) + (Assert (equal (buffer-string) "no newline\n")) + + ;; Answer no + (erase-buffer) + (insert "no newline") + (flet ((y-or-n-p (prompt) nil)) + (Silence-Message (save-buffer 0))) + (Assert (equal (buffer-string) "no newline")) + + ;; Answer yes + (erase-buffer) + (insert "no newline") + (flet ((y-or-n-p (prompt) t)) + (Silence-Message (save-buffer 0))) + (Assert (equal (buffer-string) "no newline\n"))) + + (kill-buffer nil) + (delete-file test-file-name)) + +;; Require a newline on visit and save +(let ((test-file-name (make-temp-file "files-tests")) + (require-final-newline nil)) + (find-file test-file-name) + (erase-buffer) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (kill-buffer nil) + (let ((require-final-newline 'visit-save)) + (find-file test-file-name) + (Assert (equal (buffer-string) "no newline\n")) + (erase-buffer) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (Assert (equal (buffer-string) "no newline\n"))) + (kill-buffer nil) + (delete-file test-file-name)) + +;; mode-require-final-newline is respected by text-mode +(let ((test-file-name (make-temp-file "files-tests")) + (require-final-newline nil) + (mode-require-final-newline t)) + (Assert (equal require-final-newline nil)) + (find-file test-file-name) + (erase-buffer) + (text-mode) + (Assert (equal require-final-newline t)) + (insert "no newline") + (Silence-Message (save-buffer 0)) + (Assert (equal (buffer-string) "no newline\n")) + (kill-buffer nil) + (delete-file test-file-name))