diff options
Diffstat (limited to 'tests/style.test')
-rw-r--r-- | tests/style.test | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/tests/style.test b/tests/style.test new file mode 100644 index 0000000..f6c0482 --- /dev/null +++ b/tests/style.test @@ -0,0 +1,189 @@ +# Commands covered: treectrl's widget command style +# +# This file contains a collection of tests for the style widget command of +# the tktreectrl extension. Sourcing this file into Tcl runs the tests and +# generates output for errors. No output means no errors were found. +# +# Copyright (c) 2000 by Scriptics Corporation. +# Copyright (c) 2002 by Christian Krone. +# +# See the file "license.terms" for information on usage and redistribution +# of this file, and for a DISCLAIMER OF ALL WARRANTIES. +# +# CVS: @(#) $Id: style.test,v 1.1 2002/12/30 21:42:22 krischan Exp $ + +if {[lsearch [namespace children] ::tcltest] == -1} { + package require tcltest 2 + namespace import ::tcltest::* +} + +package require Tk +package_require treectrl + +test style-0.1 {some needed preparations} -body { + pack [treectrl .t] +} -result {} + +test style-0.1 {some other preparations} -body { + .t element create eBorder border + .t element create eText text + .t element create eImage image + .t element create eRect rect + list +} -result {} + +test style-1.1 {style: missing args} -body { + .t style +} -returnCodes error -result {wrong # args: should be ".t style command ?arg arg...?"} + +test style-1.2 {style: invalid command} -body { + .t style foo +} -returnCodes error -result {bad command "foo": must be cget, configure, create, delete, elements, layout, or names} + +test style-1.3 {style names: no style exists yet} -body { + .t style names +} -result {} + +test style-2.1 {style create: missing args} -body { + .t style create +} -returnCodes error -result {wrong # args: should be ".t style create name ?option value...?"} + +test style-2.2 {style create: invalid option} -body { + .t style create testStyle -foo bar +} -returnCodes error -result {unknown option "-foo"} + +test style-2.3 {style create} -body { + .t style create testStyle +} -result {testStyle} + +test style-2.4 {style create: already existing style} -body { + .t style create testStyle +} -returnCodes error -result {style "testStyle" already exists} + +test style-3.1 {style configure: invalid option} -body { + .t style configure testStyle -foo bar +} -returnCodes error -result {unknown option "-foo"} + +test style-3.2 {style configure: all options} -body { + .t style configure testStyle +} -result {{-orient {} {} horizontal horizontal}} + +test style-3.3 {style configure: the only option} -body { + .t style configure testStyle -orient +} -result {-orient {} {} horizontal horizontal} + +test style-3.4 {style configure: invalid option -orient} -body { + .t style configure testStyle -orient diagonal +} -returnCodes error -result {bad orient "diagonal": must be horizontal or vertical} + +test style-3.5 {style configure/cget: option -orient} -body { + .t style configure testStyle -orient vertical + .t style cget testStyle -orient +} -result {vertical} + +test style-4.1 {style delete: unknown style} -body { + .t style delete testStyle2 +} -returnCodes error -result {style "testStyle2" doesn't exist} + +test style-4.2 {style delete: unknown style} -body { + .t style names +} -result {testStyle} + +test style-4.3 {style delete} -body { + .t style delete testStyle +} -result {} + +test style-4.4 {style names: no style defined} -body { + .t style names +} -result {} + +test style-5.1 {style elements: missing args} -body { + .t style elements +} -returnCodes error -result {wrong # args: should be ".t style elements name ?element element...?"} + +test style-5.2 {style elements: unknown style} -body { + .t style elements testStyle +} -returnCodes error -result {style "testStyle" doesn't exist} + +test style-5.3 {style elements: no element yet} -body { + .t style create testStyle + .t style elements testStyle +} -result {} + +test style-5.4 {style elements: empty element list} -body { + .t style elements testStyle {} +} -result {} + +test style-5.5 {style elements: add some elements} -body { + .t style elements testStyle {eBorder eImage eText} + .t style elements testStyle +} -result {eBorder eImage eText} + +test style-6.1 {style layout: missing args} -body { + .t style layout +} -returnCodes error -result {wrong # args: should be ".t style layout name element ?option? ?value? ?option value ...?"} + +test style-6.2 {style layout: no options specified} -body { + .t style layout testStyle eText +} -result {-padw 0 -padn 0 -pade 0 -pads 0 -ipadw 0 -ipadn 0 -ipade 0 -ipads 0 -expand {} -iexpand {} -detach no -squeeze {} -union {}} + +test style-6.3 {style layout: option -pads} -body { + .t style layout testStyle eText -pads 3 + .t style layout testStyle eText -pads +} -result {3} + +test style-6.4 {style layout: option -expand} -body { + .t style layout testStyle eText -expand "hello world" +} -returnCodes error -result {bad expand value "hello world": must be a string containing zero or more of n, e, s, and w} + +test style-6.5 {style layout: option -expand} -body { + .t style layout testStyle eText -expand ew + .t style layout testStyle eText -expand +} -result {we} + +test style-6.6 {style layout: option -squeeze} -body { + .t style layout testStyle eText -squeeze xyzzy +} -returnCodes error -result {bad squeeze value "xyzzy": must be a string containing zero or more of x and y} + +test style-6.7 {style layout: option -squeeze} -body { + .t style layout testStyle eText -squeeze xy + .t style layout testStyle eText -squeeze +} -result {xy} + +test style-6.8 {style layout: option -union invalid list} -body { + .t style layout testStyle eText -union "\{" +} -returnCodes error -result {unmatched open brace in list} + +test style-6.9 {style layout: option -union unknown elements} -body { + .t style layout testStyle eText -union {foo bar} +} -returnCodes error -result {element "foo" doesn't exist} + +test style-6.10 {style layout: option -union element not in style} -body { + .t style layout testStyle eText -union {eBorder eRect} +} -returnCodes error -result {style testStyle does not use element eRect} + +test style-6.11 {style layout: option -union with itself} -body { + .t style layout testStyle eText -union {eBorder eText} +} -returnCodes error -result {element eText can't form union with itself} + +test style-6.12 {style layout: option -union} -body { + .t style layout testStyle eText -union {eBorder eImage} + .t style layout testStyle eText -union +} -result {eBorder eImage} + +test style-6.13 {style layout: option invalid -detach} -body { + .t style layout testStyle eText -detach {x y} +} -returnCodes error -result {expected boolean value but got "x y"} + +test style-6.14 {style layout: option -detach} -body { + .t style layout testStyle eText -detach true + .t style layout testStyle eText -detach +} -result {1} + +test style-99.1 {some needed cleanup} -body { + destroy .t +} -result {} + +# cleanup +::tcltest::cleanupTests +return |