# 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.1.2.3 1999/03/11 18:50:38 hershey Exp $ if {[lsearch [namespace children] ::test] == -1} { source [file join [pwd] [file dirname [info script]] defs.tcl] } if {[info commands testborder] != "testborder"} { puts "testborder command not available; skipping tests" return } eval destroy [winfo children .] wm geometry . {} raise . # Create a top-level with its own colormap (so we can test under # controlled conditions), then check to make sure that the visual # is color-mapped with 256 borders. If not, just skip this whole # test file. if [catch {toplevel .t -visual {pseudocolor 8} -colormap new}] { return } wm geom .t +0+0 if {[winfo depth .t] != 8} { destroy .t return } test border-1.1 {Tk_AllocBorderFromObj - converting internal reps} { set x orange lindex $x 0 destroy .b1 button .b1 -bg $x -text .b1 lindex $x 0 testborder orange } {{1 0}} test border-1.3 {Tk_AllocBorderFromObj - discard stale border} { set x orange destroy .b1 .b2 button .b1 -bg $x -text First destroy .b1 set result {} lappend result [testborder orange] button .b2 -bg $x -text Second lappend result [testborder orange] } {{} {{1 1}}} test border-1.2 {Tk_AllocBorderFromObj - reuse existing border} { set x orange destroy .b1 .b2 button .b1 -bg $x -text First set result {} lappend result [testborder orange] button .b2 -bg $x -text Second pack .b1 .b2 -side top lappend result [testborder orange] } {{{1 1}} {{2 1}}} test border-1.4 {Tk_AllocBorderFromObj - try other borders in list} { set x purple destroy .b1 .b2 .t.b button .b1 -bg $x -text First pack .b1 -side top set result {} 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] } {{{1 1}} {{1 1} {1 0}} {{1 0} {2 1}}} test border-3.1 {Tk_Free3DBorder - reference counts} { set x purple destroy .b1 .b2 .t.b 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 set result {} lappend result [testborder purple] destroy .b1 lappend result [testborder purple] destroy .b2 lappend result [testborder purple] destroy .t.b lappend result [testborder purple] } {{{1 0} {2 1}} {{1 0} {1 1}} {{1 0}} {}} test border-3.4 {Tk_Free3DBorder - unlinking from list} { destroy .b .t.b .t2 .t3 toplevel .t2 -visual {pseudocolor 8} -colormap new toplevel .t3 -visual {pseudocolor 8} -colormap new 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 set result {} 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] } {{{4 1} {3 0} {2 0} {1 0}} {{4 1} {2 0} {1 0}} {{4 1} {2 0}} {{2 0}} {}} test border-4.1 {FreeBorderObjProc} { destroy .b 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 set result {} 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 set result } {{{1 3}} {{1 2}} {{1 1}} {}} catch {destroy .b} button .b test get-2.1 {Tk_GetReliefFromObj} { .b configure -relief flat .b cget -relief } {flat} test get-2.2 {Tk_GetReliefFromObj} { .b configure -relief groove .b cget -relief } {groove} test get-2.3 {Tk_GetReliefFromObj} { .b configure -relief raised .b cget -relief } {raised} test get-2.3 {Tk_GetReliefFromObj} { .b configure -relief ridge .b cget -relief } {ridge} test get-2.3 {Tk_GetReliefFromObj} { .b configure -relief solid .b cget -relief } {solid} test get-2.3 {Tk_GetReliefFromObj} { .b configure -relief sunken .b cget -relief } {sunken} test get-2.4 {Tk_GetReliefFromObj - error} { list [catch {.b configure -relief upanddown} msg] $msg } {1 {bad relief "upanddown": must be flat, groove, raised, ridge, solid, or sunken}} destroy .t # cleanup ::test::cleanupTests return