~nimu-zh3/+junk/lua-gtk

« back to all changes in this revision

Viewing changes to tests/020-liststore.lua

  • Committer: Bazaar Package Importer
  • Author(s): Enrico Tassi
  • Date: 2009-05-17 18:16:21 UTC
  • mfrom: (1.2.1 upstream) (4.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20090517181621-9kmdd82nxg54jsio
* new upstream snapshot comprising many more GNOME libraries:
    Gtk, GDK, GLib, Pango, Atk, Libxml2, Cairo, Clutter, Gtkhtml, 
    GtkSourceView, Gio, Gtkspell and GConf. 
* new upstream release includes a new configure script written in Lua,
  no more bashisms there (Closes: #507205)
* renamed binary packages to liblua5.1-gnome-*
* updated standards-version to 3.8.1, no changes needed
* patch to load .so.* version of libraries and not .so (that was requiring
  -dev packages) (Closes: #522087)
* removed redundant Architecture line from the source stanza of control
  (Closes: #498120)
* updated copyright file, Wolfgang Oertl holds it for 2009 too.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#! /usr/bin/env lua
 
2
require "gtk"
 
3
 
 
4
ls, x = gtk.list_store_newv(8, { glib.TYPE_INT, glib.TYPE_STRING,
 
5
        glib.type_from_name("GtkWindowType"), glib.TYPE_BOOLEAN,
 
6
        glib.TYPE_DOUBLE, glib.type_from_name("GtkWidgetFlags"),
 
7
        glib.type_from_name("GtkWindow"), gnome.boxed_type })
 
8
assert(x == nil, "superfluous return value")
 
9
 
 
10
-- varargs, no type checking possible.
 
11
iter = gtk.new "TreeIter"
 
12
ls:insert_with_values(iter, 1,
 
13
        0, 99,
 
14
        1, "hello",
 
15
        2, gtk.WINDOW_TOPLEVEL,
 
16
        3, true,
 
17
        4, gnome.box(5, "gdouble"),
 
18
        5, gtk.CAN_DEFAULT,
 
19
        6, gtk.window_new(gtk.WINDOW_TOPLEVEL),
 
20
        7, gnome.box { a=1, b=2, c=3 },
 
21
        -1)
 
22
 
 
23
---------------------------------------------------------------------------
 
24
-- test signed integer
 
25
 
 
26
val = ls:get_value(iter, 0)
 
27
assert(val == 99)
 
28
 
 
29
ls:set_value(iter, 0, -20)
 
30
val = ls:get_value(iter, 0)
 
31
assert(val == -20)
 
32
 
 
33
ls:set_value(iter, 0, "234")
 
34
val = ls:get_value(iter, 0)
 
35
assert(val == 234)
 
36
 
 
37
ls:set_value(iter, 0, "-567890")
 
38
val = ls:get_value(iter, 0)
 
39
assert(val == -567890)
 
40
 
 
41
rc, msg = pcall(function() ls:set_value(iter, 0, "99abc") end)
 
42
assert(not rc)
 
43
 
 
44
rc, msg = pcall(function() ls:set_value(iter, 0, true) end)
 
45
assert(not rc)
 
46
 
 
47
 
 
48
---------------------------------------------------------------------------
 
49
-- test string
 
50
 
 
51
val = ls:get_value(iter, 1)
 
52
assert(val == "hello")
 
53
 
 
54
ls:set_value(iter, 1, "there")
 
55
val = ls:get_value(iter, 1)
 
56
assert(val == "there")
 
57
 
 
58
ls:set_value(iter, 1, 25)
 
59
val = ls:get_value(iter, 1)
 
60
assert(val == "25")
 
61
 
 
62
---------------------------------------------------------------------------
 
63
-- test enum/flags
 
64
 
 
65
val = ls:get_value(iter, 2)
 
66
assert(val == gtk.WINDOW_TOPLEVEL)
 
67
ls:set_value(iter, 2, "GTK_WINDOW_TOPLEVEL")
 
68
ls:set_value(iter, 2, 0)
 
69
ls:set_value(iter, 2, gtk.WINDOW_TOPLEVEL)
 
70
 
 
71
rc, msg = pcall(function() ls:set_value(iter, 2, true) end)
 
72
assert(not rc)
 
73
 
 
74
-- string not found
 
75
rc, msg = pcall(function() ls:set_value(iter, 2, "HARHAR") end)
 
76
assert(not rc)
 
77
 
 
78
-- mismatch in enum type
 
79
rc, msg = pcall(function() ls:set_value(iter, 2, gtk.JUSTIFY_LEFT) end)
 
80
assert(not rc)
 
81
 
 
82
 
 
83
---------------------------------------------------------------------------
 
84
-- test boolean
 
85
 
 
86
val = ls:get_value(iter, 3)
 
87
assert(val == true)
 
88
 
 
89
ls:set_value(iter, 3, false)
 
90
val = ls:get_value(iter, 3)
 
91
assert(val == false)
 
92
 
 
93
-- can set boolean from certain strings
 
94
ls:set_value(iter, 3, "true")
 
95
ls:set_value(iter, 3, "false")
 
96
ls:set_value(iter, 3, "0")
 
97
ls:set_value(iter, 3, "1")
 
98
val = ls:get_value(iter, 3)
 
99
assert(val == true)
 
100
 
 
101
-- can't set boolean from this string
 
102
rc, msg = pcall(function() ls:set_value(iter, 3, "foo") end)
 
103
assert(not rc)
 
104
 
 
105
-- can't set boolean from number
 
106
rc, msg = pcall(function() ls:set_value(iter, 3, 5) end)
 
107
assert(not rc)
 
108
 
 
109
 
 
110
 
 
111
---------------------------------------------------------------------------
 
112
-- test double
 
113
 
 
114
val = ls:get_value(iter, 4)
 
115
assert(val == 5)
 
116
ls:set_value(iter, 4, 6)
 
117
val = ls:get_value(iter, 4)
 
118
assert(val == 6)
 
119
ls:set_value(iter, 4, "7.05")
 
120
val = ls:get_value(iter, 4)
 
121
assert(val == 7.05)
 
122
rc, msg = pcall(function() ls:set_value(iter, 4, "7.05error") end)
 
123
assert(not rc)
 
124
rc, msg = pcall(function() ls:set_value(iter, 4, true) end)
 
125
assert(not rc)
 
126
 
 
127
 
 
128
 
 
129
---------------------------------------------------------------------------
 
130
-- test flags
 
131
 
 
132
val = ls:get_value(iter, 5)
 
133
assert(tostring(val) == "GtkWidgetFlags:can-default")
 
134
 
 
135
ls:set_value(iter, 5, "GTK_TOPLEVEL | GTK_NO_WINDOW")
 
136
val = ls:get_value(iter, 5)
 
137
assert(tostring(val) == "GtkWidgetFlags:toplevel|no-window")
 
138
 
 
139
ls:set_value(iter, 5, 16+32+64)
 
140
val = ls:get_value(iter, 5)
 
141
assert(tostring(val) == "GtkWidgetFlags:toplevel|no-window|realized")
 
142
 
 
143
ls:set_value(iter, 5, "128|256")
 
144
val = ls:get_value(iter, 5)
 
145
assert(tostring(val) == "GtkWidgetFlags:mapped|visible")
 
146
 
 
147
rc, msg = pcall(function() ls:set_value(iter, 5, "whatever") end)
 
148
assert(not rc)
 
149
 
 
150
rc, msg = pcall(function() ls:set_value(iter, 5, true) end)
 
151
assert(not rc)
 
152
 
 
153
rc, msg = pcall(function() ls:set_value(iter, 5, "GTK_STOCK_OK") end)
 
154
assert(not rc)
 
155
 
 
156
 
 
157
 
 
158
---------------------------------------------------------------------------
 
159
-- test objects
 
160
 
 
161
val = ls:get_value(iter, 6)
 
162
assert(string.match(tostring(val), "^GtkWindow"))
 
163
 
 
164
w = gtk.window_new(gtk.WINDOW_TOPLEVEL)
 
165
ls:set_value(iter, 6, w)
 
166
 
 
167
val = ls:get_value(iter, 6)
 
168
assert(w == val)
 
169
 
 
170
-- can't set to NIL
 
171
rc, msg = pcall(function() ls:set_value(iter, 6, nil) end)
 
172
assert(not rc)
 
173
 
 
174
-- can't set to other type of widget
 
175
rc, msg = pcall(function() ls:set_value(iter, 6, gtk.button_new()) end)
 
176
assert(not rc)
 
177
 
 
178
 
 
179
---------------------------------------------------------------------------
 
180
-- boxed values
 
181
 
 
182
val = ls:get_value(iter, 7)
 
183
assert(type(val) == "table")
 
184
assert(val.a == 1)
 
185
 
 
186