diff options
author | Marco Wahl <marcowahlsoft@gmail.com> | 2017-03-17 19:44:56 +0100 |
---|---|---|
committer | Marco Wahl <marcowahlsoft@gmail.com> | 2017-03-17 19:52:22 +0100 |
commit | d262ae53c966c7a745c0fa779149f9eb7486333d (patch) | |
tree | 7f558e1fb648169df82ffd8ae820326b5ecaebd6 | |
parent | b5c19643d2347e4e1f4d76634b458380a46e39c4 (diff) | |
download | org-mode-d262ae53c966c7a745c0fa779149f9eb7486333d.tar.gz |
org-agenda: Fix agenda standard name when going unsticky
* lisp/org-agenda.el (org-agenda-list): Reset `org-agenda-buffer-name'
to the original name.
* testing/lisp/test-org-agenda.el: Pertaining unit test. + 2 basic
agenda tests.
* testing/examples/agenda-file.org: File to produce content for an
agenda to test.
-rw-r--r-- | lisp/org-agenda.el | 2 | ||||
-rw-r--r-- | testing/examples/agenda-file.org | 3 | ||||
-rw-r--r-- | testing/lisp/test-org-agenda.el | 117 |
3 files changed, 121 insertions, 1 deletions
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 4a2cf7b..f126a78 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -4207,7 +4207,7 @@ items if they have an hour specification like [h]h:mm." (org-keys (format "*Org Agenda(%s)*" org-keys)) (t "*Org Agenda(a)*"))) - org-agenda-buffer-name)) + "*Org Agenda*")) (org-agenda-prepare "Day/Week") (setq start-day (or start-day org-agenda-start-day)) (if (stringp start-day) diff --git a/testing/examples/agenda-file.org b/testing/examples/agenda-file.org new file mode 100644 index 0000000..e9d99a4 --- /dev/null +++ b/testing/examples/agenda-file.org @@ -0,0 +1,3 @@ +* Test Agenda + +<2017-03-10 Fri> diff --git a/testing/lisp/test-org-agenda.el b/testing/lisp/test-org-agenda.el new file mode 100644 index 0000000..a37440c --- /dev/null +++ b/testing/lisp/test-org-agenda.el @@ -0,0 +1,117 @@ +;;; test-org-agenda.el --- Tests for org-agenda.el -*- lexical-binding: t; -*- + +;; Copyright (C) 2017 Marco Wahl + +;; Author: Marco Wahl <marcowahlsoft@gmail.com> + +;; This program 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. + +;; This program 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 this program. If not, see <http://www.gnu.org/licenses/>. + +;;; Commentary: + +;; Unit tests for Org Agenda. + +;;; Code: + +(require 'org-test) +(require 'org-agenda) + + +;; Auxilliaries for set-up and tear-down and more. + +(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. +The function text starts at the argument list and ends at the +last paren (exclusive)." + (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 " ")))) + +(defun -kill-all-agendas () + "Kill all agenda buffers." + (mapc #'kill-buffer + (cl-remove-if-not + (lambda (x) + (set-buffer x) + (eq major-mode 'org-agenda-mode)) + (buffer-list)))) + + +;; Test the Agenda + +(ert-deftest org-e9d91f5add1245445ba773dd74ac534273113ca5 () + "Empty agenda." + (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)))))) + +(ert-deftest org-a0116aeccdedc04580e42933a16c2893d76ee6bc () + "One informative line in the agenda." + (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)))))) + +(ert-deftest org-165802102bb2d2accf16ff0ae362ef51945ae69f () + "Agenda buffer name after having created one sticky agenda buffer." + (-kill-all-agendas) + ;; (setq org-agenda-buffer-name "*Org Agenda*") + (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-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)) + + +(provide 'test-org-agenda) + +;;; test-org-agenda.el ends here |