bugfix: safety against breaking the AI if you press undo while it's thinking
[kaya.git] / test-extra / test_qtkde.rb
blob0448458135c889d5447f930998336b3ab0919697
1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 require 'test/unit'
9 $toolkit = :qt
10 require 'toolkit'
12 class TestQtKDECompatibility < Test::Unit::TestCase
13   def test_empty_descriptor
14     desc = Qt::gui(:desc_test)
15     assert_equal '(gui {:gui_name=>:desc_test})', desc.to_sexp
16   end
17   
18   def test_menu_bar_descriptor
19     desc = Qt::gui(:desc_test) do |g|
20       g.menu_bar do |mb|
21         mb.menu(:file) do |m|
22           m.action :new
23           m.action :open
24           m.separator
25           m.action :quit
26         end
27       end
28     end
29     
30     sexp = '(gui {:gui_name=>:desc_test} ' +
31               '(menu_bar {} ' +
32                 '(menu {:name=>:file} ' +
33                   '(action {:name=>:new}) ' +
34                   '(action {:name=>:open}) ' +
35                   '(separator {}) ' +
36                   '(action {:name=>:quit}))))'
37     assert_equal sexp, desc.to_sexp
38   end
40   def test_merge_equal
41     desc = Qt::gui(:desc_test)
42     desc2 = Qt::gui(:desc_test)
43     
44     desc.merge!(desc2)
45     sexp = '(gui {:gui_name=>:desc_test})'
46     assert_equal sexp, desc.to_sexp
47   end
48   
49   def test_merge_children
50     desc = Qt::gui(:desc_test) do |g|
51       g.item :a
52       g.item :b
53     end
54     
55     desc2 = Qt::gui(:desc_test) do |g|
56       g.item :c
57       g.item :d
58     end
59     
60     desc.merge!(desc2)
61     sexp = '(gui {:gui_name=>:desc_test} ' +
62               '(item {:name=>:a}) ' +
63               '(item {:name=>:b}) ' +
64               '(item {:name=>:c}) ' +
65               '(item {:name=>:d}))'
66     assert_equal sexp, desc.to_sexp
67   end
68   
69   def test_merge_recursive
70     desc = Qt::gui(:desc_test) do |g|
71       g.menu_bar do |mb|
72         mb.item :a
73         mb.item :b
74       end
75     end
76     
77     desc2 = Qt::gui(:desc_test) do |g|
78       g.menu_bar do |mb|
79         mb.item :c
80         mb.item :d
81       end
82     end
83     
84     desc.merge!(desc2)
85     sexp = '(gui {:gui_name=>:desc_test} ' +
86               '(menu_bar {} ' + 
87                 '(item {:name=>:a}) ' +
88                 '(item {:name=>:b}) ' +
89                 '(item {:name=>:c}) ' +
90                 '(item {:name=>:d})))'
91     assert_equal sexp, desc.to_sexp
92   end
93   
94   def test_simple_merge
95     desc = Qt::gui(:desc_test) do |g|
96       g.menu_bar do |mb|
97         mb.menu(:file) do |m|
98           m.action :new
99           m.action :open
100           m.separator
101           m.action :quit
102         end
103       end
104     end
106     desc2 = Qt::gui(:desc_test) do |g|
107       g.menu_bar do |mb|
108         mb.menu(:file) do |m|
109           m.action :save
110         end
111         mb.menu(:edit) do |m|
112           m.action :undo
113         end
114       end
115       g.tool_bar(:main_tool_bar)
116     end
118     desc.merge!(desc2)
119     sexp = '(gui {:gui_name=>:desc_test} ' +
120               '(menu_bar {} ' +
121                 '(menu {:name=>:file} ' +
122                   '(action {:name=>:new}) ' +
123                   '(action {:name=>:open}) ' +
124                   '(separator {}) ' +
125                   '(action {:name=>:quit}) ' +
126                   '(action {:name=>:save})) ' +
127                 '(menu {:name=>:edit} ' +
128                   '(action {:name=>:undo}))) ' +
129               '(tool_bar {:name=>:main_tool_bar}))'
130     
131     assert_equal sexp, desc.to_sexp
132   end
133   
134   def test_merge_partial
135     desc = Qt::gui(:desc_test) do |g|
136       g.menu_bar do |mb|
137         mb.menu(:file) do |m|
138           m.action :open
139         end
140         mb.menu(:edit) do |m|
141           m.action :undo
142         end
143       end
144     end
145     
146     desc2 = Qt::gui(:desc_test) do |g|
147       g.menu_bar do |mb|
148         mb.menu(:edit) do |m|
149           m.action :redo
150         end
151         mb.menu(:game) do |m|
152           m.action :forward
153           m.action :back
154         end
155       end
156     end
157     
158     desc.merge!(desc2)
159     sexp = '(gui {:gui_name=>:desc_test} ' +
160               '(menu_bar {} ' +
161                 '(menu {:name=>:file} ' +
162                   '(action {:name=>:open})) ' +
163                 '(menu {:name=>:edit} ' +
164                   '(action {:name=>:undo}) ' +
165                   '(action {:name=>:redo})) ' +
166                 '(menu {:name=>:game} ' +
167                   '(action {:name=>:forward}) ' +
168                   '(action {:name=>:back}))))'
169     assert_equal sexp, desc.to_sexp
170   end