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.
		
		
		
		
		
			
		
			
				
					
					
						
							361 lines
						
					
					
						
							10 KiB
						
					
					
				
			
		
		
	
	
							361 lines
						
					
					
						
							10 KiB
						
					
					
				| ;; 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)) | |
|   )
 | |
| 
 |