You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					362 lines
				
				10 KiB
			
		
		
			
		
	
	
					362 lines
				
				10 KiB
			| 
											8 years ago
										 | ;; Tests for class `rst-Ttl'  -*- lexical-binding: t -*-
 | ||
|  | 
 | ||
|  | (add-to-list 'load-path ".")
 | ||
|  | (load "init" nil t)
 | ||
|  | (init-rst-ert t)
 | ||
|  | 
 | ||
|  | (setq buf-lines
 | ||
|  | "Simple
 | ||
|  | ======
 | ||
|  | 
 | ||
|  | ----------
 | ||
|  |   Double
 | ||
|  | ----------
 | ||
|  | 
 | ||
|  |  Candidate
 | ||
|  | \^@
 | ||
|  | ~~~~~~~~~~
 | ||
|  |    Half
 | ||
|  | 
 | ||
|  | **********
 | ||
|  | "
 | ||
|  |       ado-spl (rst-Ado-new-simple ?=)
 | ||
|  |       txt-spl-beg 1
 | ||
|  |       txt-spl-end 7
 | ||
|  |       und-spl-beg 8
 | ||
|  |       und-spl-end 14
 | ||
|  |       mtc-spl (list txt-spl-beg und-spl-end
 | ||
|  | 		    nil nil
 | ||
|  | 		    txt-spl-beg txt-spl-end
 | ||
|  | 		    und-spl-beg und-spl-end)
 | ||
|  |       ind-spl 0
 | ||
|  |       hdr-spl (rst-Hdr-new ado-spl 0)
 | ||
|  |       txt-spl "Simple"
 | ||
|  |       ado-dbl (rst-Ado-new-over-and-under ?-)
 | ||
|  |       ovr-dbl-beg 16
 | ||
|  |       ovr-dbl-end 26
 | ||
|  |       txt-dbl-beg 27
 | ||
|  |       txt-dbl-end 35
 | ||
|  |       und-dbl-beg 36
 | ||
|  |       und-dbl-end 46
 | ||
|  |       mtc-dbl (list ovr-dbl-beg und-dbl-end
 | ||
|  | 		    ovr-dbl-beg ovr-dbl-end
 | ||
|  | 		    txt-dbl-beg txt-dbl-end
 | ||
|  | 		    und-dbl-beg und-dbl-end)
 | ||
|  |       ind-dbl 2
 | ||
|  |       hdr-dbl (rst-Hdr-new ado-dbl 2)
 | ||
|  |       txt-dbl "Double"
 | ||
|  |       ado-cnd nil
 | ||
|  |       txt-cnd-beg 48
 | ||
|  |       txt-cnd-end 58
 | ||
|  |       mtc-cnd (list txt-cnd-beg txt-cnd-end
 | ||
|  | 		    nil nil
 | ||
|  | 		    txt-cnd-beg txt-cnd-end
 | ||
|  | 		    nil nil)
 | ||
|  |       ind-cnd 1
 | ||
|  |       txt-cnd "Candidate"
 | ||
|  |       ado-hlf (rst-Ado-new-over-and-under ?~)
 | ||
|  |       ovr-hlf-beg 60
 | ||
|  |       ovr-hlf-end 70
 | ||
|  |       txt-hlf-beg 71
 | ||
|  |       txt-hlf-end 78
 | ||
|  |       mtc-hlf (list ovr-hlf-beg txt-hlf-end
 | ||
|  | 		    ovr-hlf-beg ovr-hlf-end
 | ||
|  | 		    txt-hlf-beg txt-hlf-end
 | ||
|  | 		    nil nil)
 | ||
|  |       mtc-hlf (list ovr-hlf-beg txt-hlf-end
 | ||
|  | 		    ovr-hlf-beg ovr-hlf-end
 | ||
|  | 		    txt-hlf-beg txt-hlf-end
 | ||
|  | 		    nil nil)
 | ||
|  |       ind-hlf 3
 | ||
|  |       txt-hlf "Half"
 | ||
|  |       ado-trn (rst-Ado-new-transition)
 | ||
|  |       txt-trn-beg 80
 | ||
|  |       txt-trn-end 90
 | ||
|  |       mtc-trn (list txt-trn-beg txt-trn-end
 | ||
|  | 		    nil nil
 | ||
|  | 		    txt-trn-beg txt-trn-end
 | ||
|  | 		    nil nil)
 | ||
|  |       ind-trn nil
 | ||
|  |       txt-trn nil
 | ||
|  |       )
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl-asserts ()
 | ||
|  |   "Check some assertions."
 | ||
|  |   (should (equal ert-Buf-point-char "\^@"))
 | ||
|  |   (should (equal ert-Buf-mark-char "\^?"))
 | ||
|  |   )
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl--new ()
 | ||
|  |   "Test `rst-Ttl--new'."
 | ||
|  |   ;; Check type checking of ado argument.
 | ||
|  |   (should-error (rst-Ttl--new hdr-spl mtc-spl ind-spl txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  | 
 | ||
|  |   ;; Check type and value checking of match argument.
 | ||
|  |   (should-error (rst-Ttl--new ado-spl 1 ind-spl txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl nil ind-spl txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl '(1 2 3) ind-spl txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl '(1 2 "3" 4 5 6 7 8) ind-spl txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new nil '(1 2 3 4 5 6 7 8) ind-spl txt-spl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  | 
 | ||
|  |   ;; Check value checking of match argument for tranisitions.
 | ||
|  |   (should-error (rst-Ttl--new ado-trn (list nil nil
 | ||
|  | 					    nil nil
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end)
 | ||
|  | 			      ind-spl txt-trn)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-trn (list txt-spl-beg und-spl-end
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end
 | ||
|  | 					    nil nil)
 | ||
|  | 			      ind-spl txt-trn)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-trn (list txt-spl-beg und-spl-end
 | ||
|  | 					    nil nil
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end)
 | ||
|  | 			      ind-spl txt-trn)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-trn (list txt-spl-beg und-spl-end
 | ||
|  | 					    nil nil
 | ||
|  | 					    nil nil
 | ||
|  | 					    und-spl-beg und-spl-end)
 | ||
|  | 			      ind-spl txt-trn)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  | 
 | ||
|  |   ;; Check value checking of match argument for simple section header.
 | ||
|  |   (should-error (rst-Ttl--new ado-spl (list nil nil
 | ||
|  | 					    nil nil
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end)
 | ||
|  | 			      ind-spl txt-spl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl (list txt-spl-beg und-spl-end
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end
 | ||
|  | 					    und-spl-beg und-spl-end)
 | ||
|  | 			      ind-spl txt-spl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl (list txt-spl-beg und-spl-end
 | ||
|  | 					    nil nil
 | ||
|  | 					    txt-spl-beg txt-spl-end
 | ||
|  | 					    nil nil)
 | ||
|  | 			      ind-spl txt-spl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  | 
 | ||
|  |   ;; Check value checking of match argument for double section header.
 | ||
|  |   (should-error (rst-Ttl--new ado-dbl (list nil nil
 | ||
|  | 					    ovr-dbl-beg ovr-dbl-end
 | ||
|  | 					    txt-dbl-beg txt-dbl-end
 | ||
|  | 					    und-dbl-beg und-dbl-end)
 | ||
|  | 			      ind-dbl txt-dbl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-dbl (list ovr-dbl-beg und-dbl-end
 | ||
|  | 					    nil nil
 | ||
|  | 					    txt-dbl-beg txt-dbl-end
 | ||
|  | 					    und-dbl-beg und-dbl-end)
 | ||
|  | 			      ind-dbl txt-dbl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  |   (should-error (rst-Ttl--new ado-dbl (list ovr-dbl-beg und-dbl-end
 | ||
|  | 					    ovr-dbl-beg ovr-dbl-end
 | ||
|  | 					    nil nil
 | ||
|  | 					    und-dbl-beg und-dbl-end)
 | ||
|  | 			      ind-dbl txt-dbl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  | 
 | ||
|  |   ;; Check type and value checking of indent argument.
 | ||
|  |   (should-error (rst-Ttl--new ado-trn mtc-trn 1 txt-trn)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl mtc-spl nil txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl mtc-spl -1 txt-spl)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  | 
 | ||
|  |   ;; Check type and value checking of text argument.
 | ||
|  |   (should-error (rst-Ttl--new ado-trn mtc-trn ind-trn "Text")
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl mtc-spl ind-spl nil)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-spl mtc-spl ind-spl 3)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  |   (should-error (rst-Ttl--new ado-trn mtc-spl ind-spl txt-spl)
 | ||
|  | 		:type 'args-out-of-range)
 | ||
|  | 
 | ||
|  |   (should (rst-Ttl-p (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl)))
 | ||
|  |   (should (rst-Ttl-p (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl)))
 | ||
|  |   (should (rst-Ttl-p (rst-Ttl--new ado-cnd mtc-cnd ind-cnd txt-cnd)))
 | ||
|  |   (should (rst-Ttl-p (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf)))
 | ||
|  |   (should (rst-Ttl-p (rst-Ttl--new ado-trn mtc-trn ind-trn txt-trn)))
 | ||
|  | 
 | ||
|  |   ;; Check setting of header.
 | ||
|  |   (should (equal (rst-Ttl-hdr (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl))
 | ||
|  | 		 (rst-Hdr-new ado-spl ind-spl)))
 | ||
|  |   (should (equal (rst-Ttl-hdr (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl))
 | ||
|  | 		 (rst-Hdr-new ado-dbl ind-dbl)))
 | ||
|  |   (should (equal (rst-Ttl-hdr (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf))
 | ||
|  | 		 (rst-Hdr-new ado-hlf ind-hlf)))
 | ||
|  |   (should-not (rst-Ttl-hdr (rst-Ttl--new ado-cnd mtc-cnd ind-cnd txt-cnd)))
 | ||
|  |   (should-not (rst-Ttl-hdr (rst-Ttl--new ado-trn mtc-cnd nil txt-trn)))
 | ||
|  | 
 | ||
|  |   )
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl-get-title-beginning ()
 | ||
|  |   "Test `rst-Ttl-get-title-beginning'."
 | ||
|  |   (should (equal (rst-Ttl-get-title-beginning
 | ||
|  | 		  (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl)) txt-spl-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-title-beginning
 | ||
|  | 		  (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl)) txt-dbl-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-title-beginning
 | ||
|  | 		  (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf)) txt-hlf-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-title-beginning
 | ||
|  | 		  (rst-Ttl--new ado-cnd mtc-cnd ind-cnd txt-cnd)) txt-cnd-beg))
 | ||
|  |   )
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl-get-beginning_end ()
 | ||
|  |   "Test `rst-Ttl-get-beginning' and `rst-Ttl-get-end'."
 | ||
|  |   (should (equal (rst-Ttl-get-beginning
 | ||
|  | 		  (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl)) txt-spl-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-end
 | ||
|  | 		  (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl)) und-spl-end))
 | ||
|  |   (should (equal (rst-Ttl-get-beginning
 | ||
|  | 		  (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl)) ovr-dbl-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-end
 | ||
|  | 		  (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl)) und-dbl-end))
 | ||
|  |   (should (equal (rst-Ttl-get-beginning
 | ||
|  | 		  (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf)) ovr-hlf-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-end
 | ||
|  | 		  (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf)) txt-hlf-end))
 | ||
|  |   (should (equal (rst-Ttl-get-beginning
 | ||
|  | 		  (rst-Ttl--new ado-cnd mtc-cnd ind-cnd txt-cnd)) txt-cnd-beg))
 | ||
|  |   (should (equal (rst-Ttl-get-end
 | ||
|  | 		  (rst-Ttl--new ado-cnd mtc-cnd ind-cnd txt-cnd)) txt-cnd-end))
 | ||
|  |   )
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl-from-buffer ()
 | ||
|  |   "Test `rst-Ttl-from-buffer'."
 | ||
|  |   (let ((ttl-spl (rst-Ttl--new ado-spl mtc-spl ind-spl txt-spl))
 | ||
|  | 	(ttl-dbl (rst-Ttl--new ado-dbl mtc-dbl ind-dbl txt-dbl))
 | ||
|  | 	(ttl-cnd (rst-Ttl--new nil mtc-cnd ind-cnd txt-cnd))
 | ||
|  | 	(ttl-hlf (rst-Ttl--new ado-hlf mtc-hlf ind-hlf txt-hlf))
 | ||
|  | 	(ttl-trn (rst-Ttl--new ado-trn mtc-trn ind-trn txt-trn)))
 | ||
|  | 
 | ||
|  |     ;; Check type checking of beg-txt argument.
 | ||
|  |     (should-error (rst-Ttl-from-buffer nil nil nil nil nil)
 | ||
|  | 		  :type 'wrong-type-argument)
 | ||
|  | 
 | ||
|  |     (should (ert-equal-buffer-return
 | ||
|  | 	     '(rst-Ttl-from-buffer
 | ||
|  | 	       ado-spl nil txt-spl-beg und-spl-beg txt-spl)
 | ||
|  | 	     buf-lines
 | ||
|  | 	     t
 | ||
|  | 	     ttl-spl))
 | ||
|  |     (should (ert-equal-buffer-return
 | ||
|  | 	     '(rst-Ttl-from-buffer
 | ||
|  | 	       ado-dbl ovr-dbl-beg txt-dbl-beg und-dbl-beg txt-dbl)
 | ||
|  | 	     buf-lines
 | ||
|  | 	     t
 | ||
|  | 	     ttl-dbl))
 | ||
|  |     (should (ert-equal-buffer-return
 | ||
|  | 	     '(rst-Ttl-from-buffer
 | ||
|  | 	       nil nil txt-cnd-beg nil txt-cnd)
 | ||
|  | 	     buf-lines
 | ||
|  | 	     t
 | ||
|  | 	     ttl-cnd))
 | ||
|  |     (should (ert-equal-buffer-return
 | ||
|  | 	     '(rst-Ttl-from-buffer
 | ||
|  | 	       ado-hlf ovr-hlf-beg txt-hlf-beg nil txt-hlf)
 | ||
|  | 	     buf-lines
 | ||
|  | 	     t
 | ||
|  | 	     ttl-hlf))
 | ||
|  |     (should (ert-equal-buffer-return
 | ||
|  | 	     '(rst-Ttl-from-buffer
 | ||
|  | 	       ado-trn nil txt-trn-beg nil txt-trn)
 | ||
|  | 	     buf-lines
 | ||
|  | 	     t
 | ||
|  | 	     ttl-trn))
 | ||
|  |     ))
 | ||
|  | 
 | ||
|  | (defun ttl-contains (pnt)
 | ||
|  |   "Run `rst-Ttl-contains' on current buffer comparing first title with point."
 | ||
|  |   (interactive "d")
 | ||
|  |   (rst-Ttl-contains (car (rst-all-ttls-compute)) pnt))
 | ||
|  | 
 | ||
|  | (ert-deftest rst-Ttl-contains ()
 | ||
|  |   "Test `rst-Ttl-contains'."
 | ||
|  |   (should-error (rst-Ttl-contains nil nil)
 | ||
|  | 		:type 'wrong-type-argument)
 | ||
|  | 
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | ===
 | ||
|  | \^@One
 | ||
|  | ===
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   0
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | \^@===
 | ||
|  | One
 | ||
|  | ===
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   0
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | ===
 | ||
|  | One
 | ||
|  | ===\^@
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   0
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | \^@One
 | ||
|  | ===
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   0
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | One
 | ||
|  | ===\^@
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   0
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "\^@
 | ||
|  | One
 | ||
|  | ===
 | ||
|  | "
 | ||
|  | 	   nil
 | ||
|  | 	   1
 | ||
|  | 	   t))
 | ||
|  |   (should (ert-equal-buffer-return
 | ||
|  | 	   '(ttl-contains nil)
 | ||
|  | 	   "
 | ||
|  | One
 | ||
|  | ===
 | ||
|  | \^@"
 | ||
|  | 	   nil
 | ||
|  | 	   -1
 | ||
|  | 	   t))
 | ||
|  |   )
 |