1#
2# ttk::checkbutton widget tests.
3#
4
5package require Tk
6package require tcltest ; namespace import -force tcltest::*
7loadTestedCommands
8
9test checkbutton-1.1 "Checkbutton check" -body {
10    pack [ttk::checkbutton .cb -text "TCheckbutton" -variable cb]
11}
12test checkbutton-1.2 "Checkbutton invoke" -body {
13    .cb invoke
14    list [set ::cb] [.cb instate selected]
15} -result [list 1 1]
16test checkbutton-1.3 "Checkbutton reinvoke" -body {
17    .cb invoke
18    list [set ::cb] [.cb instate selected]
19} -result [list 0 0]
20
21test checkbutton-1.4 "Checkbutton variable" -body {
22    set result []
23    set ::cb 1
24    lappend result [.cb instate selected]
25    set ::cb 0
26    lappend result [.cb instate selected]
27} -result {1 0}
28
29test checkbutton-1.5 "Unset checkbutton variable" -body {
30    set result []
31    unset ::cb
32    lappend result [.cb instate alternate] [info exists ::cb]
33    set ::cb 1
34    lappend result [.cb instate alternate] [info exists ::cb]
35} -result {1 0 0 1}
36
37# See #1257319
38test checkbutton-1.6 "Checkbutton default variable" -body {
39    destroy .cb ; unset -nocomplain {} ; set result [list]
40    ttk::checkbutton .cb -onvalue on -offvalue off
41    lappend result [.cb cget -variable] [info exists .cb] [.cb state]
42    .cb invoke
43    lappend result [info exists .cb] [set .cb] [.cb state]
44    .cb invoke
45    lappend result [info exists .cb] [set .cb] [.cb state]
46} -result [list .cb 0 alternate   1 on selected  1 off {}]
47
48tcltest::cleanupTests
49