zerenity 1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +21 -0
- data/README +63 -0
- data/examples/example_calendar.rb +6 -0
- data/examples/example_colorselection.rb +5 -0
- data/examples/example_entry.rb +16 -0
- data/examples/example_error.rb +3 -0
- data/examples/example_fileselection.rb +26 -0
- data/examples/example_info.rb +3 -0
- data/examples/example_list.rb +10 -0
- data/examples/example_progress.rb +40 -0
- data/examples/example_question.rb +4 -0
- data/examples/example_textinfo.rb +11 -0
- data/examples/example_warning.rb +3 -0
- data/lib/zerenity.rb +14 -0
- data/lib/zerenity/base.rb +50 -0
- data/lib/zerenity/calendar.rb +26 -0
- data/lib/zerenity/colorselection.rb +30 -0
- data/lib/zerenity/entry.rb +36 -0
- data/lib/zerenity/error.rb +17 -0
- data/lib/zerenity/fileselection.rb +68 -0
- data/lib/zerenity/info.rb +18 -0
- data/lib/zerenity/list.rb +110 -0
- data/lib/zerenity/messagedialog.rb +34 -0
- data/lib/zerenity/progress.rb +136 -0
- data/lib/zerenity/progress.rb~ +136 -0
- data/lib/zerenity/question.rb +26 -0
- data/lib/zerenity/scale.rb +41 -0
- data/lib/zerenity/textinfo.rb +49 -0
- data/lib/zerenity/warning.rb +18 -0
- data/test/all.rb +2 -0
- data/test/tc_base.rb +35 -0
- data/test/tc_calendar.rb +28 -0
- data/test/tc_entry.rb +49 -0
- data/test/tc_fileselection.rb +37 -0
- data/test/tc_info.rb +16 -0
- data/test/tc_list.rb +138 -0
- data/test/tc_messagedialog.rb +16 -0
- data/test/tc_progress.rb +76 -0
- data/test/tc_question.rb +23 -0
- data/test/tc_scale.rb +33 -0
- data/test/tc_textinfo.rb +33 -0
- data/test/tc_warning.rb +16 -0
- data/test/ts_zerenity.rb +33 -0
- metadata +97 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
require('zerenity/base')
|
2
|
+
|
3
|
+
module Zerenity
|
4
|
+
# Displays a sliding scale. Returns the value selected or nil if
|
5
|
+
# cancel is pressed.
|
6
|
+
#
|
7
|
+
# ====Options
|
8
|
+
# [:min] The minimum value of the sliding scale. Defaults to 0.
|
9
|
+
# [:max] The maximum value of the sliding scale. Defaults to 100.
|
10
|
+
# [:step] The size of the value increment of the sliding scale for keyboard shortcuts. Defaults to 1.
|
11
|
+
# [:initial] The initial value of the sliding scale. Defaults to 0.
|
12
|
+
# ====Example Usage
|
13
|
+
# value = Zerenity::Scale(:text=>"Please select a value", :min => 1, :max => 250, :step => 3)
|
14
|
+
def self.Scale(options={})
|
15
|
+
Scale.run(options)
|
16
|
+
end
|
17
|
+
|
18
|
+
class Scale < Zerenity::Base # :nodoc:
|
19
|
+
def self.check(options)
|
20
|
+
super(options)
|
21
|
+
options[:initial] ||= 0.0
|
22
|
+
options[:min] ||= 0.0
|
23
|
+
options[:max] ||= 100.0
|
24
|
+
options[:step] ||= 1.0
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.build(dialog,options)
|
28
|
+
super(dialog,options)
|
29
|
+
label = Gtk::Label.new(options[:text])
|
30
|
+
hscale = Gtk::HScale.new(options[:min],options[:max],options[:step])
|
31
|
+
hscale.value = options[:initial].to_f
|
32
|
+
dialog.vbox.add(label)
|
33
|
+
dialog.vbox.add(hscale)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.retrieve_selection(dialog,options)
|
37
|
+
super(dialog,options)
|
38
|
+
dialog.vbox.children[1].value.to_i
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require('zerenity/base')
|
2
|
+
|
3
|
+
module Zerenity
|
4
|
+
# Displays text in a multiline text info box.
|
5
|
+
#
|
6
|
+
# ====Options
|
7
|
+
# [:editable] If set to true the text info box is editable.
|
8
|
+
# [:scrollable] If the size of the text does not fit in the
|
9
|
+
# height and width constraints, the text info box will become
|
10
|
+
# scrollable
|
11
|
+
# [:height,:width] The height and width of the text box, in pixels.
|
12
|
+
# Note this is not the height and weidth of the full window.
|
13
|
+
# [:text] The text to be displayed in the text info box.
|
14
|
+
#
|
15
|
+
# ====Example Usage
|
16
|
+
# Zerenity::TextIfno(:text=>File.new($0).read)
|
17
|
+
def self.TextInfo(options={})
|
18
|
+
TextInfo.run(options)
|
19
|
+
end
|
20
|
+
|
21
|
+
class TextInfo < Base # :nodoc:
|
22
|
+
def self.check(options)
|
23
|
+
super(options)
|
24
|
+
options[:editable] ||= false
|
25
|
+
options[:scrollable] ||= false
|
26
|
+
options[:height] ||= -1
|
27
|
+
options[:width] ||= -1
|
28
|
+
options[:text] ||= ""
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.build(dialog,options)
|
32
|
+
super(dialog,options)
|
33
|
+
textView = Gtk::TextView.new
|
34
|
+
textView.set_size_request(options[:width].to_i,options[:height].to_i)
|
35
|
+
textView.buffer.text = options[:text].to_s
|
36
|
+
textView.editable = options[:editable]
|
37
|
+
scrolledWindow = Gtk::ScrolledWindow.new
|
38
|
+
scrolledWindow.hscrollbar_policy = options[:scrollable] ? Gtk::POLICY_AUTOMATIC : Gtk::POLICY_NEVER
|
39
|
+
scrolledWindow.vscrollbar_policy = options[:scrollable] ? Gtk::POLICY_AUTOMATIC : Gtk::POLICY_NEVER
|
40
|
+
scrolledWindow.add(textView)
|
41
|
+
dialog.vbox.add(scrolledWindow)
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.retrieve_selection(dialog,options)
|
45
|
+
super(dialog,options)
|
46
|
+
return dialog.vbox.children[0].children[0].buffer.text
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'zerenity/messagedialog'
|
2
|
+
|
3
|
+
module Zerenity
|
4
|
+
# Displays a warning dialog on the screen.
|
5
|
+
#
|
6
|
+
# ====Example Usage
|
7
|
+
# Zerenity::Warning(:text=>"This operation can cause data corruption if interrupted")
|
8
|
+
def self.Warning(options={})
|
9
|
+
Warning.run(options)
|
10
|
+
end
|
11
|
+
|
12
|
+
class Warning < MessageDialog # :nodoc:
|
13
|
+
def self.check(options)
|
14
|
+
super(options)
|
15
|
+
options[:type] = Gtk::MessageDialog::WARNING
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/test/all.rb
ADDED
data/test/tc_base.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('zerenity/base')
|
3
|
+
|
4
|
+
class TC_Base < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
Gtk.init
|
7
|
+
@options={}
|
8
|
+
@dialog=Gtk::Dialog.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_check_normal
|
12
|
+
Zerenity::Base.check(@options)
|
13
|
+
assert(@options[:activatesDefault])
|
14
|
+
assert_equal("",@options[:title])
|
15
|
+
assert_equal("",@options[:text])
|
16
|
+
@options[:activatesDefault] = false
|
17
|
+
Zerenity::Base.check(@options)
|
18
|
+
assert(!@options[:activatesDefault])
|
19
|
+
@options[:activatesDefault] = "Randome object"
|
20
|
+
Zerenity::Base.check(@options)
|
21
|
+
assert(@options[:activatesDefault])
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_normal_build
|
25
|
+
Zerenity::Base.build(@dialog,@options)
|
26
|
+
assert(@options[:ok_button].use_stock?)
|
27
|
+
assert(@options[:cancel_button].use_stock?)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_button_options
|
31
|
+
Zerenity::Base.build(@dialog,@options.merge!(:ok_button => "Foo", :cancel_button => "Bar"))
|
32
|
+
assert_equal "Foo", @options[:ok_button].label
|
33
|
+
assert_equal("Bar", @options[:cancel_button].label)
|
34
|
+
end
|
35
|
+
end
|
data/test/tc_calendar.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('gtk2')
|
3
|
+
require('zerenity/calendar')
|
4
|
+
|
5
|
+
class TC_Calender < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
Gtk.init
|
8
|
+
@options={:text=>"Select a date"}
|
9
|
+
@dialog=Gtk::Dialog.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_build_normal
|
13
|
+
Zerenity::Calendar.build(@dialog,@options)
|
14
|
+
assert_equal(Gtk::Label,@dialog.vbox.children[0].class)
|
15
|
+
assert_equal("Select a date",@dialog.vbox.children[0].text)
|
16
|
+
assert_equal(Gtk::Calendar,@dialog.vbox.children[1].class)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_retrieve_selection_normal
|
20
|
+
Zerenity::Calendar.build(@dialog,@options)
|
21
|
+
@dialog.vbox.children[1].select_month(1,1979)
|
22
|
+
@dialog.vbox.children[1].select_day(5)
|
23
|
+
time = Zerenity::Calendar.retrieve_selection(@dialog,@options)
|
24
|
+
assert_equal(5,time.day)
|
25
|
+
assert_equal(1,time.month)
|
26
|
+
assert_equal(1979,time.year)
|
27
|
+
end
|
28
|
+
end
|
data/test/tc_entry.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require('zerenity/entry')
|
2
|
+
|
3
|
+
class TC_Entry < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
Gtk.init
|
6
|
+
@options = {:title=>"Enter your name",:text=>"Enter your name"}
|
7
|
+
@dialog = Gtk::Dialog.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_build_normal
|
11
|
+
Zerenity::Entry.build(@dialog,@options)
|
12
|
+
assert_equal(true,@dialog.vbox.children[1].visibility?)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_build_adds_default_string
|
16
|
+
Zerenity::Entry.build(@dialog,@options.merge(:string => "hi"))
|
17
|
+
assert_equal("hi", @dialog.vbox.children[1].text)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_build_password
|
21
|
+
@options[:password] = true
|
22
|
+
Zerenity::Entry.build(@dialog,@options)
|
23
|
+
assert_equal(false,@dialog.vbox.children[1].visibility?)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_build_activates_default
|
27
|
+
@options[:activatesDefault] = false
|
28
|
+
Zerenity::Entry.build(@dialog,@options)
|
29
|
+
assert(!@dialog.vbox.children[1].activates_default?)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_check_normal
|
33
|
+
Zerenity::Entry.check(@options)
|
34
|
+
assert(!@options[:password])
|
35
|
+
assert(@options[:activatesDefault])
|
36
|
+
@options[:password] = true
|
37
|
+
Zerenity::Entry.check(@options)
|
38
|
+
assert(@options[:password])
|
39
|
+
@options[:activatesDefault] = false
|
40
|
+
Zerenity::Entry.check(@options)
|
41
|
+
assert(!@options[:activatesDefault])
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_retrieve_selection_normal
|
45
|
+
Zerenity::Entry.build(@dialog,@options)
|
46
|
+
@dialog.vbox.children[1].text = "Farrel"
|
47
|
+
assert_equal("Farrel",Zerenity::Entry.retrieve_selection(@dialog,@options))
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('gtk2')
|
3
|
+
require('zerenity/fileselection')
|
4
|
+
|
5
|
+
class TC_FileSelection < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
Gtk.init
|
8
|
+
@options={}
|
9
|
+
@dialog=Gtk::Dialog.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_check_normal
|
13
|
+
Zerenity::FileSelection.check(@options)
|
14
|
+
assert_equal(Gtk::FileChooser::ACTION_OPEN,@options[:action])
|
15
|
+
assert_equal("",@options[:title])
|
16
|
+
assert_equal(false,@options[:multiple])
|
17
|
+
assert_nil(@options[:filename])
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_check_save
|
21
|
+
@options[:action] = :save
|
22
|
+
Zerenity::FileSelection.check(@options)
|
23
|
+
assert_equal(Gtk::FileChooser::ACTION_SAVE,@options[:action])
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_check_select_folder
|
27
|
+
@options[:action] = :select_folder
|
28
|
+
Zerenity::FileSelection.check(@options)
|
29
|
+
assert_equal(Gtk::FileChooser::ACTION_SELECT_FOLDER,@options[:action])
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_check_create_folder
|
33
|
+
@options[:action] = :create_folder
|
34
|
+
Zerenity::FileSelection.check(@options)
|
35
|
+
assert_equal(Gtk::FileChooser::ACTION_CREATE_FOLDER,@options[:action])
|
36
|
+
end
|
37
|
+
end
|
data/test/tc_info.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('gtk2')
|
3
|
+
require('zerenity/info')
|
4
|
+
|
5
|
+
class TC_Info < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
Gtk.init
|
8
|
+
@options={}
|
9
|
+
@dialog=Gtk::Dialog.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_check_normal
|
13
|
+
Zerenity::Info.check(@options)
|
14
|
+
assert_equal(Gtk::MessageDialog::INFO,@options[:type])
|
15
|
+
end
|
16
|
+
end
|
data/test/tc_list.rb
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('gtk2')
|
3
|
+
require('zerenity/list')
|
4
|
+
|
5
|
+
class TC_List < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
Gtk.init
|
8
|
+
@options = {:columns=>["Snack","Energy(KJ)"],:data=>[["Beer","300"],["Chips","500"],["Chocolate","750"]]}
|
9
|
+
@dialog = Gtk::Dialog.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_check_normal
|
13
|
+
assert_nothing_raised{Zerenity::List.check(@options)}
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_check_no_options
|
17
|
+
assert_raise(ArgumentError,""){Zerenity::List.check}
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_check_no_data
|
21
|
+
@options[:data] = nil
|
22
|
+
assert_raise(ArgumentError,"Column data not set but no error raised"){Zerenity::List.check(@options)}
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_check_no_columns
|
26
|
+
@options[:columns] = nil
|
27
|
+
assert_raise(ArgumentError,"Column headers not set but no error raised"){Zerenity::List.check(@options)}
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_check_different_columns_data_length
|
31
|
+
@options[:columns] << "Fat"
|
32
|
+
assert_raise(ArgumentError,"Columns length greater than data but no error raised"){Zerenity::List.check(@options)}
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_check_different_data_length
|
36
|
+
@options[:data][1] << "100"
|
37
|
+
assert_raise(ArgumentError,"Data lengths differ but no error was raised"){Zerenity::List.check(@options)}
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_check_both_radiolist_checklist
|
41
|
+
@options[:checklist] = true
|
42
|
+
@options[:radiolist] = true
|
43
|
+
assert_raise(ArgumentError,"Radio and checkist options set but no error was raised"){Zerenity::List.check(@options)}
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_build_normal
|
47
|
+
Zerenity::List.build(@dialog,@options)
|
48
|
+
treeView = @dialog.vbox.children[0]
|
49
|
+
assert_equal(Gtk::ListStore,treeView.model.class,"TreeView model class is not ListStore")
|
50
|
+
assert_equal(2,treeView.model.n_columns)
|
51
|
+
assert_equal(String,treeView.model.get_column_type(0))
|
52
|
+
assert_equal(String,treeView.model.get_column_type(1))
|
53
|
+
row = treeView.model.iter_first
|
54
|
+
@options[:data].each do |datarow|
|
55
|
+
datarow.each_with_index do |value,index|
|
56
|
+
assert_equal(value,row[index])
|
57
|
+
end
|
58
|
+
row.next!
|
59
|
+
end
|
60
|
+
assert_equal(@options[:columns].size,treeView.columns.size)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_retrieve_selection_normal
|
64
|
+
Zerenity::List.build(@dialog,@options)
|
65
|
+
treeView = @dialog.vbox.children[0]
|
66
|
+
treeView.selection.select_iter(treeView.model.iter_first)
|
67
|
+
selection = Zerenity::List.retrieve_selection(@dialog,@options)
|
68
|
+
assert_equal(@options[:data][0][0],selection[0])
|
69
|
+
assert_equal(@options[:data][0][1],selection[1])
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_build_radio
|
73
|
+
@options[:columns] = Array("Selected").concat(@options[:columns])
|
74
|
+
@options[:data][0] = Array(true).concat(@options[:data][0])
|
75
|
+
@options[:data][1] = Array(false).concat(@options[:data][1])
|
76
|
+
@options[:data][2] = Array(false).concat(@options[:data][2])
|
77
|
+
@options[:radiolist] = true
|
78
|
+
Zerenity::List.build(@dialog,@options)
|
79
|
+
treeView = @dialog.vbox.children[0]
|
80
|
+
assert_equal(3,treeView.model.n_columns)
|
81
|
+
assert_equal(TrueClass,treeView.model.get_column_type(0))
|
82
|
+
assert_equal(String,treeView.model.get_column_type(1))
|
83
|
+
assert_equal(String,treeView.model.get_column_type(2))
|
84
|
+
row = treeView.model.iter_first
|
85
|
+
@options[:data].each do |datarow|
|
86
|
+
datarow.each_with_index do |value,index|
|
87
|
+
assert_equal(value,row[index])
|
88
|
+
end
|
89
|
+
row.next!
|
90
|
+
end
|
91
|
+
assert_equal(@options[:columns].size,treeView.columns.size)
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_retrieve_selection_radio
|
95
|
+
@options[:columns] = Array("Selected").concat(@options[:columns])
|
96
|
+
@options[:data][0] = Array(true).concat(@options[:data][0])
|
97
|
+
@options[:data][1] = Array(false).concat(@options[:data][1])
|
98
|
+
@options[:data][2] = Array(false).concat(@options[:data][2])
|
99
|
+
@options[:radiolist] = true
|
100
|
+
Zerenity::List.build(@dialog,@options)
|
101
|
+
selected = Zerenity::List.retrieve_selection(@dialog,@options)
|
102
|
+
assert_equal(@options[:data][0][1..2],selected)
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_build_checklist
|
106
|
+
@options[:columns] = Array("Selected").concat(@options[:columns])
|
107
|
+
@options[:data][0] = Array(true).concat(@options[:data][0])
|
108
|
+
@options[:data][1] = Array(true).concat(@options[:data][1])
|
109
|
+
@options[:data][2] = Array(false).concat(@options[:data][2])
|
110
|
+
@options[:checklist] = true
|
111
|
+
Zerenity::List.build(@dialog,@options)
|
112
|
+
treeView = @dialog.vbox.children[0]
|
113
|
+
assert_equal(3,treeView.model.n_columns)
|
114
|
+
assert_equal(TrueClass,treeView.model.get_column_type(0))
|
115
|
+
assert_equal(String,treeView.model.get_column_type(1))
|
116
|
+
assert_equal(String,treeView.model.get_column_type(2))
|
117
|
+
row = treeView.model.iter_first
|
118
|
+
@options[:data].each do |datarow|
|
119
|
+
datarow.each_with_index do |value,index|
|
120
|
+
assert_equal(value,row[index])
|
121
|
+
end
|
122
|
+
row.next!
|
123
|
+
end
|
124
|
+
assert_equal(@options[:columns].size,treeView.columns.size)
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_retrieve_selection_cheklist
|
128
|
+
@options[:columns] = Array("Selected").concat(@options[:columns])
|
129
|
+
@options[:data][0] = Array(true).concat(@options[:data][0])
|
130
|
+
@options[:data][1] = Array(true).concat(@options[:data][1])
|
131
|
+
@options[:data][2] = Array(false).concat(@options[:data][2])
|
132
|
+
@options[:checklist] = true
|
133
|
+
Zerenity::List.build(@dialog,@options)
|
134
|
+
selected = Zerenity::List.retrieve_selection(@dialog,@options)
|
135
|
+
assert_equal(@options[:data][0][1..2],selected[0])
|
136
|
+
assert_equal(@options[:data][1][1..2],selected[1])
|
137
|
+
end
|
138
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('gtk2')
|
3
|
+
require('zerenity/messagedialog')
|
4
|
+
|
5
|
+
class TC_MessageDialog < Test::Unit::TestCase
|
6
|
+
def setup
|
7
|
+
Gtk.init
|
8
|
+
@options={}
|
9
|
+
@dialog = Gtk::Dialog.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_build_normal
|
13
|
+
Zerenity::MessageDialog.build(@dialog,@options)
|
14
|
+
assert_nil(@options[:cancel_button])
|
15
|
+
end
|
16
|
+
end
|
data/test/tc_progress.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
require('test/unit')
|
2
|
+
require('zerenity/progress')
|
3
|
+
|
4
|
+
class TC_Progress < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
Gtk.init
|
7
|
+
@options = {:title=>"Operation in progress",:text=>"Building index..."}
|
8
|
+
@dialog = Gtk::Dialog.new
|
9
|
+
@hButtonBox = Gtk::HButtonBox.new
|
10
|
+
@hButtonBox.add(Gtk::Button.new)
|
11
|
+
@hButtonBox.add(Gtk::Button.new)
|
12
|
+
@progressProxy = Zerenity::ProgressProxy.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_build_normal
|
16
|
+
Zerenity::Progress.build(@dialog,@options,@progressProxy)
|
17
|
+
assert_equal(Gtk::ProgressBar,@dialog.vbox.children[1].class)
|
18
|
+
assert_equal(@options[:text],@dialog.vbox.children[0].text)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_check_normal
|
22
|
+
Zerenity::Progress.check(@options)
|
23
|
+
assert(!@options[:autoClose])
|
24
|
+
assert(!@options[:cancellable])
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_check_options
|
28
|
+
@options[:autoClose]=true
|
29
|
+
@options[:cancellable]=true
|
30
|
+
Zerenity::Progress.check(@options)
|
31
|
+
assert(@options[:autoClose])
|
32
|
+
assert(@options[:cancellable])
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class TC_ProgressProxy < Test::Unit::TestCase
|
37
|
+
def setup
|
38
|
+
Gtk.init
|
39
|
+
@progressBar = Gtk::ProgressBar.new
|
40
|
+
@progress= Zerenity::ProgressProxy.new
|
41
|
+
@progress.progressBar = @progressBar
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_update
|
45
|
+
@progress.update(0.10,"10%")
|
46
|
+
assert_equal(0.10,@progressBar.fraction)
|
47
|
+
assert_equal("10%",@progressBar.text)
|
48
|
+
@progress.update(0.15)
|
49
|
+
assert_equal(0.15,@progressBar.fraction)
|
50
|
+
assert_raise(ArgumentError){@progress.update}
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_pulse
|
54
|
+
@progress.pulse
|
55
|
+
assert(@progressBar.pulse)
|
56
|
+
assert_nil(@progressBar.text)
|
57
|
+
@progress.pulse("Compiling")
|
58
|
+
assert(@progressBar.pulse)
|
59
|
+
assert_equal("Compiling",@progressBar.text)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_text
|
63
|
+
@progress.text="Compiling"
|
64
|
+
assert_equal("Compiling",@progressBar.text)
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_percentage
|
68
|
+
@progress.percentage=0.5
|
69
|
+
assert_equal(0.5,@progressBar.fraction)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_cancelled
|
73
|
+
@progress.cancel!
|
74
|
+
assert_equal(true,@progress.cancelled?)
|
75
|
+
end
|
76
|
+
end
|