# This file is a Tcl script to test out the procedures in the file
# tkBorder.c. It is organized in the standard fashion for Tcl tests.
#
# Copyright (c) 1998 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
# RCS: @(#) $Id: border.test,v 1.8 2008/07/22 11:55:57 aniap Exp $
package require tcltest 2.2
namespace import ::tcltest::*
eval tcltest::configure $argv
tcltest::loadTestedCommands
test border-1.1 {Tk_AllocBorderFromObj - converting internal reps} -constraints {
testborder
} -body {
set x orange
lindex $x 0
button .b1 -bg $x -text .b1
lindex $x 0
testborder orange
} -cleanup {
destroy .b1
} -result {{1 0}}
test border-1.2 {Tk_AllocBorderFromObj - discard stale border} -constraints {
testborder
} -setup {
set result {}
} -body {
set x orange
button .b1 -bg $x -text First
destroy .b1
lappend result [testborder orange]
button .b2 -bg $x -text Second
lappend result [testborder orange]
} -cleanup {
destroy .b1 .b2
} -result {{} {{1 1}}}
test border-1.3 {Tk_AllocBorderFromObj - reuse existing border} -constraints {
testborder
} -setup {
set result {}
} -body {
set x orange
button .b1 -bg $x -text First
lappend result [testborder orange]
button .b2 -bg $x -text Second
pack .b1 .b2 -side top
lappend result [testborder orange]
} -cleanup {
destroy .b1 .b2
} -result {{{1 1}} {{2 1}}}
test border-1.4 {Tk_AllocBorderFromObj - try other borders in list} -constraints {
testborder pseudocolor8
} -setup {
toplevel .t -visual {pseudocolor 8} -colormap new
wm geom .t +0+0
set result {}
} -body {
set x purple
button .b1 -bg $x -text First
pack .b1 -side top
lappend result [testborder purple]
button .t.b -bg $x -text Second
pack .t.b -side top
lappend result [testborder purple]
button .b2 -bg $x -text Third
pack .b2 -side top
lappend result [testborder purple]
} -cleanup {
destroy .b1 .b2 .t
} -result {{{1 1}} {{1 1} {1 0}} {{1 0} {2 1}}}
test border-2.1 {Tk_Free3DBorder - reference counts} -constraints {
testborder pseudocolor8
} -setup {
toplevel .t -visual {pseudocolor 8} -colormap new
wm geom .t +0+0
set result {}
} -body {
set x purple
button .b1 -bg $x -text First
pack .b1 -side top
button .t.b -bg $x -text Second
pack .t.b -side top
button .b2 -bg $x -text Third
pack .b2 -side top
lappend result [testborder purple]
destroy .b1
lappend result [testborder purple]
destroy .b2
lappend result [testborder purple]
destroy .t.b
lappend result [testborder purple]
} -cleanup {
destroy .b1 .b2 .t
} -result {{{1 0} {2 1}} {{1 0} {1 1}} {{1 0}} {}}
test border-2.2 {Tk_Free3DBorder - unlinking from list} -constraints {
testborder pseudocolor8
} -setup {
toplevel .t -visual {pseudocolor 8} -colormap new
wm geom .t +0+0
toplevel .t2 -visual {pseudocolor 8} -colormap new
toplevel .t3 -visual {pseudocolor 8} -colormap new
set result {}
} -body {
set x purple
button .b -bg $x -text .b1
button .t.b1 -bg $x -text .t.b1
button .t.b2 -bg $x -text .t.b2
button .t2.b1 -bg $x -text .t2.b1
button .t2.b2 -bg $x -text .t2.b2
button .t2.b3 -bg $x -text .t2.b3
button .t3.b1 -bg $x -text .t3.b1
button .t3.b2 -bg $x -text .t3.b2
button .t3.b3 -bg $x -text .t3.b3
button .t3.b4 -bg $x -text .t3.b4
lappend result [testborder purple]
destroy .t2
lappend result [testborder purple]
destroy .b
lappend result [testborder purple]
destroy .t3
lappend result [testborder purple]
destroy .t
lappend result [testborder purple]
} -cleanup {
destroy .b .t2 .t3 .t
} -result {{{4 1} {3 0} {2 0} {1 0}} {{4 1} {2 0} {1 0}} {{4 1} {2 0}} {{2 0}} {}}
test border-3.1 {FreeBorderObjProc} -constraints {
testborder
} -setup {
set result {}
} -body {
set x [format purple]
button .b -bg $x -text .b1
set y [format purple]
.b configure -bg $y
set z [format purple]
.b configure -bg $z
lappend result [testborder purple]
set x red
lappend result [testborder purple]
set z 32
lappend result [testborder purple]
destroy .b
lappend result [testborder purple]
set y bogus
return $result
} -cleanup {
destroy .b
} -result {{{1 3}} {{1 2}} {{1 1}} {}}
test border-4.1 {Tk_GetReliefFromObj} -body {
button .b -relief flat
.b cget -relief
} -cleanup {
destroy .b
} -result {flat}
test border-4.2 {Tk_GetReliefFromObj} -body {
button .b -relief groove
.b cget -relief
} -cleanup {
destroy .b
} -result {groove}
test border-4.3 {Tk_GetReliefFromObj} -body {
button .b -relief raised
.b cget -relief
} -cleanup {
destroy .b
} -result {raised}
test border-4.4 {Tk_GetReliefFromObj} -body {
button .b -relief ridge
.b cget -relief
} -cleanup {
destroy .b
} -result {ridge}
test border-4.5 {Tk_GetReliefFromObj} -body {
button .b -relief solid
.b cget -relief
} -cleanup {
destroy .b
} -result {solid}
test border-4.6 {Tk_GetReliefFromObj} -body {
button .b -relief sunken
.b cget -relief
} -cleanup {
destroy .b
} -result {sunken}
test border-4.7 {Tk_GetReliefFromObj - error} -body {
button .b -relief upanddown
} -cleanup {
destroy .b
} -returnCodes error -result {bad relief "upanddown": must be flat, groove, raised, ridge, solid, or sunken}
# cleanup
cleanupTests
return