1 # Copyright (c) 2009 Paolo Capriotti <p.capriotti@gmail.com>
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.
10 require 'rexml/document'
12 class TestGuiBuilder < Test::Unit::TestCase
14 xml = REXML::Document.new(KDE::gui(:gui_test))
15 assert_equal "<!DOCTYPE kpartgui SYSTEM \"kpartgui.dtd\">", xml.doctype.to_s
16 assert_equal "gui", xml.root.name
17 assert_equal "2", xml.root.attributes["version"]
18 assert_equal "gui_test", xml.root.attributes["name"]
22 gui = KDE::gui(:gui_test) do |g|
25 xml = REXML::Document.new(gui)
27 assert_equal "gui", xml.root.name
28 assert xml.root.elements["MenuBar"]
32 gui = KDE::gui(:gui_test) do |g|
37 xml = REXML::Document.new(gui)
39 assert xml.elements["gui/MenuBar/Menu"]
40 assert_equal "file", xml.elements["gui/MenuBar/Menu"].attributes["name"]
43 def test_menu_with_actions
44 gui = KDE::gui(:gui_test) do |g|
51 mb.menu(:edit, :text => "Edit") do |m|
58 xml = REXML::Document.new(gui)
60 file_menu = xml.elements["gui/MenuBar/Menu[1]"]
62 assert_equal "file", file_menu.attributes["name"]
63 assert_equal ["open", "save", "exit"],
64 file_menu.to_enum(:each_element, "Action").
65 map{|x| x.attributes["name"] }
67 edit_menu = xml.elements["gui/MenuBar/Menu[2]"]
69 assert_equal "Edit", edit_menu.elements["text"].text
70 assert_equal "edit", edit_menu.attributes["name"]
71 assert_equal ["cut", "copy", "paste"],
72 edit_menu.to_enum(:each_element, "Action").
73 map{|x| x.attributes["name"] }
76 def test_menu_with_separators
77 gui = KDE::gui(:gui_test) do |g|
87 xml = REXML::Document.new(gui)
89 menu = xml.elements["gui/MenuBar/Menu"]
91 assert_equal "file", menu.attributes["name"]
92 assert menu.elements["Separator"]
96 gui = KDE::gui(:gui_test) do |g|
97 g.tool_bar(:file, :text => "File") do |tb|
103 xml = REXML::Document.new(gui)
105 tool_bar = xml.elements["gui/ToolBar"]
107 assert_equal "file", tool_bar.attributes["name"]
108 assert_equal "File", tool_bar.elements["text"].text
109 assert_equal ["open", "save", "exit"],
110 tool_bar.to_enum(:each_element, "Action").
111 map{|x| x.attributes["name"] }
115 gui = KDE::gui(:gui_test) do |g|
117 mb.menu("file") do |m|
121 m.action_list :recent_files
126 xml = REXML::Document.new(gui)
128 menu = xml.elements["gui/MenuBar/Menu"]
130 assert "recent_files", menu.elements["ActionList"].attributes["name"]
134 gui = KDE::gui(:gui_test) do |g|
136 mb.menu("file") do |m|
145 xml = REXML::Document.new(gui)
147 menu = xml.elements["gui/MenuBar/Menu"]
149 assert "extension", menu.elements["DefineGroup"].attributes["name"]
152 def test_group_actions
153 gui = KDE::gui(:gui_test) do |g|
155 mb.menu(:file) do |m|
157 m.group(:extension) do |g|
165 xml = REXML::Document.new(gui)
167 menu = xml.elements["gui/MenuBar/Menu"]
169 assert_nil menu.elements["DefineGroup"]
170 assert_equal "extension", menu.elements["Action[@name='connect']"].