OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [insight/] [tk/] [tests/] [menubut.test] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
# This file is a Tcl script to test menubuttons in Tk.  It is
2
# organized in the standard fashion for Tcl tests.
3
#
4
# Copyright (c) 1994 The Regents of the University of California.
5
# Copyright (c) 1994-1996 Sun Microsystems, Inc.
6
#
7
# See the file "license.terms" for information on usage and redistribution
8
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
9
#
10
# RCS: @(#) $Id: menubut.test,v 1.1.1.1 2002-01-16 10:25:59 markom Exp $
11
 
12
# XXX This test file is woefully incomplete right now.  If any part
13
# XXX of a procedure has tests then the whole procedure has tests,
14
# XXX but many procedures have no tests.
15
 
16
if {[lsearch [image types] test] < 0} {
17
    puts "This application hasn't been compiled with the \"test\" image"
18
    puts "type, so I can't run this test.  Are you sure you're using"
19
    puts "tktest instead of wish?"
20
    return
21
}
22
 
23
if {[info procs test] != "test"} {
24
    source defs
25
}
26
 
27
foreach i [winfo children .] {
28
    destroy $i
29
}
30
wm geometry . {}
31
raise .
32
 
33
# Create entries in the option database to be sure that geometry options
34
# like border width have predictable values.
35
 
36
option add *Menubutton.borderWidth 2
37
option add *Menubutton.highlightThickness 2
38
option add *Menubutton.font {Helvetica -12 bold}
39
option add *Button.borderWidth 2
40
option add *Button.highlightThickness 2
41
option add *Button.font {Helvetica -12 bold}
42
 
43
eval image delete [image names]
44
image create test image1
45
menubutton .mb -text "Test"
46
pack .mb
47
update
48
set i 1
49
foreach test {
50
    {-activebackground #012345 #012345 non-existent
51
            {unknown color name "non-existent"}}
52
    {-activeforeground #ff0000 #ff0000 non-existent
53
            {unknown color name "non-existent"}}
54
    {-anchor nw nw bogus {bad anchor position "bogus": must be n, ne, e, se, s, sw, w, nw, or center}}
55
    {-background #ff0000 #ff0000 non-existent
56
            {unknown color name "non-existent"}}
57
    {-bd 4 4 badValue {bad screen distance "badValue"}}
58
    {-bg #ff0000 #ff0000 non-existent {unknown color name "non-existent"}}
59
    {-bitmap questhead questhead badValue {bitmap "badValue" not defined}}
60
    {-borderwidth 1.3 1 badValue {bad screen distance "badValue"}}
61
    {-cursor arrow arrow badValue {bad cursor spec "badValue"}}
62
    {-direction below below badValue {bad direction value "badValue": must be above, below, left, right, or flush}}
63
    {-disabledforeground #00ff00 #00ff00 xyzzy {unknown color name "xyzzy"}}
64
    {-fg #110022 #110022 bogus {unknown color name "bogus"}}
65
    {-font {Helvetica 12} {Helvetica 12} {} {font "" doesn't exist}}
66
    {-foreground #110022 #110022 bogus {unknown color name "bogus"}}
67
    {-height 18 18 20.0 {expected integer but got "20.0"}}
68
    {-highlightbackground #112233 #112233 ugly {unknown color name "ugly"}}
69
    {-highlightcolor #110022 #110022 bogus {unknown color name "bogus"}}
70
    {-highlightthickness 18 18 badValue {bad screen distance "badValue"}}
71
    {-image image1 image1 bogus {image "bogus" doesn't exist}}
72
    {-indicatoron yes 1 no_way {expected boolean value but got "no_way"}}
73
    {-justify right right bogus {bad justification "bogus": must be left, right, or center}}
74
    {-menu "any old string" "any old string" {} {}}
75
    {-padx 12 12 420x {bad screen distance "420x"}}
76
    {-pady 12 12 420x {bad screen distance "420x"}}
77
    {-relief groove groove 1.5 {bad relief type "1.5": must be flat, groove, raised, ridge, solid, or sunken}}
78
    {-state normal normal bogus {bad state value "bogus": must be normal, active, or disabled}}
79
    {-takefocus "any string" "any string" {} {}}
80
    {-text "Sample text" {Sample text} {} {}}
81
    {-textvariable i i {} {}}
82
    {-underline 5 5 3p {expected integer but got "3p"}}
83
    {-width 402 402 3p {expected integer but got "3p"}}
84
    {-wraplength 100 100 6x {bad screen distance "6x"}}
85
} {
86
    set name [lindex $test 0]
87
    test menubutton-1.$i {configuration options} {
88
        .mb configure $name [lindex $test 1]
89
        lindex [.mb configure $name] 4
90
    } [lindex $test 2]
91
    incr i
92
    if {[lindex $test 3] != ""} {
93
        test menubutton-1.$i {configuration options} {
94
            list [catch {.mb configure $name [lindex $test 3]} msg] $msg
95
        } [list 1 [lindex $test 4]]
96
    }
97
    .mb configure $name [lindex [.mb configure $name] 3]
98
    incr i
99
}
100
 
101
test menubutton-2.1 {Tk_MenubuttonCmd procedure} {
102
    list [catch {menubutton} msg] $msg
103
} {1 {wrong # args: should be "menubutton pathName ?options?"}}
104
test menubutton-2.2 {Tk_MenubuttonCmd procedure} {
105
    list [catch {menubutton foo} msg] $msg
106
} {1 {bad window path name "foo"}}
107
test menubutton-2.3 {Tk_MenubuttonCmd procedure} {
108
    catch {destroy .mb}
109
    menubutton .mb
110
    winfo class .mb
111
} {Menubutton}
112
test menubutton-2.4 {Tk_ButtonCmd procedure} {
113
    catch {destroy .mb}
114
    list [catch {menubutton .mb -gorp foo} msg] $msg [winfo exists .mb]
115
} {1 {unknown option "-gorp"} 0}
116
 
117
catch {destroy .mb}
118
menubutton .mb -text "Test Menu"
119
pack .mb
120
test menubutton-3.1 {MenuButtonWidgetCmd procedure} {
121
    list [catch {.mb} msg] $msg
122
} {1 {wrong # args: should be ".mb option ?arg arg ...?"}}
123
test menubutton-3.2 {ButtonWidgetCmd procedure, "cget" option} {
124
    list [catch {.mb c} msg] $msg
125
} {1 {bad option "c": must be cget or configure}}
126
test menubutton-3.3 {ButtonWidgetCmd procedure, "cget" option} {
127
    list [catch {.mb cget} msg] $msg
128
} {1 {wrong # args: should be ".mb cget option"}}
129
test menubutton-3.4 {ButtonWidgetCmd procedure, "cget" option} {
130
    list [catch {.mb cget a b} msg] $msg
131
} {1 {wrong # args: should be ".mb cget option"}}
132
test menubutton-3.5 {ButtonWidgetCmd procedure, "cget" option} {
133
    list [catch {.mb cget -gorp} msg] $msg
134
} {1 {unknown option "-gorp"}}
135
test menubutton-3.6 {ButtonWidgetCmd procedure, "cget" option} {
136
    .mb configure -highlightthickness 3
137
    .mb cget -highlightthickness
138
} {3}
139
test menubutton-3.7 {ButtonWidgetCmd procedure, "configure" option} {
140
    llength [.mb configure]
141
} {32}
142
test menubutton-3.8 {ButtonWidgetCmd procedure, "configure" option} {
143
    list [catch {.mb configure -gorp} msg] $msg
144
} {1 {unknown option "-gorp"}}
145
test menubutton-3.9 {ButtonWidgetCmd procedure, "configure" option} {
146
    list [catch {.mb co -bg #ffffff -fg} msg] $msg
147
} {1 {value for "-fg" missing}}
148
test menubutton-3.10 {ButtonWidgetCmd procedure, "configure" option} {
149
    .mb configure -fg #123456
150
    .mb configure -bg #654321
151
    lindex [.mb configure -fg] 4
152
} {#123456}
153
test menubutton-3.11 {ButtonWidgetCmd procedure, "configure" option} {
154
    list [catch {.mb foobar} msg] $msg
155
} {1 {bad option "foobar": must be cget or configure}}
156
 
157
# XXX Need to add tests for several procedures here.   The tests for   XXX
158
# XXX ConfigureMenuButton aren't complete either.                      XXX
159
 
160
test menubutton-4.1 {ConfigureMenuButton procedure} {
161
    catch {destroy .mb1}
162
    button .mb1 -text "Menubutton 1"
163
    list [catch {.mb1 configure -width 1i} msg] $msg $errorInfo
164
} {1 {expected integer but got "1i"} {expected integer but got "1i"
165
    (processing -width option)
166
    invoked from within
167
".mb1 configure -width 1i"}}
168
test menubutton-4.2 {ConfigureMenuButton procedure} {
169
    catch {destroy .mb1}
170
    button .mb1 -text "Menubutton 1"
171
    list [catch {.mb1 configure -height 0.5c} msg] $msg $errorInfo
172
} {1 {expected integer but got "0.5c"} {expected integer but got "0.5c"
173
    (processing -height option)
174
    invoked from within
175
".mb1 configure -height 0.5c"}}
176
test menubutton-4.3 {ConfigureMenuButton procedure} {
177
    catch {destroy .mb1}
178
    button .mb1 -bitmap questhead
179
    list [catch {.mb1 configure -width abc} msg] $msg $errorInfo
180
} {1 {bad screen distance "abc"} {bad screen distance "abc"
181
    (processing -width option)
182
    invoked from within
183
".mb1 configure -width abc"}}
184
test menubutton-4.4 {ConfigureMenuButton procedure} {
185
    catch {destroy .mb1}
186
    eval image delete [image names]
187
    image create test image1
188
    button .mb1 -image image1
189
    list [catch {.mb1 configure -height 0.5x} msg] $msg $errorInfo
190
} {1 {bad screen distance "0.5x"} {bad screen distance "0.5x"
191
    (processing -height option)
192
    invoked from within
193
".mb1 configure -height 0.5x"}}
194
test menubutton-4.5 {ConfigureMenuButton procedure} {fonts} {
195
    catch {destroy .mb1}
196
    button .mb1 -text "Sample text" -width 10 -height 2
197
    pack .mb1
198
    set result "[winfo reqwidth .mb1] [winfo reqheight .mb1]"
199
    .mb1 configure -bitmap questhead
200
    lappend result [winfo reqwidth .mb1] [winfo reqheight .mb1]
201
} {102 46 20 12}
202
test menubutton-4.6 {ConfigureMenuButton procedure - bad direction} {
203
    catch {destroy .mb}
204
    menubutton .mb -text "Test"
205
    list [catch {.mb configure -direction badValue} msg] $msg \
206
        [.mb cget -direction] [destroy .mb]
207
} {1 {bad direction value "badValue": must be above, below, left, right, or flush} below {}}
208
 
209
# XXX Need to add tests for several procedures here. XXX
210
 
211
test menubutton-5.1 {MenuButtonEventProc procedure} {
212
    eval destroy [winfo children .]
213
    menubutton .mb1 -bg #543210
214
    rename .mb1 .mb2
215
    set x {}
216
    lappend x [winfo children .]
217
    lappend x [.mb2 cget -bg]
218
    destroy .mb1
219
    lappend x [info command .mb*] [winfo children .]
220
} {.mb1 #543210 {} {}}
221
 
222
test menubutton-6.1 {MenuButtonCmdDeletedProc procedure} {
223
    eval destroy [winfo children .]
224
    menubutton .mb1
225
    rename .mb1 {}
226
    list [info command .mb*] [winfo children .]
227
} {{} {}}
228
 
229
test menubutton-7.1 {ComputeMenuButtonGeometry procedure} {
230
    catch {destroy .mb}
231
    menubutton .mb -image image1 -bd 4 -highlightthickness 0
232
    pack .mb
233
    list [winfo reqwidth .mb] [winfo reqheight .mb]
234
} {38 23}
235
test menubutton-7.2 {ComputeMenuButtonGeometry procedure} {
236
    catch {destroy .mb}
237
    menubutton .mb -image image1 -bd 1 -highlightthickness 2
238
    pack .mb
239
    list [winfo reqwidth .mb] [winfo reqheight .mb]
240
} {36 21}
241
test menubutton-7.3 {ComputeMenuButtonGeometry procedure} {
242
    catch {destroy .mb}
243
    menubutton .mb -image image1 -bd 0 -highlightthickness 2 -padx 5 -pady 5
244
    pack .mb
245
    list [winfo reqwidth .mb] [winfo reqheight .mb]
246
} {34 19}
247
test menubutton-7.4 {ComputeMenuButtonGeometry procedure} {
248
    catch {destroy .mb}
249
    menubutton .mb -image image1 -bd 2 -relief raised -width 40 \
250
            -highlightthickness 2
251
    pack .mb
252
    list [winfo reqwidth .mb] [winfo reqheight .mb]
253
} {48 23}
254
test menubutton-7.5 {ComputeMenuButtonGeometry procedure} {
255
    catch {destroy .mb}
256
    menubutton .mb -image image1 -bd 2 -relief raised -height 30 \
257
            -highlightthickness 2
258
    pack .mb
259
    list [winfo reqwidth .mb] [winfo reqheight .mb]
260
} {38 38}
261
test menubutton-7.6 {ComputeMenuButtonGeometry procedure} {
262
    catch {destroy .mb}
263
    menubutton .mb -bitmap question -bd 2 -relief raised \
264
            -highlightthickness 2
265
    pack .mb
266
    list [winfo reqwidth .mb] [winfo reqheight .mb]
267
} {25 35}
268
test menubutton-7.7 {ComputeMenuButtonGeometry procedure} {
269
    catch {destroy .mb}
270
    menubutton .mb -bitmap question -bd 2 -relief raised -width 40 \
271
            -highlightthickness 1
272
    pack .mb
273
    list [winfo reqwidth .mb] [winfo reqheight .mb]
274
} {46 33}
275
test menubutton-7.8 {ComputeMenuButtonGeometry procedure} {
276
    catch {destroy .mb}
277
    menubutton .mb -bitmap question -bd 2 -relief raised -height 50 \
278
            -highlightthickness 1
279
    pack .mb
280
    list [winfo reqwidth .mb] [winfo reqheight .mb]
281
} {23 56}
282
test menubutton-7.9 {ComputeMenuButtonGeometry procedure} {fonts} {
283
    catch {destroy .mb}
284
    menubutton .mb -text String -bd 2 -relief raised -padx 0 -pady 0 \
285
            -highlightthickness 1
286
    pack .mb
287
    list [winfo reqwidth .mb] [winfo reqheight .mb]
288
} {42 20}
289
test menubutton-7.10 {ComputeMenuButtonGeometry procedure} {fonts} {
290
    catch {destroy .mb}
291
    menubutton .mb -text String -bd 2 -relief raised -width 20 \
292
            -padx 0 -pady 0 -highlightthickness 1
293
    pack .mb
294
    list [winfo reqwidth .mb] [winfo reqheight .mb]
295
} {146 20}
296
test menubutton-7.11 {ComputeMenuButtonGeometry procedure} {fonts} {
297
    catch {destroy .mb}
298
    menubutton .mb -text String -bd 2 -relief raised -height 2 \
299
            -padx 0 -pady 0 -highlightthickness 1
300
    pack .mb
301
    list [winfo reqwidth .mb] [winfo reqheight .mb]
302
} {42 34}
303
test menubutton-7.12 {ComputeMenuButtonGeometry procedure} {fonts} {
304
    catch {destroy .mb}
305
    menubutton .mb -text String -bd 2 -relief raised -padx 10 -pady 5 \
306
            -highlightthickness 1
307
    pack .mb
308
    list [winfo reqwidth .mb] [winfo reqheight .mb]
309
} {62 30}
310
test menubutton-7.13 {ComputeMenuButtonGeometry procedure} {fonts} {
311
    catch {destroy .mb}
312
    menubutton .mb -text String -bd 2 -relief raised \
313
            -highlightthickness 1 -indicatoron 1
314
    pack .mb
315
    list [winfo reqwidth .mb] [winfo reqheight .mb]
316
} {78 28}
317
test menubutton-7.14 {ComputeMenuButtonGeometry procedure} {unix nonPortable} {
318
    # The following test is non-portable because the indicator's pixel
319
    # size varies to maintain constant absolute size.
320
 
321
    catch {destroy .mb}
322
    menubutton .mb -image image1 -bd 2 -relief raised \
323
            -highlightthickness 2 -indicatoron 1
324
    pack .mb
325
    list [winfo reqwidth .mb] [winfo reqheight .mb]
326
} {64 23}
327
test menubutton-7.15 {ComputeMenuButtonGeometry procedure} {pc nonPortable} {
328
    # The following test is non-portable because the indicator's pixel
329
    # size varies to maintain constant absolute size.
330
 
331
    catch {destroy .mb}
332
    menubutton .mb -image image1 -bd 2 -relief raised \
333
            -highlightthickness 2 -indicatoron 1
334
    pack .mb
335
    list [winfo reqwidth .mb] [winfo reqheight .mb]
336
} {65 23}
337
 
338
set l [interp hidden]
339
eval destroy [winfo children .]
340
 
341
test menubutton-8.1 {menubutton vs hidden commands} {
342
    catch {destroy .mb}
343
    menubutton .mb
344
    interp hide {} .mb
345
    destroy .mb
346
    list [winfo children .] [interp hidden]
347
} [list {} $l]
348
 
349
eval image delete [image names]
350
eval destroy [winfo children .]
351
option clear
352
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.