123 lines
4.1 KiB
Common Lisp
123 lines
4.1 KiB
Common Lisp
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; test suite for cl-ansi-text
|
|
|
|
(defpackage :cl-ansi-text-test
|
|
(:use :common-lisp
|
|
:cl-user
|
|
:cl-ansi-text
|
|
:fiveam))
|
|
|
|
(in-package :cl-ansi-text-test)
|
|
(use-package :fiveam)
|
|
(use-package :cl-ansi-text)
|
|
|
|
(def-suite test-suite
|
|
:description "test suite.")
|
|
|
|
(in-suite test-suite)
|
|
|
|
|
|
(test basic-color-strings
|
|
"Test the basic stuff"
|
|
(is (equal '(#\Esc #\[ #\3 #\1 #\m)
|
|
(cl-ansi-text::build-control-string :red :unset :foreground)))
|
|
(is (equal '(#\Esc #\[ #\4 #\1 #\m)
|
|
(cl-ansi-text::build-control-string :red :unset :background)))
|
|
(is (equal '(#\Esc #\[ #\4 #\2 #\; #\1 #\m)
|
|
(cl-ansi-text::build-control-string :green :bright :background))))
|
|
|
|
(test enabled-connectivity
|
|
"Test *enabled*'s capability"
|
|
(is (equal '(#\Esc #\[ #\3 #\1 #\m)
|
|
(let ((*enabled* t))
|
|
(concatenate
|
|
'list
|
|
(cl-ansi-text:make-color-string :red)))))
|
|
(is (equal '()
|
|
(let ((*enabled* nil))
|
|
(concatenate
|
|
'list
|
|
(cl-ansi-text:make-color-string :red)))))
|
|
(is (equal "hi"
|
|
(let ((*enabled* nil))
|
|
(with-output-to-string (s)
|
|
(with-color (:red :stream s) (format s "hi"))))))
|
|
(is (equal '(#\Esc #\[ #\3 #\1 #\m #\T #\e #\s #\t #\! #\Esc #\[ #\0 #\m)
|
|
(concatenate
|
|
'list
|
|
(with-output-to-string (s)
|
|
(with-color (:red :stream s)
|
|
(format s "Test!")))))))
|
|
|
|
(test rgb-suite
|
|
"Test RGB colors"
|
|
(is (equal '(#\Esc #\[ #\3 #\8 #\; #\5 #\; #\2 #\1 #\4 #\m)
|
|
(cl-ansi-text::build-control-string #xFFAA00
|
|
:unset :foreground)))
|
|
(is (equal '(#\Esc #\[ #\4 #\8 #\; #\5 #\; #\2 #\1 #\4 #\m)
|
|
(cl-ansi-text::build-control-string #xFFAA00
|
|
:unset :background)))
|
|
(is (equal '(#\Esc #\[ #\4 #\8 #\; #\5 #\; #\1 #\6 #\m)
|
|
(cl-ansi-text::build-control-string #x000000
|
|
:unset :background)))
|
|
(is (equal '(#\Esc #\[ #\4 #\8 #\; #\5 #\; #\2 #\3 #\1 #\m)
|
|
(cl-ansi-text::build-control-string #xFFFFFF
|
|
:unset :background))))
|
|
|
|
(test color-named-functions
|
|
(let ((str "Test string."))
|
|
(is (equal (black str)
|
|
(with-output-to-string (s)
|
|
(with-color (:black :stream s)
|
|
(format s str)))))
|
|
(is (equal (red str)
|
|
(with-output-to-string (s)
|
|
(with-color (:red :stream s)
|
|
(format s str)))))
|
|
|
|
(is (equal (green str)
|
|
(with-output-to-string (s)
|
|
(with-color (:green :stream s)
|
|
(format s str)))))
|
|
|
|
(is (equal (yellow str)
|
|
(with-output-to-string (s)
|
|
(with-color (:yellow :stream s)
|
|
(format s str)))))
|
|
(is (equal (blue str)
|
|
(with-output-to-string (s)
|
|
(with-color (:blue :stream s)
|
|
(format s str)))))
|
|
(is (equal (magenta str)
|
|
(with-output-to-string (s)
|
|
(with-color (:magenta :stream s)
|
|
(format s str)))))
|
|
(is (equal (cyan str)
|
|
(with-output-to-string (s)
|
|
(with-color (:cyan :stream s)
|
|
(format s str)))))
|
|
(is (equal (white str)
|
|
(with-output-to-string (s)
|
|
(with-color (:white :stream s)
|
|
(format s str)))))))
|
|
|
|
(test color-named-functions-*enabled*
|
|
(let ((str "Other test string.")
|
|
(*enabled* nil))
|
|
(is
|
|
(equal str
|
|
(white (cyan (magenta (blue (yellow (green (red (black str))))))))))))
|
|
|
|
(defun run-tests ()
|
|
(let ((results (run 'test-suite)))
|
|
(explain! results)
|
|
(if (position-if #'(lambda (e)
|
|
(eq (type-of e)
|
|
'IT.BESE.FIVEAM::TEST-FAILURE
|
|
))
|
|
results)
|
|
nil
|
|
t)))
|
|
|
|
(defun ci-run ()
|
|
(run-tests))
|