unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
blob 63b696db1d0b5ba2035b6b217592bbf992656561 4804 bytes (raw)
name: test/lisp/calendar/parse-time-tests.el 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
 
;;; parse-time-tests.el --- Test suite for parse-time.el  -*- lexical-binding:t -*-

;; Copyright (C) 2016-2021 Free Software Foundation, Inc.

;; Author: Lars Ingebrigtsen <larsi@gnus.org>

;; This file is part of GNU Emacs.

;; GNU Emacs 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.

;; GNU Emacs 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 GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.

;;; Commentary:

;;; Code:

(require 'ert)
(require 'parse-time)

(ert-deftest parse-time-tests ()
  (should (equal (parse-time-string "Mon, 22 Feb 2016 19:35:42 +0100")
                 '(42 35 19 22 2 2016 1 -1 3600)))
  (should (equal (parse-time-string "22 Feb 2016 19:35:42 +0100")
                 '(42 35 19 22 2 2016 nil -1 3600)))
  (should (equal (parse-time-string "22 Feb 2016 +0100")
                 '(nil nil nil 22 2 2016 nil -1 3600)))
  (should (equal (parse-time-string "Mon, 22 Feb 16 19:35:42 +0100")
                 '(42 35 19 22 2 2016 1 -1 3600)))
  (should (equal (parse-time-string "Mon, 22 February 2016 19:35:42 +0100")
                 '(42 35 19 22 2 2016 1 -1 3600)))
  (should (equal (parse-time-string "Mon, 22 feb 2016 19:35:42 +0100")
                 '(42 35 19 22 2 2016 1 -1 3600)))
  (should (equal (parse-time-string "Monday, 22 february 2016 19:35:42 +0100")
                 '(42 35 19 22 2 2016 1 -1 3600)))
  (should (equal (parse-time-string "Monday, 22 february 2016 19:35:42 PST")
                 '(42 35 19 22 2 2016 1 nil -28800)))
  (should (equal (parse-time-string "Friday, 21 Sep 2018 13:47:58 PDT")
                 '(58 47 13 21 9 2018 5 t -25200)))
  (should (equal (parse-time-string "Friday, 21 Sep 2018 13:47:58")
                 '(58 47 13 21 9 2018 5 -1 nil)))
  (should (equal (parse-time-string "Friday, 21 Sep 2018")
                 '(nil nil nil 21 9 2018 5 -1 nil)))
  ;; Date can be numeric if separated by hyphens.
  (should (equal (parse-time-string "Friday, 2018-09-21")
                 '(nil nil nil 21 9 2018 5 -1 nil)))
  ;; Day of week is optional
  (should (equal (parse-time-string "2018-09-21")
                 '(nil nil nil 21 9 2018 nil -1 nil)))
  ;; The order of date, time, etc., does not matter.
  (should (equal (parse-time-string "13:47:58, +0100, 2018-09-21, Friday")
                 '(58 47 13 21 9 2018 5 -1 3600)))
  ;; Month, day, or both, can be a single digit.
  (should (equal (parse-time-string "Friday, 2018-9-08")
                 '(nil nil nil 8 9 2018 5 -1 nil)))
  (should (equal (parse-time-string "Friday, 2018-09-8")
                 '(nil nil nil 8 9 2018 5 -1 nil)))
  (should (equal (parse-time-string "Friday, 2018-9-8")
                 '(nil nil nil 8 9 2018 5 -1 nil)))
  ;; Time by itself is recognized as such.
  (should (equal (parse-time-string "03:47:58")
                 '(58 47 3 nil nil nil nil -1 nil)))
  ;; A leading zero for hours is optional.
  (should (equal (parse-time-string "3:47:58")
                 '(58 47 3 nil nil nil nil -1 nil)))
  ;; Missing seconds are assumed to be zero.
  (should (equal (parse-time-string "3:47")
                 '(0 47 3 nil nil nil nil -1 nil)))

  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54-0200") t)
		 "1998-09-12 14:21:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54-0230") t)
		 "1998-09-12 14:51:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54-02:00") t)
		 "1998-09-12 14:21:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54-02") t)
		 "1998-09-12 14:21:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54+0230") t)
		 "1998-09-12 09:51:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54+02") t)
		 "1998-09-12 10:21:54"))
  (should (equal (format-time-string
		  "%Y-%m-%d %H:%M:%S"
		  (parse-iso8601-time-string "1998-09-12T12:21:54Z") t)
		 "1998-09-12 12:21:54"))
  (should (equal (parse-iso8601-time-string "1998-09-12T12:21:54")
                 (encode-time 54 21 12 12 9 1998))))

(provide 'parse-time-tests)

;;; parse-time-tests.el ends here

debug log:

solving 63b696db1d ...
found 63b696db1d in https://yhetil.org/emacs-bugs/25023.40959.627321.685762@orion.rgrjr.com/
found b706b73570 in https://git.savannah.gnu.org/cgit/emacs.git
preparing index
index prepared:
100644 b706b73570d184e2f05ed562f3e410f48c41755b	test/lisp/calendar/parse-time-tests.el

applying [1/1] https://yhetil.org/emacs-bugs/25023.40959.627321.685762@orion.rgrjr.com/
diff --git a/test/lisp/calendar/parse-time-tests.el b/test/lisp/calendar/parse-time-tests.el
index b706b73570..63b696db1d 100644

Checking patch test/lisp/calendar/parse-time-tests.el...
Applied patch test/lisp/calendar/parse-time-tests.el cleanly.

index at:
100644 63b696db1d0b5ba2035b6b217592bbf992656561	test/lisp/calendar/parse-time-tests.el

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).