#
# image.test,v 1.9 2007/11/25 17:06:02 jenglish Exp
#

package require Tk
package require tcltest ; namespace import -force tcltest::*
loadTestedCommands

lappend auto_path .
package require tile

# catch background errors:
#
if {[info procs bgerror] == "bgerror"} { rename bgerror {} }
array set BGerror { caught 0 message {} }
proc bgerror {message} {
    variable BGerror
    set BGerror(caught) 1
    set BGerror(message) $message
}
proc caughtbgerror {} {
    variable BGerror
    if {!$BGerror(caught)} {
        error "No bgerror caught"
    }
    set BGerror(caught) 0
    return $BGerror(message)
}

test image-1.1 "Bad image element" -body {
    ttk::style element create BadImage image badimage
    #- ttk::style layout BadImage { BadImage }
    #- ttk::label .l -style BadImage
    #- pack .l ; update
    #- destroy .l
    #- caughtbgerror
} -returnCodes error -result {image "badimage" doesn't exist}

test image-1.2 "Duplicate element" -setup {
    image create photo test.element -width 10 -height 10
    ttk::style element create testElement image test.element
} -body {
    ttk::style element create testElement image test.element
} -returnCodes 1 -result "Duplicate element testElement"

test image-1.3 "Bad image element later in list" -body {
    ttk::style element create BadImage image {test.element {} badimage}
} -returnCodes error -result {image "badimage" doesn't exist}

test image-1.4 "Bad image option" -body {
    ttk::button .b -image [list test.element {} badimage]
} -returnCodes error -result {image "badimage" doesn't exist}

test image-2.0 "Deletion of displayed image (label)" -constraints {
    KNOWNBUG
} -setup {
    image create photo test.image -width 10 -height 10
} -body {
    pack [set w [ttk::label .ttk_image20 -image test.image]]
    tkwait visibility $w
    image delete test.image
    update
} -cleanup {
    destroy .ttk_image20
} -result {}
    
test image-2.1 "Deletion of displayed image (checkbutton)" -constraints {
    KNOWNBUG 
} -setup {
    image create photo test.image -width 10 -height 10
} -body {
    pack [set w [ttk::checkbutton .ttk_image21 -image test.image]]
    tkwait visibility $w
    image delete test.image
    update
} -cleanup {
    destroy .ttk_image21
} -result {}

test image-2.2 "Deletion of displayed image (radiobutton)" -constraints {
    KNOWNBUG
} -setup {
    image create photo test.image -width 10 -height 10
} -body {
    pack [set w [ttk::radiobutton .ttk_image22 -image test.image]]
    tkwait visibility $w
    image delete test.image
    update
} -cleanup {
    destroy .ttk_image22
} -result {}

#
tcltest::cleanupTests
