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.
		
		
		
		
			
				
					917 lines
				
				12 KiB
			
		
		
			
		
	
	
					917 lines
				
				12 KiB
			| 
											8 years ago
										 | ;; Tests for various functions around shifting text  -*- lexical-binding: t -*-
 | ||
|  | 
 | ||
|  | (add-to-list 'load-path ".")
 | ||
|  | (load "init" nil t)
 | ||
|  | (init-rst-ert t)
 | ||
|  | 
 | ||
|  | (ert-deftest shift-asserts ()
 | ||
|  |   "Check some assertions."
 | ||
|  |   (should (equal ert-Buf-point-char "\^@"))
 | ||
|  |   (should (equal ert-Buf-mark-char "\^?"))
 | ||
|  |   )
 | ||
|  | 
 | ||
|  | (defun string-insert (s col char)
 | ||
|  |   "Insert CHAR at position COL in S. Return S."
 | ||
|  |   (let ((l (length s))
 | ||
|  | 	(c (char-to-string char)))
 | ||
|  |     (if (<= l col)
 | ||
|  | 	(concat s (make-string (- col l) ? ) c)
 | ||
|  |       (concat (substring s 0 col) c (substring s (1+ col))))))
 | ||
|  | 
 | ||
|  | (defun line-tabs ()
 | ||
|  |   "Wrapper to call `rst-line-tabs' creating a readable result."
 | ||
|  |   (let ((tabs (rst-line-tabs))
 | ||
|  | 	(s "")
 | ||
|  | 	(cnt 0)
 | ||
|  | 	c)
 | ||
|  |     (delete-region (point-min) (point-max))
 | ||
|  |     (dolist (tab tabs)
 | ||
|  |       (setq c (+ ?A cnt))
 | ||
|  |       (if (cdr tab) (setq c (+ c (- ?a ?A))))
 | ||
|  |       (setq s (string-insert s (car tab) c))
 | ||
|  |       (setq cnt (1+ cnt)))
 | ||
|  |     (insert "\n" s)))
 | ||
|  | 
 | ||
|  | (ert-deftest rst-line-tabs ()
 | ||
|  |   "Tests for `rst-line-tabs'."
 | ||
|  |   (let ((rst-indent-width 2)
 | ||
|  | 	(rst-indent-field 2)
 | ||
|  | 	(rst-indent-literal-normal 3)
 | ||
|  | 	(rst-indent-literal-minimized 2)
 | ||
|  | 	(rst-indent-comment 3))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "\^@"
 | ||
|  | 	     "
 | ||
|  | "
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | * a\^@"
 | ||
|  | 	     "
 | ||
|  | B a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |   * b\^@"
 | ||
|  | 	     "
 | ||
|  |   B a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |     XV. c\^@"
 | ||
|  | 	     "
 | ||
|  |     B   a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | * \^@"
 | ||
|  | 	     "
 | ||
|  | A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |   *\tb\^@"
 | ||
|  | 	     "
 | ||
|  |   B     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "Some para\^@"
 | ||
|  | 	     "
 | ||
|  | A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "  A quoted block\^@"
 | ||
|  | 	     "
 | ||
|  |   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: Content on same line\^@"
 | ||
|  | 	     "
 | ||
|  | C b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: \^@"
 | ||
|  | 	     "
 | ||
|  | B a"
 | ||
|  | 	     ))
 | ||
|  |     (let ((rst-indent-field 0))
 | ||
|  |       (should (ert-equal-buffer
 | ||
|  | 	       '(line-tabs)
 | ||
|  | 	       "
 | ||
|  | :Field: Content on same line\^@"
 | ||
|  | 	       "
 | ||
|  | B       a"
 | ||
|  | 	       ))
 | ||
|  |       (should (ert-equal-buffer
 | ||
|  | 	       '(line-tabs)
 | ||
|  | 	       "
 | ||
|  | :Field: \^@"
 | ||
|  | 	       "
 | ||
|  | B       a"
 | ||
|  | 	       )))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: Content on same line\^@"
 | ||
|  | 	     "
 | ||
|  | C  b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: \^@"
 | ||
|  | 	     "
 | ||
|  | B  a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Content on same line\^@"
 | ||
|  | 	     "
 | ||
|  | D  c     b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir::\^@"
 | ||
|  | 	     "
 | ||
|  | C  b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT] citation\^@"
 | ||
|  | 	     "
 | ||
|  | C  b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [#FN] Footnote\^@"
 | ||
|  | 	     "
 | ||
|  | C  b     a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]\^@"
 | ||
|  | 	     "
 | ||
|  | B  a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | Some text::\^@"
 | ||
|  | 	     "
 | ||
|  | B a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | ::\^@"
 | ||
|  | 	     "
 | ||
|  | B  a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |   ::\^@"
 | ||
|  | 	     "
 | ||
|  |   B  a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  | .. First comment\^@"
 | ||
|  | 	     "
 | ||
|  | B  a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |     XV. c::\^@"
 | ||
|  | 	     "
 | ||
|  |     C   b a"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(line-tabs)
 | ||
|  | 	     "
 | ||
|  |       :f: val::\^@"
 | ||
|  | 	     "
 | ||
|  |       D c b a"
 | ||
|  | 	     ))
 | ||
|  |   ))
 | ||
|  | 
 | ||
|  | (defun compute-tabs ()
 | ||
|  |   "Wrapper to call `rst-compute-tabs' creating a readable result."
 | ||
|  |   (let ((tabs (rst-compute-tabs (point)))
 | ||
|  | 	(s "")
 | ||
|  | 	(cnt 0))
 | ||
|  |     (delete-region (point-min) (point-max))
 | ||
|  |     (dolist (tab tabs)
 | ||
|  |       (setq s (string-insert s tab (+ ?A cnt)))
 | ||
|  |       (setq cnt (1+ cnt)))
 | ||
|  |     (insert "\n" s)))
 | ||
|  | 
 | ||
|  | (ert-deftest rst-compute-tabs ()
 | ||
|  |   "Tests for `rst-compute-tabs'."
 | ||
|  |   (let ((rst-indent-width 2)
 | ||
|  | 	(rst-indent-field 2)
 | ||
|  | 	(rst-indent-literal-normal 3)
 | ||
|  | 	(rst-indent-literal-minimized 2)
 | ||
|  | 	(rst-indent-comment 3))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "\^@"
 | ||
|  | 	     "
 | ||
|  | "
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |   * b
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |   * b
 | ||
|  |     XV. c
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D C B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |     XV. c
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D C B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * 
 | ||
|  |     XV. c
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C   B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |   * b
 | ||
|  |     XV. c
 | ||
|  |   * d
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |   * b
 | ||
|  |     XV. c
 | ||
|  |   * d
 | ||
|  | * e
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  |   * a
 | ||
|  |     * b
 | ||
|  |       XV. c
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  |   D C B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |   *\tb
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "* a
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "  * a
 | ||
|  |     * b
 | ||
|  |       XV. c
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  |   D C B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "Some para
 | ||
|  | 
 | ||
|  |   A quoted block
 | ||
|  | 
 | ||
|  |      Quoting again
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: Content on same line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: Content on same line
 | ||
|  |    but continued differently
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D CA    B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: Content on same line
 | ||
|  |             but continued differently
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D C     B   A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field:
 | ||
|  | 
 | ||
|  |    Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C BA"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | :Field: Starts on same line
 | ||
|  | 
 | ||
|  |   Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C A     B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: Content on same line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: 
 | ||
|  | 
 | ||
|  |    Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: 
 | ||
|  | 
 | ||
|  |      Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. dir:: Same
 | ||
|  | 
 | ||
|  |      Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D  C A   B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Content on same line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D  C     B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir::
 | ||
|  | 
 | ||
|  |    Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  A     B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir::
 | ||
|  | 
 | ||
|  |      Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D  C A   B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |      Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E  D A   C     B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |     :par: val
 | ||
|  | 
 | ||
|  |       Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E  DC A   B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir::
 | ||
|  | 
 | ||
|  |     :par: val
 | ||
|  | 
 | ||
|  |    Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  A     B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |    :f: val
 | ||
|  | 
 | ||
|  |     Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E  DAC B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |    :f: val
 | ||
|  | 
 | ||
|  |    Content on next line
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D  A C B"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |    :f: val
 | ||
|  | 
 | ||
|  |    * Item
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |    :f: val
 | ||
|  | 
 | ||
|  |    * Item
 | ||
|  | 
 | ||
|  |      1. Enumerated
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | D  C B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT] citation
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [#FN] Footnote
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B     A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]
 | ||
|  | 
 | ||
|  |    citation
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]
 | ||
|  | 
 | ||
|  |      citation
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C  B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]
 | ||
|  | 
 | ||
|  |      citation
 | ||
|  | 
 | ||
|  |    .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |       :f: val
 | ||
|  | 
 | ||
|  |       * Item
 | ||
|  | 
 | ||
|  | 	1. Enumerated
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E  D  C B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | Some text::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | No text
 | ||
|  | 
 | ||
|  | ::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | No text
 | ||
|  | 
 | ||
|  |   ::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | C B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]
 | ||
|  | 
 | ||
|  |      citation
 | ||
|  | 
 | ||
|  |    .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |       :f: val
 | ||
|  | 
 | ||
|  |       No text
 | ||
|  | 
 | ||
|  | 	::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E  D  C B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. First comment
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | B  A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | * a
 | ||
|  |     XV. c::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | E D C   B A"
 | ||
|  | 	     ))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(compute-tabs)
 | ||
|  | 	     "
 | ||
|  | .. [CIT]
 | ||
|  | 
 | ||
|  |      citation
 | ||
|  | 
 | ||
|  |    .. |sub| dir:: Same
 | ||
|  | 
 | ||
|  |       :f: val::
 | ||
|  | \^@"
 | ||
|  | 	     "
 | ||
|  | F  E  D C B A"
 | ||
|  | 	     ))
 | ||
|  |   ))
 | ||
|  | 
 | ||
|  | (ert-deftest rst-shift-region-right ()
 | ||
|  |   "Tests for `rst-shift-region' to the right."
 | ||
|  |   (let ((rst-indent-width 2)) ; Set relevant variables
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "
 | ||
|  | \^@a
 | ||
|  | \^?"
 | ||
|  | 	     "
 | ||
|  | \^@  a
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "
 | ||
|  | \^@  a
 | ||
|  | \^?"
 | ||
|  | 	     "
 | ||
|  | \^@    a
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "\^@
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^?"
 | ||
|  | 	     "\^@
 | ||
|  |   a
 | ||
|  |   b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |      a
 | ||
|  |      b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |       a
 | ||
|  |       b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 1)
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^@"
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^@"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 2)
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^@"
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  |      a
 | ||
|  |      b
 | ||
|  | \^@"
 | ||
|  | 	     t))
 | ||
|  |     ))
 | ||
|  | 
 | ||
|  | (ert-deftest rst-shift-region-left ()
 | ||
|  |   "Tests for `rst-shift-region' to the left."
 | ||
|  |   (let ((rst-indent-width 2)) ; Set relevant variables
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |      a
 | ||
|  |      b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "
 | ||
|  | \^@  a
 | ||
|  | \^?"
 | ||
|  | 	     "
 | ||
|  | \^@a
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "
 | ||
|  | \^@    a
 | ||
|  | \^?"
 | ||
|  | 	     "
 | ||
|  | \^@  a
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "\^@
 | ||
|  |   a
 | ||
|  |   b
 | ||
|  | \^?"
 | ||
|  | 	     "\^@
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  | \^@
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |       a
 | ||
|  |       b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^@"
 | ||
|  | 	     "*  x
 | ||
|  | \^?
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^@"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region 0)
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |       a
 | ||
|  |       b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  | a
 | ||
|  | b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -1)
 | ||
|  | 	     "\^@*  x
 | ||
|  |    *  y
 | ||
|  | 
 | ||
|  |       a
 | ||
|  |       b
 | ||
|  | \^?"
 | ||
|  | 	     "\^@*  x
 | ||
|  |    *  y
 | ||
|  | 
 | ||
|  |       a
 | ||
|  |       b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     (should (ert-equal-buffer
 | ||
|  | 	     '(rst-shift-region -2)
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |         a
 | ||
|  |         b
 | ||
|  | \^?"
 | ||
|  | 	     "*  x
 | ||
|  |    *  y
 | ||
|  | \^@
 | ||
|  |    a
 | ||
|  |    b
 | ||
|  | \^?"
 | ||
|  | 	     t))
 | ||
|  |     ))
 |