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 (catch 'exit
(setq org-agenda-buffer-name (setq org-agenda-buffer-name
(or org-agenda-buffer-tmp-name (or org-agenda-buffer-tmp-name
(and org-agenda-doing-sticky-redo org-agenda-buffer-name)
(if org-agenda-sticky (if org-agenda-sticky
(cond ((and org-keys (stringp org-match)) (cond ((and org-keys (stringp org-match))
(format "*Org Agenda(%s:%s)*" org-keys 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 ;; Copyright (C) 2017 Marco Wahl
@ -27,37 +27,34 @@
(require 'org-agenda) (require 'org-agenda)
;; Auxilliaries for set-up and tear-down and more. ;; General auxilliaries
(defun -sha1-as-defun-name-accc70505c6664ed226e3afa45ca0ecc95a35e83 () ;; (possibly better move to some location in the source.)
"Name a function with the sha1 of the function text.
Use this function if you are too lazy to invent a function name. ;; 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 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) (interactive)
(save-excursion (let* ((start (progn
(let* ((start (progn (beginning-of-defun)
(beginning-of-defun) (search-forward-regexp "\(" nil nil 2)
(search-forward-regexp "\(" nil nil 2) (backward-char)
(backward-char) (point)))
(point))) (end (progn
(end (progn (end-of-defun)
(end-of-defun) (backward-char)
(backward-char) (point)))
(point))) (sha1 (sha1 (current-buffer) start end)))
(sha1 (sha1 (current-buffer) start end))) (goto-char start)
;; relying on (point) is within the defun (insert sha1 " ")
(progn (backward-word)))
(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 " "))))
(defun -kill-all-agendas () (defun ---kill-all-agendas ()
"Kill all agenda buffers." "Kill all agenda buffers."
(mapc #'kill-buffer (mapc #'kill-buffer
(cl-remove-if-not (cl-remove-if-not
@ -66,50 +63,75 @@ last paren (exclusive)."
(eq major-mode 'org-agenda-mode)) (eq major-mode 'org-agenda-mode))
(buffer-list)))) (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 ;; Test the Agenda
(ert-deftest org-e9d91f5add1245445ba773dd74ac534273113ca5 () (ert-deftest org-agenda-90c5dce0435b74ba7e9682a4a9a393aeea741739 ()
"Empty agenda." "Empty agenda."
(cl-assert (not org-agenda-sticky) nil "precondition violation")
(cl-assert (not (---agenda-buffers)) nil "precondition violation")
(let ((org-agenda-span 'day) (let ((org-agenda-span 'day)
org-agenda-files) org-agenda-files)
(org-agenda-list) (org-agenda-list)
(set-buffer org-agenda-buffer-name) (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." "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) (let ((org-agenda-span 'day)
(org-agenda-files `(,(expand-file-name "examples/agenda-file.org" org-test-dir)))) (org-agenda-files `(,(expand-file-name "examples/agenda-file.org" org-test-dir))))
(org-agenda-list nil "<2017-03-10 Fri>") (org-agenda-list nil "<2017-03-10 Fri>")
(set-buffer org-agenda-buffer-name) (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." "Agenda buffer name after having created one sticky agenda buffer."
(-kill-all-agendas) (cl-assert (not org-agenda-sticky) nil "precondition violation")
;; (setq org-agenda-buffer-name "*Org Agenda*") (cl-assert (not (---agenda-buffers)) nil "precondition violation")
(let ((org-agenda-span 'day) (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)) (buf (get-buffer org-agenda-buffer-name))
org-agenda-files) org-agenda-files)
(when buf (kill-buffer buf)) (when buf (kill-buffer buf))
(org-test-with-temp-text "<2017-03-17 Fri>" (org-test-with-temp-text "<2017-03-17 Fri>"
(org-follow-timestamp-link) ; creates a sticky agenda. (org-follow-timestamp-link) ; creates a sticky agenda.
) )
(-kill-all-agendas) (---kill-all-agendas)
(org-agenda-list) (org-agenda-list)
(let ((agenda-buffers (should (= 1 (length (---agenda-buffers))))
(cl-remove-if-not (should (string= "*Org Agenda*"
(lambda (x) (buffer-name (car (---agenda-buffers))))))
(set-buffer x) (---kill-all-agendas))
(eq major-mode 'org-agenda-mode))
(buffer-list)))) (ert-deftest org-agenda-9fa27658bf61d8fe2c5b6f9177e9e8ce07f11f7b ()
(should (= 1 (length agenda-buffers))) "Agenda buffer name of sticky agenda after reload."
(should (string= default-org-agenda-buffer-name (cl-assert (not org-agenda-sticky) nil "precondition violation")
(buffer-name (car agenda-buffers)))))) (cl-assert (not (---agenda-buffers)) nil "precondition violation")
(-kill-all-agendas)) (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) (provide 'test-org-agenda)