Author: junrue Date: Mon Nov 13 18:23:39 2006 New Revision: 394
Modified: trunk/src/tests/uitoolkit/border-layout-unit-tests.lisp trunk/src/tests/uitoolkit/flow-layout-unit-tests.lisp trunk/src/tests/uitoolkit/test-utils.lisp Log: implemented define-layout-test convenience macro
Modified: trunk/src/tests/uitoolkit/border-layout-unit-tests.lisp ============================================================================== --- trunk/src/tests/uitoolkit/border-layout-unit-tests.lisp (original) +++ trunk/src/tests/uitoolkit/border-layout-unit-tests.lisp Mon Nov 13 18:23:39 2006 @@ -39,43 +39,26 @@ (make-instance 'mock-widget :min-size *child-size-2*) (make-instance 'mock-widget :min-size *child-size-3*)))
-(define-test border-layout-test1 - ;; regions: all - ;; spacing: 0 - ;; margins: 0 - ;; - (let* ((layout (make-border-layout *all-border-kids*)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 45 80 5) (60 5 20 40) (0 5 20 40) (0 0 80 5) (20 5 40 40)))) - (assert-equal 80 (gfs:size-width size)) - (assert-equal 50 (gfs:size-height size)) - (validate-rects data expected-rects))) +(defvar *outer-border-kids* (list (make-instance 'mock-widget :min-size *child-size-1*) + (make-instance 'mock-widget :min-size *child-size-2*) + (make-instance 'mock-widget :min-size *child-size-1*) + (make-instance 'mock-widget :min-size *child-size-2*) + nil))
-(define-test border-layout-test2 - ;; regions: all but center - ;; spacing: 0 - ;; margins: 0 - ;; - (let* ((kids (append (butlast *all-border-kids*) '(nil))) - (layout (make-border-layout kids)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 15 40 5) (20 5 20 10) (0 5 20 10) (0 0 40 5)))) - (assert-equal 40 (gfs:size-width size)) - (assert-equal 20 (gfs:size-height size)) - (validate-rects data expected-rects))) +(defvar *center-border-kid* (list nil nil nil nil + (make-instance 'mock-widget :min-size *child-size-3*)))
-(define-test border-layout-test3 - ;; regions: center only - ;; spacing: 0 - ;; margins: 0 - ;; - (let* ((kids (append '(nil nil nil nil) (last *all-border-kids*))) - (layout (make-border-layout kids)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 40 40)))) - (assert-equal 40 (gfs:size-width size)) - (assert-equal 40 (gfs:size-height size)) - (validate-rects data expected-rects))) +(define-layout-test border-layout-test1 + -1 -1 80 50 + '((0 45 80 5) (60 5 20 40) (0 5 20 40) (0 0 80 5) (20 5 40 40)) + #'make-border-layout *all-border-kids*) + +(define-layout-test border-layout-test2 + -1 -1 40 20 + '((0 15 40 5) (20 5 20 10) (0 5 20 10) (0 0 40 5)) + #'make-border-layout *outer-border-kids*) + +(define-layout-test border-layout-test3 + -1 -1 40 40 + '((0 0 40 40)) + #'make-border-layout *center-border-kid*)
Modified: trunk/src/tests/uitoolkit/flow-layout-unit-tests.lisp ============================================================================== --- trunk/src/tests/uitoolkit/flow-layout-unit-tests.lisp (original) +++ trunk/src/tests/uitoolkit/flow-layout-unit-tests.lisp Mon Nov 13 18:23:39 2006 @@ -40,222 +40,72 @@ (make-instance 'mock-widget :min-size *child-size-1*) (make-instance 'mock-widget :min-size *child-size-2*)))
-(define-test flow-layout-test1 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal))) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 20 10) (20 0 20 10) (40 0 20 10)))) - (assert-equal 60 (gfs:size-width size)) - (assert-equal 10 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test2 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical))) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 20 10) (0 10 20 10) (0 20 20 10)))) - (assert-equal 20 (gfs:size-width size)) - (assert-equal 30 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test3 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: restricted width, unrestricted height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal :wrap))) - (data (gfw::compute-layout layout *mock-container* 45 -1)) - (expected-rects '((0 0 20 10) (20 0 20 10) (0 10 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test4 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width, restricted height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical :wrap))) - (data (gfw::compute-layout layout *mock-container* -1 25)) - (expected-rects '((0 0 20 10) (0 10 20 10) (20 0 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test5 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: restricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal :wrap))) - (data (gfw::compute-layout layout *mock-container* 45 18)) - (expected-rects '((0 0 20 10) (20 0 20 10) (0 10 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test6 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: restricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical :wrap))) - (data (gfw::compute-layout layout *mock-container* 30 25)) - (expected-rects '((0 0 20 10) (0 10 20 10) (20 0 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test7 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 4 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal) 4)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 20 10) (24 0 20 10) (48 0 20 10)))) - (assert-equal 68 (gfs:size-width size)) - (assert-equal 10 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test8 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 4 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical) 4)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 20 10) (0 14 20 10) (0 28 20 10)))) - (assert-equal 20 (gfs:size-width size)) - (assert-equal 38 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test9 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 4 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: restricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal :wrap) 4)) - (data (gfw::compute-layout layout *mock-container* 45 18)) - (expected-rects '((0 0 20 10) (24 0 20 10) (0 14 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test10 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: enabled - ;; spacing: 4 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: restricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical :wrap) 4)) - (data (gfw::compute-layout layout *mock-container* 30 25)) - (expected-rects '((0 0 20 10) (0 14 20 10) (24 0 20 10)))) - (validate-rects data expected-rects))) - -(define-test flow-layout-test11 - ;; orient: horizontal - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 3, top-margin: 3, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:horizontal) 0 3 3)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((3 3 20 10) (23 3 20 10) (43 3 20 10)))) - (assert-equal 63 (gfs:size-width size)) - (assert-equal 13 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test12 - ;; orient: vertical - ;; normalize: disabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 3, bottom-margin: 3 - ;; container: unrestricted width and height - ;; kids: uniform - ;; - (let* ((layout (make-flow-layout *flow-uniform-kids* '(:vertical) 0 0 0 3 3)) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 20 10) (0 10 20 10) (0 20 20 10)))) - (assert-equal 23 (gfs:size-width size)) - (assert-equal 33 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test13 - ;; orient: horizontal - ;; normalize: enabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: mixed - ;; - (let* ((layout (make-flow-layout *flow-mixed-kids* '(:horizontal :normalize))) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 25 10) (25 0 25 10) (50 0 25 10)))) - (assert-equal 75 (gfs:size-width size)) - (assert-equal 10 (gfs:size-height size)) - (validate-rects data expected-rects))) - -(define-test flow-layout-test14 - ;; orient: vertical - ;; normalize: enabled - ;; wrap: disabled - ;; spacing: 0 - ;; left-margin: 0, top-margin: 0, right-margin: 0, bottom-margin: 0 - ;; container: unrestricted width and height - ;; kids: mixed - ;; - (let* ((layout (make-flow-layout *flow-mixed-kids* '(:vertical :normalize))) - (size (gfw::compute-size layout *mock-container* -1 -1)) - (data (gfw::compute-layout layout *mock-container* -1 -1)) - (expected-rects '((0 0 25 10) (0 10 25 10) (0 20 25 10)))) - (assert-equal 25 (gfs:size-width size)) - (assert-equal 30 (gfs:size-height size)) - (validate-rects data expected-rects))) +(define-layout-test flow-layout-test1 + -1 -1 60 10 + '((0 0 20 10) (20 0 20 10) (40 0 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal)) + +(define-layout-test flow-layout-test2 + -1 -1 20 30 + '((0 0 20 10) (0 10 20 10) (0 20 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical)) + +(define-layout-test flow-layout-test3 + 45 -1 40 20 + '((0 0 20 10) (20 0 20 10) (0 10 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal :wrap)) + +(define-layout-test flow-layout-test4 + -1 25 20 20 + '((0 0 20 10) (0 10 20 10) (20 0 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical :wrap)) + +(define-layout-test flow-layout-test5 + 45 18 40 20 + '((0 0 20 10) (20 0 20 10) (0 10 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal :wrap)) + +(define-layout-test flow-layout-test6 + 30 25 40 20 + '((0 0 20 10) (0 10 20 10) (20 0 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical :wrap)) + +(define-layout-test flow-layout-test7 + -1 -1 68 10 + '((0 0 20 10) (24 0 20 10) (48 0 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal) 4) + +(define-layout-test flow-layout-test8 + -1 -1 20 38 + '((0 0 20 10) (0 14 20 10) (0 28 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical) 4) + +(define-layout-test flow-layout-test9 + 45 18 0 0 + '((0 0 20 10) (24 0 20 10) (0 14 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal :wrap) 4) + +(define-layout-test flow-layout-test10 + 30 25 0 0 + '((0 0 20 10) (0 14 20 10) (24 0 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical :wrap) 4) + +(define-layout-test flow-layout-test11 + -1 -1 63 13 + '((3 3 20 10) (23 3 20 10) (43 3 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:horizontal) 0 3 3) + +(define-layout-test flow-layout-test12 + -1 -1 23 33 + '((0 0 20 10) (0 10 20 10) (0 20 20 10)) + #'make-flow-layout *flow-uniform-kids* '(:vertical) 0 0 0 3 3) + +(define-layout-test flow-layout-test13 + -1 -1 75 10 + '((0 0 25 10) (25 0 25 10) (50 0 25 10)) + #'make-flow-layout *flow-mixed-kids* '(:horizontal :normalize)) + +(define-layout-test flow-layout-test14 + -1 -1 25 30 + '((0 0 25 10) (0 10 25 10) (0 20 25 10)) + #'make-flow-layout *flow-mixed-kids* '(:vertical :normalize))
Modified: trunk/src/tests/uitoolkit/test-utils.lisp ============================================================================== --- trunk/src/tests/uitoolkit/test-utils.lisp (original) +++ trunk/src/tests/uitoolkit/test-utils.lisp Mon Nov 13 18:23:39 2006 @@ -95,3 +95,17 @@ (assert-equal (fourth expected) (gfs:size-height sz-a)))) expected-rects actual-rects))) + +(defmacro define-layout-test (name width-hint height-hint + expected-width expected-height expected-rects + factory &rest factory-args) + (let ((layout (gensym)) + (size (gensym)) + (data (gensym))) + `(define-test ,name + (let* ((,layout (apply ,factory (list ,@factory-args))) + (,size (gfw::compute-size ,layout *mock-container* ,width-hint ,height-hint)) + (,data (gfw::compute-layout ,layout *mock-container* ,width-hint ,height-hint))) + (assert-equal ,expected-width (gfs::size-width ,size)) + (assert-equal ,expected-height (gfs::size-height ,size)) + (validate-rects ,data ,expected-rects)))))