Merge branch 'maint'

This commit is contained in:
Marco Wahl 2017-03-21 20:53:02 +01:00
commit 86ff112707
2 changed files with 73 additions and 50 deletions

View File

@ -4076,6 +4076,7 @@ items if they have an hour specification like [h]h:mm."
(catch 'exit
(setq org-agenda-buffer-name
(or org-agenda-buffer-tmp-name
(and org-agenda-doing-sticky-redo org-agenda-buffer-name)
(if org-agenda-sticky
(cond ((and org-keys (stringp org-match))
(format "*Org Agenda(%s:%s)*" org-keys org-match))

View File

@ -1,4 +1,4 @@
;;; test-org-agenda.el --- Tests for org-agenda.el -*- lexical-binding: t; -*-
;;; test-org-agenda.el --- Tests for org-agenda.el -*- lexical-binding: t ; -*-
;; Copyright (C) 2017 Marco Wahl
@ -27,37 +27,34 @@
(require 'org-agenda)
;; Auxilliaries for set-up and tear-down and more.
;; General auxilliaries
(defun -sha1-as-defun-name-accc70505c6664ed226e3afa45ca0ecc95a35e83 ()
"Name a function with the sha1 of the function text.
Use this function if you are too lazy to invent a function name.
;; (possibly better move to some location in the source.)
;; Prefixing with '---' on this page.
;; Evaluate the following function for no brainer function naming.
(defun ---sha1-as-defun-name-39e8857766df959d8b52f9c38739f5a77c392ec0 ()
"Insert the sha1 of the function text in front of arglist.
The function text starts at the argument list and ends at the
last paren (exclusive)."
last paren (exclusive).
Use this function if you are too lazy to invent a function name."
(interactive)
(save-excursion
(let* ((start (progn
(beginning-of-defun)
(search-forward-regexp "\(" nil nil 2)
(backward-char)
(point)))
(end (progn
(end-of-defun)
(backward-char)
(point)))
(sha1 (sha1 (current-buffer) start end)))
;; relying on (point) is within the defun
(progn
(beginning-of-defun)
(search-forward-regexp " ")
(skip-chars-forward " \t")
(just-one-space))
(unless (= ?\( (char-after))
(delete-region (point) (progn (forward-word) (point)))
(just-one-space))
(insert sha1 " "))))
(let* ((start (progn
(beginning-of-defun)
(search-forward-regexp "\(" nil nil 2)
(backward-char)
(point)))
(end (progn
(end-of-defun)
(backward-char)
(point)))
(sha1 (sha1 (current-buffer) start end)))
(goto-char start)
(insert sha1 " ")
(backward-word)))
(defun -kill-all-agendas ()
(defun ---kill-all-agendas ()
"Kill all agenda buffers."
(mapc #'kill-buffer
(cl-remove-if-not
@ -66,50 +63,75 @@ last paren (exclusive)."
(eq major-mode 'org-agenda-mode))
(buffer-list))))
(defun ---agenda-buffers ()
"Return agenda buffers in a list."
(cl-remove-if-not
(lambda (x)
(set-buffer x)
(eq major-mode 'org-agenda-mode))
(buffer-list)))
;; Test the Agenda
(ert-deftest org-e9d91f5add1245445ba773dd74ac534273113ca5 ()
(ert-deftest org-agenda-90c5dce0435b74ba7e9682a4a9a393aeea741739 ()
"Empty agenda."
(cl-assert (not org-agenda-sticky) nil "precondition violation")
(cl-assert (not (---agenda-buffers)) nil "precondition violation")
(let ((org-agenda-span 'day)
org-agenda-files)
(org-agenda-list)
(set-buffer org-agenda-buffer-name)
(should (= 2 (count-lines (point-min) (point-max))))))
(should (= 2 (count-lines (point-min) (point-max)))))
(---kill-all-agendas))
(ert-deftest org-a0116aeccdedc04580e42933a16c2893d76ee6bc ()
(ert-deftest org-agenda-668f0e69003051b79eb421146f7626ac9438c105 ()
"One informative line in the agenda."
(cl-assert (not org-agenda-sticky) nil "precondition violation")
(cl-assert (not (---agenda-buffers)) nil "precondition violation")
(let ((org-agenda-span 'day)
(org-agenda-files `(,(expand-file-name "examples/agenda-file.org" org-test-dir))))
(org-agenda-list nil "<2017-03-10 Fri>")
(set-buffer org-agenda-buffer-name)
(should (= 3 (count-lines (point-min) (point-max))))))
(should (= 3 (count-lines (point-min) (point-max)))))
(---kill-all-agendas))
(ert-deftest org-165802102bb2d2accf16ff0ae362ef51945ae69f ()
(ert-deftest org-agenda-8e6c85e9ff1ea9fed0ae0fa04ff9a3dace6c9d17 ()
"Agenda buffer name after having created one sticky agenda buffer."
(-kill-all-agendas)
;; (setq org-agenda-buffer-name "*Org Agenda*")
(cl-assert (not org-agenda-sticky) nil "precondition violation")
(cl-assert (not (---agenda-buffers)) nil "precondition violation")
(let ((org-agenda-span 'day)
(org-agenda-buffer-name "*Org Agenda*")
(default-org-agenda-buffer-name org-agenda-buffer-name)
(buf (get-buffer org-agenda-buffer-name))
org-agenda-files)
(when buf (kill-buffer buf))
(org-test-with-temp-text "<2017-03-17 Fri>"
(org-follow-timestamp-link) ; creates a sticky agenda.
)
(-kill-all-agendas)
(org-follow-timestamp-link) ; creates a sticky agenda.
)
(---kill-all-agendas)
(org-agenda-list)
(let ((agenda-buffers
(cl-remove-if-not
(lambda (x)
(set-buffer x)
(eq major-mode 'org-agenda-mode))
(buffer-list))))
(should (= 1 (length agenda-buffers)))
(should (string= default-org-agenda-buffer-name
(buffer-name (car agenda-buffers))))))
(-kill-all-agendas))
(should (= 1 (length (---agenda-buffers))))
(should (string= "*Org Agenda*"
(buffer-name (car (---agenda-buffers))))))
(---kill-all-agendas))
(ert-deftest org-agenda-9fa27658bf61d8fe2c5b6f9177e9e8ce07f11f7b ()
"Agenda buffer name of sticky agenda after reload."
(cl-assert (not org-agenda-sticky) nil "precondition violation")
(cl-assert (not (---agenda-buffers)) nil "precondition violation")
(org-toggle-sticky-agenda)
(let (org-agenda-files)
(org-agenda-list)
(let* ((agenda-buffer-name
(progn
(assert (= 1 (length (---agenda-buffers))))
(buffer-name (car (---agenda-buffers))))))
(set-buffer agenda-buffer-name)
(org-agenda-redo)
(should (= 1 (length (---agenda-buffers))))
(should (string= agenda-buffer-name
(buffer-name (car (---agenda-buffers)))))))
(org-toggle-sticky-agenda)
(---kill-all-agendas))
(provide 'test-org-agenda)