3 (5am:in-suite :qt.suite)
5 (5am:test (variant-string :depends-on qstring)
6 "Test qt:variant <-> string conversion."
7 ;; (5am:for-all ((string (5am:gen-string)))
8 (5am:for-all ((string (5am:gen-one-element "foo"
10 (5am:is (eq t (cxx:= string (qt:make-variant string))))
11 (5am:is (string= string (qt:value (qt:make-variant string))))))
14 "Test qt:variant <-> string conversion."
15 (5am:for-all ((integer (5am:gen-integer)))
16 (5am:is (eq t (cxx:= integer (qt:make-variant integer))))
17 (5am:is (= integer (qt:value (qt:make-variant integer))))))
19 (5am:test lisp-variant
20 "Test qt:variant <-> lisp object conversion."
21 (5am:for-all ((object (5am:gen-one-element #(1 2 3)
23 (5am:is (eq object (qt:value (qt:make-lisp-variant object))))))
26 (5am:test variant-color
27 "The C++ overload resolution for QColor:operator QVariant()."
28 (let* ((color (make-instance 'qt:color))
29 (variant1 (qt:make-variant color))
30 (variant2 (qt:make-variant color)))
31 (5am:is (eq t (cxx:= variant1 variant2)))))
35 (5am:is (eq nil (qt:variant-boundp (qt:make-variant)))))
37 (5am:test setf-variant-value
39 (let ((variant (qt:make-variant)))
40 (5am:is (= 1 (setf (qt:value variant) 1)))
41 (5am:is (= 1 (qt:value variant)))))
43 (5am:test variant-list
44 (let ((list (qt:make-variant (map 'vector #'qt:make-variant
46 (5am:is (string= "QVariantList"
47 (cxx:type-name list)))))
49 (5am:test exact-int-type-match
50 "Test overload resolution exact match long vs. int."
51 (5am:is (enum= qt:variant.+uint+
52 (cxx:type (qt:make-variant 1))))
53 (5am:is (enum= qt:variant.+int+
54 (cxx:type (qt:make-variant -1)))))
55 ;; on 32 bit sizeof(long) == sizeof(int) thus not test for that.
57 (5am:test variant-color
58 "Test QColor variant."
59 (let ((color (make-instance 'qt:color :arg0 qt:+green+)))
60 (5am:is (string= (cxx:name color)
61 (cxx:name (qt:value (qt:make-variant color)))))))