actionpack 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- data/CHANGELOG +17 -0
- data/Rakefile +10 -6
- data/lib/action_controller.rb +0 -0
- data/lib/action_controller/assertions/response_assertions.rb +1 -1
- data/lib/action_controller/assertions/selector_assertions.rb +26 -46
- data/lib/action_controller/base.rb +8 -4
- data/lib/action_controller/dispatcher.rb +1 -1
- data/lib/action_controller/filters.rb +194 -195
- data/lib/action_controller/polymorphic_routes.rb +25 -12
- data/lib/action_controller/record_identifier.rb +20 -13
- data/lib/action_controller/request.rb +9 -6
- data/lib/action_controller/request_profiler.rb +0 -0
- data/lib/action_controller/response.rb +0 -0
- data/lib/action_controller/routing.rb +5 -1
- data/lib/action_controller/routing/builder.rb +1 -2
- data/lib/action_controller/routing/segments.rb +1 -1
- data/lib/action_controller/templates/rescues/layout.erb +1 -1
- data/lib/action_controller/test_process.rb +4 -2
- data/lib/action_controller/vendor/html-scanner/html/document.rb +1 -1
- data/lib/action_controller/verification.rb +1 -1
- data/lib/action_pack/version.rb +1 -1
- data/lib/action_view/base.rb +7 -3
- data/lib/action_view/helpers/asset_tag_helper.rb +14 -11
- data/lib/action_view/helpers/date_helper.rb +3 -3
- data/lib/action_view/helpers/form_helper.rb +5 -1
- data/lib/action_view/helpers/form_options_helper.rb +2 -2
- data/lib/action_view/helpers/form_tag_helper.rb +5 -3
- data/lib/action_view/helpers/javascript_helper.rb +4 -4
- data/lib/action_view/helpers/prototype_helper.rb +7 -7
- data/lib/action_view/helpers/tag_helper.rb +4 -3
- data/lib/action_view/helpers/text_helper.rb +1 -1
- data/lib/action_view/helpers/url_helper.rb +3 -5
- data/lib/action_view/partial_template.rb +1 -1
- data/test/controller/action_pack_assertions_test.rb +24 -5
- data/test/controller/assert_select_test.rb +6 -1
- data/test/controller/base_test.rb +37 -1
- data/test/controller/cgi_test.rb +0 -0
- data/test/controller/dispatcher_test.rb +2 -2
- data/test/controller/html-scanner/document_test.rb +25 -0
- data/test/controller/integration_upload_test.rb +1 -1
- data/test/controller/new_render_test.rb +22 -3
- data/test/controller/polymorphic_routes_test.rb +33 -0
- data/test/controller/redirect_test.rb +0 -0
- data/test/controller/render_test.rb +1 -1
- data/test/controller/request_test.rb +6 -0
- data/test/controller/resources_test.rb +15 -17
- data/test/controller/routing_test.rb +22 -2
- data/test/controller/session/cookie_store_test.rb +0 -0
- data/test/controller/test_test.rb +11 -2
- data/test/controller/verification_test.rb +34 -17
- data/test/fixtures/test/render_file_from_template.html.erb +1 -0
- data/test/template/date_helper_test.rb +59 -8
- data/test/template/deprecated_erb_variable_test.rb +9 -0
- data/test/template/form_options_helper_test.rb +505 -514
- data/test/template/form_tag_helper_test.rb +13 -0
- data/test/template/javascript_helper_test.rb +7 -4
- data/test/template/prototype_helper_test.rb +14 -6
- data/test/template/text_helper_test.rb +1 -0
- data/test/template/url_helper_test.rb +11 -1
- metadata +8 -4
@@ -1,66 +1,43 @@
|
|
1
1
|
require 'abstract_unit'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
def to_s
|
19
|
-
@name
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
ActionView::Helpers::FormOptionsHelper::TimeZone = MockTimeZone
|
24
|
-
|
25
|
-
class FormOptionsHelperTest < ActionView::TestCase
|
26
|
-
tests ActionView::Helpers::FormOptionsHelper
|
27
|
-
|
28
|
-
silence_warnings do
|
29
|
-
Post = Struct.new('Post', :title, :author_name, :body, :secret, :written_on, :category, :origin)
|
30
|
-
Continent = Struct.new('Continent', :continent_name, :countries)
|
31
|
-
Country = Struct.new('Country', :country_id, :country_name)
|
32
|
-
Firm = Struct.new('Firm', :time_zone)
|
33
|
-
Album = Struct.new('Album', :id, :title, :genre)
|
34
|
-
end
|
3
|
+
TZInfo::Timezone.cattr_reader :loaded_zones
|
4
|
+
|
5
|
+
uses_mocha "FormOptionsHelperTest" do
|
6
|
+
class FormOptionsHelperTest < ActionView::TestCase
|
7
|
+
tests ActionView::Helpers::FormOptionsHelper
|
8
|
+
|
9
|
+
silence_warnings do
|
10
|
+
Post = Struct.new('Post', :title, :author_name, :body, :secret, :written_on, :category, :origin)
|
11
|
+
Continent = Struct.new('Continent', :continent_name, :countries)
|
12
|
+
Country = Struct.new('Country', :country_id, :country_name)
|
13
|
+
Firm = Struct.new('Firm', :time_zone)
|
14
|
+
Album = Struct.new('Album', :id, :title, :genre)
|
15
|
+
end
|
35
16
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\">Babe went home</option>\n<option value=\"Cabe\">Cabe went home</option>",
|
45
|
-
options_from_collection_for_select(@posts, "author_name", "title")
|
46
|
-
)
|
47
|
-
end
|
17
|
+
def setup
|
18
|
+
@fake_timezones = %w(A B C D E).inject([]) do |zones, id|
|
19
|
+
tz = TZInfo::Timezone.loaded_zones[id] = stub(:name => id, :to_s => id)
|
20
|
+
ActiveSupport::TimeZone.stubs(:[]).with(id).returns(tz)
|
21
|
+
zones << tz
|
22
|
+
end
|
23
|
+
ActiveSupport::TimeZone.stubs(:all).returns(@fake_timezones)
|
24
|
+
end
|
48
25
|
|
26
|
+
def test_collection_options
|
27
|
+
@posts = [
|
28
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
29
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
30
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
31
|
+
]
|
49
32
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
]
|
33
|
+
assert_dom_equal(
|
34
|
+
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\">Babe went home</option>\n<option value=\"Cabe\">Cabe went home</option>",
|
35
|
+
options_from_collection_for_select(@posts, "author_name", "title")
|
36
|
+
)
|
37
|
+
end
|
56
38
|
|
57
|
-
assert_dom_equal(
|
58
|
-
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\" selected=\"selected\">Babe went home</option>\n<option value=\"Cabe\">Cabe went home</option>",
|
59
|
-
options_from_collection_for_select(@posts, "author_name", "title", "Babe")
|
60
|
-
)
|
61
|
-
end
|
62
39
|
|
63
|
-
|
40
|
+
def test_collection_options_with_preselected_value
|
64
41
|
@posts = [
|
65
42
|
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
66
43
|
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
@@ -68,358 +45,371 @@ class FormOptionsHelperTest < ActionView::TestCase
|
|
68
45
|
]
|
69
46
|
|
70
47
|
assert_dom_equal(
|
71
|
-
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\" selected=\"selected\">Babe went home</option>\n<option value=\"Cabe\"
|
72
|
-
options_from_collection_for_select(@posts, "author_name", "title",
|
48
|
+
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\" selected=\"selected\">Babe went home</option>\n<option value=\"Cabe\">Cabe went home</option>",
|
49
|
+
options_from_collection_for_select(@posts, "author_name", "title", "Babe")
|
73
50
|
)
|
74
|
-
|
51
|
+
end
|
75
52
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
53
|
+
def test_collection_options_with_preselected_value_array
|
54
|
+
@posts = [
|
55
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
56
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
57
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
58
|
+
]
|
59
|
+
|
60
|
+
assert_dom_equal(
|
61
|
+
"<option value=\"<Abe>\"><Abe> went home</option>\n<option value=\"Babe\" selected=\"selected\">Babe went home</option>\n<option value=\"Cabe\" selected=\"selected\">Cabe went home</option>",
|
62
|
+
options_from_collection_for_select(@posts, "author_name", "title", [ "Babe", "Cabe" ])
|
63
|
+
)
|
64
|
+
end
|
82
65
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
66
|
+
def test_array_options_for_select
|
67
|
+
assert_dom_equal(
|
68
|
+
"<option value=\"<Denmark>\"><Denmark></option>\n<option value=\"USA\">USA</option>\n<option value=\"Sweden\">Sweden</option>",
|
69
|
+
options_for_select([ "<Denmark>", "USA", "Sweden" ])
|
70
|
+
)
|
71
|
+
end
|
89
72
|
|
90
|
-
|
73
|
+
def test_array_options_for_select_with_selection
|
91
74
|
assert_dom_equal(
|
92
|
-
"<option value=\"Denmark\">Denmark</option>\n<option value=\"<USA>\" selected=\"selected\"><USA></option>\n<option value=\"Sweden\"
|
93
|
-
options_for_select([ "Denmark", "<USA>", "Sweden" ],
|
75
|
+
"<option value=\"Denmark\">Denmark</option>\n<option value=\"<USA>\" selected=\"selected\"><USA></option>\n<option value=\"Sweden\">Sweden</option>",
|
76
|
+
options_for_select([ "Denmark", "<USA>", "Sweden" ], "<USA>")
|
94
77
|
)
|
95
|
-
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_array_options_for_select_with_selection_array
|
81
|
+
assert_dom_equal(
|
82
|
+
"<option value=\"Denmark\">Denmark</option>\n<option value=\"<USA>\" selected=\"selected\"><USA></option>\n<option value=\"Sweden\" selected=\"selected\">Sweden</option>",
|
83
|
+
options_for_select([ "Denmark", "<USA>", "Sweden" ], [ "<USA>", "Sweden" ])
|
84
|
+
)
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_array_options_for_string_include_in_other_string_bug_fix
|
88
|
+
assert_dom_equal(
|
89
|
+
"<option value=\"ruby\">ruby</option>\n<option value=\"rubyonrails\" selected=\"selected\">rubyonrails</option>",
|
90
|
+
options_for_select([ "ruby", "rubyonrails" ], "rubyonrails")
|
91
|
+
)
|
92
|
+
assert_dom_equal(
|
93
|
+
"<option value=\"ruby\" selected=\"selected\">ruby</option>\n<option value=\"rubyonrails\">rubyonrails</option>",
|
94
|
+
options_for_select([ "ruby", "rubyonrails" ], "ruby")
|
95
|
+
)
|
96
|
+
assert_dom_equal(
|
97
|
+
%(<option value="ruby" selected="selected">ruby</option>\n<option value="rubyonrails">rubyonrails</option>\n<option value=""></option>),
|
98
|
+
options_for_select([ "ruby", "rubyonrails", nil ], "ruby")
|
99
|
+
)
|
100
|
+
end
|
96
101
|
|
97
|
-
|
102
|
+
def test_hash_options_for_select
|
98
103
|
assert_dom_equal(
|
99
|
-
"<option value=\"
|
100
|
-
options_for_select(
|
104
|
+
"<option value=\"<Kroner>\"><DKR></option>\n<option value=\"Dollar\">$</option>",
|
105
|
+
options_for_select("$" => "Dollar", "<DKR>" => "<Kroner>").split("\n").sort.join("\n")
|
101
106
|
)
|
102
107
|
assert_dom_equal(
|
103
|
-
"<option value=\"
|
104
|
-
options_for_select(
|
108
|
+
"<option value=\"<Kroner>\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
109
|
+
options_for_select({ "$" => "Dollar", "<DKR>" => "<Kroner>" }, "Dollar").split("\n").sort.join("\n")
|
105
110
|
)
|
106
111
|
assert_dom_equal(
|
107
|
-
|
108
|
-
options_for_select(
|
112
|
+
"<option value=\"<Kroner>\" selected=\"selected\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
113
|
+
options_for_select({ "$" => "Dollar", "<DKR>" => "<Kroner>" }, [ "Dollar", "<Kroner>" ]).split("\n").sort.join("\n")
|
109
114
|
)
|
110
|
-
|
115
|
+
end
|
111
116
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
117
|
+
def test_ducktyped_options_for_select
|
118
|
+
quack = Struct.new(:first, :last)
|
119
|
+
assert_dom_equal(
|
120
|
+
"<option value=\"<Kroner>\"><DKR></option>\n<option value=\"Dollar\">$</option>",
|
121
|
+
options_for_select([quack.new("<DKR>", "<Kroner>"), quack.new("$", "Dollar")])
|
122
|
+
)
|
123
|
+
assert_dom_equal(
|
124
|
+
"<option value=\"<Kroner>\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
125
|
+
options_for_select([quack.new("<DKR>", "<Kroner>"), quack.new("$", "Dollar")], "Dollar")
|
126
|
+
)
|
127
|
+
assert_dom_equal(
|
128
|
+
"<option value=\"<Kroner>\" selected=\"selected\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
129
|
+
options_for_select([quack.new("<DKR>", "<Kroner>"), quack.new("$", "Dollar")], ["Dollar", "<Kroner>"])
|
130
|
+
)
|
131
|
+
end
|
126
132
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
)
|
133
|
-
assert_dom_equal(
|
134
|
-
"<option value=\"<Kroner>\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
135
|
-
options_for_select([quack.new("<DKR>", "<Kroner>"), quack.new("$", "Dollar")], "Dollar")
|
136
|
-
)
|
137
|
-
assert_dom_equal(
|
138
|
-
"<option value=\"<Kroner>\" selected=\"selected\"><DKR></option>\n<option value=\"Dollar\" selected=\"selected\">$</option>",
|
139
|
-
options_for_select([quack.new("<DKR>", "<Kroner>"), quack.new("$", "Dollar")], ["Dollar", "<Kroner>"])
|
140
|
-
)
|
141
|
-
end
|
133
|
+
def test_option_groups_from_collection_for_select
|
134
|
+
@continents = [
|
135
|
+
Continent.new("<Africa>", [Country.new("<sa>", "<South Africa>"), Country.new("so", "Somalia")] ),
|
136
|
+
Continent.new("Europe", [Country.new("dk", "Denmark"), Country.new("ie", "Ireland")] )
|
137
|
+
]
|
142
138
|
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
139
|
+
assert_dom_equal(
|
140
|
+
"<optgroup label=\"<Africa>\"><option value=\"<sa>\"><South Africa></option>\n<option value=\"so\">Somalia</option></optgroup><optgroup label=\"Europe\"><option value=\"dk\" selected=\"selected\">Denmark</option>\n<option value=\"ie\">Ireland</option></optgroup>",
|
141
|
+
option_groups_from_collection_for_select(@continents, "countries", "continent_name", "country_id", "country_name", "dk")
|
142
|
+
)
|
143
|
+
end
|
148
144
|
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
145
|
+
def test_time_zone_options_no_parms
|
146
|
+
opts = time_zone_options_for_select
|
147
|
+
assert_dom_equal "<option value=\"A\">A</option>\n" +
|
148
|
+
"<option value=\"B\">B</option>\n" +
|
149
|
+
"<option value=\"C\">C</option>\n" +
|
150
|
+
"<option value=\"D\">D</option>\n" +
|
151
|
+
"<option value=\"E\">E</option>",
|
152
|
+
opts
|
153
|
+
end
|
154
154
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
155
|
+
def test_time_zone_options_with_selected
|
156
|
+
opts = time_zone_options_for_select( "D" )
|
157
|
+
assert_dom_equal "<option value=\"A\">A</option>\n" +
|
158
|
+
"<option value=\"B\">B</option>\n" +
|
159
|
+
"<option value=\"C\">C</option>\n" +
|
160
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
161
|
+
"<option value=\"E\">E</option>",
|
162
|
+
opts
|
163
|
+
end
|
164
164
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
165
|
+
def test_time_zone_options_with_unknown_selected
|
166
|
+
opts = time_zone_options_for_select( "K" )
|
167
|
+
assert_dom_equal "<option value=\"A\">A</option>\n" +
|
168
|
+
"<option value=\"B\">B</option>\n" +
|
169
|
+
"<option value=\"C\">C</option>\n" +
|
170
|
+
"<option value=\"D\">D</option>\n" +
|
171
|
+
"<option value=\"E\">E</option>",
|
172
|
+
opts
|
173
|
+
end
|
174
174
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
175
|
+
def test_time_zone_options_with_priority_zones
|
176
|
+
zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
|
177
|
+
opts = time_zone_options_for_select( nil, zones )
|
178
|
+
assert_dom_equal "<option value=\"B\">B</option>\n" +
|
179
|
+
"<option value=\"E\">E</option>" +
|
180
|
+
"<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
|
181
|
+
"<option value=\"A\">A</option>\n" +
|
182
|
+
"<option value=\"C\">C</option>\n" +
|
183
|
+
"<option value=\"D\">D</option>",
|
184
|
+
opts
|
185
|
+
end
|
184
186
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
187
|
+
def test_time_zone_options_with_selected_priority_zones
|
188
|
+
zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
|
189
|
+
opts = time_zone_options_for_select( "E", zones )
|
190
|
+
assert_dom_equal "<option value=\"B\">B</option>\n" +
|
191
|
+
"<option value=\"E\" selected=\"selected\">E</option>" +
|
192
|
+
"<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
|
193
|
+
"<option value=\"A\">A</option>\n" +
|
194
|
+
"<option value=\"C\">C</option>\n" +
|
195
|
+
"<option value=\"D\">D</option>",
|
196
|
+
opts
|
197
|
+
end
|
196
198
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
199
|
+
def test_time_zone_options_with_unselected_priority_zones
|
200
|
+
zones = [ ActiveSupport::TimeZone.new( "B" ), ActiveSupport::TimeZone.new( "E" ) ]
|
201
|
+
opts = time_zone_options_for_select( "C", zones )
|
202
|
+
assert_dom_equal "<option value=\"B\">B</option>\n" +
|
203
|
+
"<option value=\"E\">E</option>" +
|
204
|
+
"<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
|
205
|
+
"<option value=\"A\">A</option>\n" +
|
206
|
+
"<option value=\"C\" selected=\"selected\">C</option>\n" +
|
207
|
+
"<option value=\"D\">D</option>",
|
208
|
+
opts
|
209
|
+
end
|
208
210
|
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
"<option value=\"D\">D</option>",
|
218
|
-
opts
|
219
|
-
end
|
211
|
+
def test_select
|
212
|
+
@post = Post.new
|
213
|
+
@post.category = "<mus>"
|
214
|
+
assert_dom_equal(
|
215
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
216
|
+
select("post", "category", %w( abe <mus> hest))
|
217
|
+
)
|
218
|
+
end
|
220
219
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
assert_dom_equal(
|
225
|
-
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
226
|
-
select("post", "category", %w( abe <mus> hest))
|
227
|
-
)
|
228
|
-
end
|
220
|
+
def test_select_under_fields_for
|
221
|
+
@post = Post.new
|
222
|
+
@post.category = "<mus>"
|
229
223
|
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
224
|
+
_erbout = ''
|
225
|
+
|
226
|
+
fields_for :post, @post do |f|
|
227
|
+
_erbout.concat f.select(:category, %w( abe <mus> hest))
|
228
|
+
end
|
229
|
+
|
230
|
+
assert_dom_equal(
|
231
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
232
|
+
_erbout
|
233
|
+
)
|
238
234
|
end
|
239
|
-
|
240
|
-
assert_dom_equal(
|
241
|
-
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
242
|
-
_erbout
|
243
|
-
)
|
244
|
-
end
|
245
235
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
236
|
+
def test_select_with_blank
|
237
|
+
@post = Post.new
|
238
|
+
@post.category = "<mus>"
|
239
|
+
assert_dom_equal(
|
240
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"\"></option>\n<option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
241
|
+
select("post", "category", %w( abe <mus> hest), :include_blank => true)
|
242
|
+
)
|
243
|
+
end
|
254
244
|
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
245
|
+
def test_select_with_blank_as_string
|
246
|
+
@post = Post.new
|
247
|
+
@post.category = "<mus>"
|
248
|
+
assert_dom_equal(
|
249
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"\">None</option>\n<option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
250
|
+
select("post", "category", %w( abe <mus> hest), :include_blank => 'None')
|
251
|
+
)
|
252
|
+
end
|
263
253
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
254
|
+
def test_select_with_default_prompt
|
255
|
+
@post = Post.new
|
256
|
+
@post.category = ""
|
257
|
+
assert_dom_equal(
|
258
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"\">Please select</option>\n<option value=\"abe\">abe</option>\n<option value=\"<mus>\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
259
|
+
select("post", "category", %w( abe <mus> hest), :prompt => true)
|
260
|
+
)
|
261
|
+
end
|
272
262
|
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
263
|
+
def test_select_no_prompt_when_select_has_value
|
264
|
+
@post = Post.new
|
265
|
+
@post.category = "<mus>"
|
266
|
+
assert_dom_equal(
|
267
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\" selected=\"selected\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
268
|
+
select("post", "category", %w( abe <mus> hest), :prompt => true)
|
269
|
+
)
|
270
|
+
end
|
281
271
|
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
272
|
+
def test_select_with_given_prompt
|
273
|
+
@post = Post.new
|
274
|
+
@post.category = ""
|
275
|
+
assert_dom_equal(
|
276
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"\">The prompt</option>\n<option value=\"abe\">abe</option>\n<option value=\"<mus>\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
277
|
+
select("post", "category", %w( abe <mus> hest), :prompt => 'The prompt')
|
278
|
+
)
|
279
|
+
end
|
290
280
|
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
281
|
+
def test_select_with_prompt_and_blank
|
282
|
+
@post = Post.new
|
283
|
+
@post.category = ""
|
284
|
+
assert_dom_equal(
|
285
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"\">Please select</option>\n<option value=\"\"></option>\n<option value=\"abe\">abe</option>\n<option value=\"<mus>\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
286
|
+
select("post", "category", %w( abe <mus> hest), :prompt => true, :include_blank => true)
|
287
|
+
)
|
288
|
+
end
|
299
289
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
def test_select_with_index_option
|
310
|
-
@album = Album.new
|
311
|
-
@album.id = 1
|
290
|
+
def test_select_with_selected_value
|
291
|
+
@post = Post.new
|
292
|
+
@post.category = "<mus>"
|
293
|
+
assert_dom_equal(
|
294
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\" selected=\"selected\">abe</option>\n<option value=\"<mus>\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
295
|
+
select("post", "category", %w( abe <mus> hest ), :selected => 'abe')
|
296
|
+
)
|
297
|
+
end
|
312
298
|
|
313
|
-
|
299
|
+
def test_select_with_index_option
|
300
|
+
@album = Album.new
|
301
|
+
@album.id = 1
|
314
302
|
|
315
|
-
|
316
|
-
expected,
|
317
|
-
select("album[]", "genre", %w[rap rock country], {}, { :index => nil })
|
318
|
-
)
|
319
|
-
end
|
303
|
+
expected = "<select id=\"album__genre\" name=\"album[][genre]\"><option value=\"rap\">rap</option>\n<option value=\"rock\">rock</option>\n<option value=\"country\">country</option></select>"
|
320
304
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
select("post", "category", %w( abe <mus> hest ), :selected => nil)
|
327
|
-
)
|
328
|
-
end
|
305
|
+
assert_dom_equal(
|
306
|
+
expected,
|
307
|
+
select("album[]", "genre", %w[rap rock country], {}, { :index => nil })
|
308
|
+
)
|
309
|
+
end
|
329
310
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
311
|
+
def test_select_with_selected_nil
|
312
|
+
@post = Post.new
|
313
|
+
@post.category = "<mus>"
|
314
|
+
assert_dom_equal(
|
315
|
+
"<select id=\"post_category\" name=\"post[category]\"><option value=\"abe\">abe</option>\n<option value=\"<mus>\"><mus></option>\n<option value=\"hest\">hest</option></select>",
|
316
|
+
select("post", "category", %w( abe <mus> hest ), :selected => nil)
|
317
|
+
)
|
318
|
+
end
|
336
319
|
|
337
|
-
|
338
|
-
|
320
|
+
def test_collection_select
|
321
|
+
@posts = [
|
322
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
323
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
324
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
325
|
+
]
|
339
326
|
|
340
|
-
|
341
|
-
|
342
|
-
collection_select("post", "author_name", @posts, "author_name", "author_name")
|
343
|
-
)
|
344
|
-
end
|
327
|
+
@post = Post.new
|
328
|
+
@post.author_name = "Babe"
|
345
329
|
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
]
|
330
|
+
assert_dom_equal(
|
331
|
+
"<select id=\"post_author_name\" name=\"post[author_name]\"><option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
|
332
|
+
collection_select("post", "author_name", @posts, "author_name", "author_name")
|
333
|
+
)
|
334
|
+
end
|
352
335
|
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
336
|
+
def test_collection_select_under_fields_for
|
337
|
+
@posts = [
|
338
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
339
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
340
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
341
|
+
]
|
342
|
+
|
343
|
+
@post = Post.new
|
344
|
+
@post.author_name = "Babe"
|
345
|
+
|
346
|
+
_erbout = ''
|
347
|
+
|
348
|
+
fields_for :post, @post do |f|
|
349
|
+
_erbout.concat f.collection_select(:author_name, @posts, :author_name, :author_name)
|
350
|
+
end
|
351
|
+
|
352
|
+
assert_dom_equal(
|
353
|
+
"<select id=\"post_author_name\" name=\"post[author_name]\"><option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
|
354
|
+
_erbout
|
355
|
+
)
|
360
356
|
end
|
361
|
-
|
362
|
-
assert_dom_equal(
|
363
|
-
"<select id=\"post_author_name\" name=\"post[author_name]\"><option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
|
364
|
-
_erbout
|
365
|
-
)
|
366
|
-
end
|
367
357
|
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
358
|
+
def test_collection_select_with_blank_and_style
|
359
|
+
@posts = [
|
360
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
361
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
362
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
363
|
+
]
|
374
364
|
|
375
|
-
|
376
|
-
|
365
|
+
@post = Post.new
|
366
|
+
@post.author_name = "Babe"
|
377
367
|
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
368
|
+
assert_dom_equal(
|
369
|
+
"<select id=\"post_author_name\" name=\"post[author_name]\" style=\"width: 200px\"><option value=\"\"></option>\n<option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
|
370
|
+
collection_select("post", "author_name", @posts, "author_name", "author_name", { :include_blank => true }, "style" => "width: 200px")
|
371
|
+
)
|
372
|
+
end
|
383
373
|
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
374
|
+
def test_collection_select_with_blank_as_string_and_style
|
375
|
+
@posts = [
|
376
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
377
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
378
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
379
|
+
]
|
390
380
|
|
391
|
-
|
392
|
-
|
381
|
+
@post = Post.new
|
382
|
+
@post.author_name = "Babe"
|
393
383
|
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
384
|
+
assert_dom_equal(
|
385
|
+
"<select id=\"post_author_name\" name=\"post[author_name]\" style=\"width: 200px\"><option value=\"\">No Selection</option>\n<option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>",
|
386
|
+
collection_select("post", "author_name", @posts, "author_name", "author_name", { :include_blank => 'No Selection' }, "style" => "width: 200px")
|
387
|
+
)
|
388
|
+
end
|
399
389
|
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
390
|
+
def test_collection_select_with_multiple_option_appends_array_brackets
|
391
|
+
@posts = [
|
392
|
+
Post.new("<Abe> went home", "<Abe>", "To a little house", "shh!"),
|
393
|
+
Post.new("Babe went home", "Babe", "To a little house", "shh!"),
|
394
|
+
Post.new("Cabe went home", "Cabe", "To a little house", "shh!")
|
395
|
+
]
|
406
396
|
|
407
|
-
|
408
|
-
|
397
|
+
@post = Post.new
|
398
|
+
@post.author_name = "Babe"
|
409
399
|
|
410
|
-
|
400
|
+
expected = "<select id=\"post_author_name\" name=\"post[author_name][]\" multiple=\"multiple\"><option value=\"\"></option>\n<option value=\"<Abe>\"><Abe></option>\n<option value=\"Babe\" selected=\"selected\">Babe</option>\n<option value=\"Cabe\">Cabe</option></select>"
|
411
401
|
|
412
|
-
|
413
|
-
|
402
|
+
# Should suffix default name with [].
|
403
|
+
assert_dom_equal expected, collection_select("post", "author_name", @posts, "author_name", "author_name", { :include_blank => true }, :multiple => true)
|
414
404
|
|
415
|
-
|
416
|
-
|
417
|
-
|
405
|
+
# Shouldn't suffix custom name with [].
|
406
|
+
assert_dom_equal expected, collection_select("post", "author_name", @posts, "author_name", "author_name", { :include_blank => true, :name => 'post[author_name][]' }, :multiple => true)
|
407
|
+
end
|
418
408
|
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
409
|
+
def test_country_select
|
410
|
+
@post = Post.new
|
411
|
+
@post.origin = "Denmark"
|
412
|
+
expected_select = <<-COUNTRIES
|
423
413
|
<select id="post_origin" name="post[origin]"><option value="Afghanistan">Afghanistan</option>
|
424
414
|
<option value="Aland Islands">Aland Islands</option>
|
425
415
|
<option value="Albania">Albania</option>
|
@@ -665,14 +655,14 @@ class FormOptionsHelperTest < ActionView::TestCase
|
|
665
655
|
<option value="Yemen">Yemen</option>
|
666
656
|
<option value="Zambia">Zambia</option>
|
667
657
|
<option value="Zimbabwe">Zimbabwe</option></select>
|
668
|
-
COUNTRIES
|
669
|
-
|
670
|
-
|
658
|
+
COUNTRIES
|
659
|
+
assert_dom_equal(expected_select[0..-2], country_select("post", "origin"))
|
660
|
+
end
|
671
661
|
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
662
|
+
def test_country_select_with_priority_countries
|
663
|
+
@post = Post.new
|
664
|
+
@post.origin = "Denmark"
|
665
|
+
expected_select = <<-COUNTRIES
|
676
666
|
<select id="post_origin" name="post[origin]"><option value="New Zealand">New Zealand</option>
|
677
667
|
<option value="Nicaragua">Nicaragua</option><option value="" disabled="disabled">-------------</option>
|
678
668
|
<option value="Afghanistan">Afghanistan</option>
|
@@ -920,14 +910,14 @@ COUNTRIES
|
|
920
910
|
<option value="Yemen">Yemen</option>
|
921
911
|
<option value="Zambia">Zambia</option>
|
922
912
|
<option value="Zimbabwe">Zimbabwe</option></select>
|
923
|
-
COUNTRIES
|
924
|
-
|
925
|
-
|
913
|
+
COUNTRIES
|
914
|
+
assert_dom_equal(expected_select[0..-2], country_select("post", "origin", ["New Zealand", "Nicaragua"]))
|
915
|
+
end
|
926
916
|
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
917
|
+
def test_country_select_with_selected_priority_country
|
918
|
+
@post = Post.new
|
919
|
+
@post.origin = "New Zealand"
|
920
|
+
expected_select = <<-COUNTRIES
|
931
921
|
<select id="post_origin" name="post[origin]"><option selected="selected" value="New Zealand">New Zealand</option>
|
932
922
|
<option value="Nicaragua">Nicaragua</option><option value="" disabled="disabled">-------------</option>
|
933
923
|
<option value="Afghanistan">Afghanistan</option>
|
@@ -1175,162 +1165,163 @@ COUNTRIES
|
|
1175
1165
|
<option value="Yemen">Yemen</option>
|
1176
1166
|
<option value="Zambia">Zambia</option>
|
1177
1167
|
<option value="Zimbabwe">Zimbabwe</option></select>
|
1178
|
-
COUNTRIES
|
1179
|
-
|
1180
|
-
|
1181
|
-
|
1182
|
-
def test_time_zone_select
|
1183
|
-
@firm = Firm.new("D")
|
1184
|
-
html = time_zone_select( "firm", "time_zone" )
|
1185
|
-
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1186
|
-
"<option value=\"A\">A</option>\n" +
|
1187
|
-
"<option value=\"B\">B</option>\n" +
|
1188
|
-
"<option value=\"C\">C</option>\n" +
|
1189
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1190
|
-
"<option value=\"E\">E</option>" +
|
1191
|
-
"</select>",
|
1192
|
-
html
|
1193
|
-
end
|
1168
|
+
COUNTRIES
|
1169
|
+
assert_dom_equal(expected_select[0..-2], country_select("post", "origin", ["New Zealand", "Nicaragua"]))
|
1170
|
+
end
|
1194
1171
|
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1172
|
+
def test_time_zone_select
|
1173
|
+
@firm = Firm.new("D")
|
1174
|
+
html = time_zone_select( "firm", "time_zone" )
|
1175
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1176
|
+
"<option value=\"A\">A</option>\n" +
|
1177
|
+
"<option value=\"B\">B</option>\n" +
|
1178
|
+
"<option value=\"C\">C</option>\n" +
|
1179
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1180
|
+
"<option value=\"E\">E</option>" +
|
1181
|
+
"</select>",
|
1182
|
+
html
|
1202
1183
|
end
|
1203
|
-
|
1204
|
-
assert_dom_equal(
|
1205
|
-
"<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1206
|
-
"<option value=\"A\">A</option>\n" +
|
1207
|
-
"<option value=\"B\">B</option>\n" +
|
1208
|
-
"<option value=\"C\">C</option>\n" +
|
1209
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1210
|
-
"<option value=\"E\">E</option>" +
|
1211
|
-
"</select>",
|
1212
|
-
_erbout
|
1213
|
-
)
|
1214
|
-
end
|
1215
1184
|
|
1216
|
-
|
1217
|
-
|
1218
|
-
html = time_zone_select("firm", "time_zone", nil, :include_blank => true)
|
1219
|
-
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1220
|
-
"<option value=\"\"></option>\n" +
|
1221
|
-
"<option value=\"A\">A</option>\n" +
|
1222
|
-
"<option value=\"B\">B</option>\n" +
|
1223
|
-
"<option value=\"C\">C</option>\n" +
|
1224
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1225
|
-
"<option value=\"E\">E</option>" +
|
1226
|
-
"</select>",
|
1227
|
-
html
|
1228
|
-
end
|
1185
|
+
def test_time_zone_select_under_fields_for
|
1186
|
+
@firm = Firm.new("D")
|
1229
1187
|
|
1230
|
-
|
1231
|
-
@firm = Firm.new("D")
|
1232
|
-
html = time_zone_select("firm", "time_zone", nil, :include_blank => 'No Zone')
|
1233
|
-
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1234
|
-
"<option value=\"\">No Zone</option>\n" +
|
1235
|
-
"<option value=\"A\">A</option>\n" +
|
1236
|
-
"<option value=\"B\">B</option>\n" +
|
1237
|
-
"<option value=\"C\">C</option>\n" +
|
1238
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1239
|
-
"<option value=\"E\">E</option>" +
|
1240
|
-
"</select>",
|
1241
|
-
html
|
1242
|
-
end
|
1188
|
+
_erbout = ''
|
1243
1189
|
|
1244
|
-
|
1245
|
-
|
1246
|
-
|
1247
|
-
"style" => "color: red")
|
1248
|
-
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
|
1249
|
-
"<option value=\"A\">A</option>\n" +
|
1250
|
-
"<option value=\"B\">B</option>\n" +
|
1251
|
-
"<option value=\"C\">C</option>\n" +
|
1252
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1253
|
-
"<option value=\"E\">E</option>" +
|
1254
|
-
"</select>",
|
1255
|
-
html
|
1256
|
-
assert_dom_equal html, time_zone_select("firm", "time_zone", nil, {},
|
1257
|
-
:style => "color: red")
|
1258
|
-
end
|
1259
|
-
|
1260
|
-
def test_time_zone_select_with_blank_and_style
|
1261
|
-
@firm = Firm.new("D")
|
1262
|
-
html = time_zone_select("firm", "time_zone", nil,
|
1263
|
-
{ :include_blank => true }, "style" => "color: red")
|
1264
|
-
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
|
1265
|
-
"<option value=\"\"></option>\n" +
|
1266
|
-
"<option value=\"A\">A</option>\n" +
|
1267
|
-
"<option value=\"B\">B</option>\n" +
|
1268
|
-
"<option value=\"C\">C</option>\n" +
|
1269
|
-
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1270
|
-
"<option value=\"E\">E</option>" +
|
1271
|
-
"</select>",
|
1272
|
-
html
|
1273
|
-
assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
|
1274
|
-
{ :include_blank => true }, :style => "color: red")
|
1275
|
-
end
|
1190
|
+
fields_for :firm, @firm do |f|
|
1191
|
+
_erbout.concat f.time_zone_select(:time_zone)
|
1192
|
+
end
|
1276
1193
|
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
|
1284
|
-
|
1285
|
-
|
1286
|
-
|
1287
|
-
|
1288
|
-
"</select>",
|
1289
|
-
html
|
1290
|
-
assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
|
1291
|
-
{ :include_blank => 'No Zone' }, :style => "color: red")
|
1292
|
-
end
|
1194
|
+
assert_dom_equal(
|
1195
|
+
"<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1196
|
+
"<option value=\"A\">A</option>\n" +
|
1197
|
+
"<option value=\"B\">B</option>\n" +
|
1198
|
+
"<option value=\"C\">C</option>\n" +
|
1199
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1200
|
+
"<option value=\"E\">E</option>" +
|
1201
|
+
"</select>",
|
1202
|
+
_erbout
|
1203
|
+
)
|
1204
|
+
end
|
1293
1205
|
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
end
|
1206
|
+
def test_time_zone_select_with_blank
|
1207
|
+
@firm = Firm.new("D")
|
1208
|
+
html = time_zone_select("firm", "time_zone", nil, :include_blank => true)
|
1209
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1210
|
+
"<option value=\"\"></option>\n" +
|
1211
|
+
"<option value=\"A\">A</option>\n" +
|
1212
|
+
"<option value=\"B\">B</option>\n" +
|
1213
|
+
"<option value=\"C\">C</option>\n" +
|
1214
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1215
|
+
"<option value=\"E\">E</option>" +
|
1216
|
+
"</select>",
|
1217
|
+
html
|
1218
|
+
end
|
1308
1219
|
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
html = time_zone_select( "firm", "time_zone", nil, :default => 'B' )
|
1220
|
+
def test_time_zone_select_with_blank_as_string
|
1221
|
+
@firm = Firm.new("D")
|
1222
|
+
html = time_zone_select("firm", "time_zone", nil, :include_blank => 'No Zone')
|
1313
1223
|
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1224
|
+
"<option value=\"\">No Zone</option>\n" +
|
1225
|
+
"<option value=\"A\">A</option>\n" +
|
1226
|
+
"<option value=\"B\">B</option>\n" +
|
1227
|
+
"<option value=\"C\">C</option>\n" +
|
1228
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1229
|
+
"<option value=\"E\">E</option>" +
|
1230
|
+
"</select>",
|
1231
|
+
html
|
1232
|
+
end
|
1322
1233
|
|
1323
|
-
|
1324
|
-
|
1325
|
-
html = time_zone_select(
|
1234
|
+
def test_time_zone_select_with_style
|
1235
|
+
@firm = Firm.new("D")
|
1236
|
+
html = time_zone_select("firm", "time_zone", nil, {},
|
1237
|
+
"style" => "color: red")
|
1238
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
|
1239
|
+
"<option value=\"A\">A</option>\n" +
|
1240
|
+
"<option value=\"B\">B</option>\n" +
|
1241
|
+
"<option value=\"C\">C</option>\n" +
|
1242
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1243
|
+
"<option value=\"E\">E</option>" +
|
1244
|
+
"</select>",
|
1245
|
+
html
|
1246
|
+
assert_dom_equal html, time_zone_select("firm", "time_zone", nil, {},
|
1247
|
+
:style => "color: red")
|
1248
|
+
end
|
1249
|
+
|
1250
|
+
def test_time_zone_select_with_blank_and_style
|
1251
|
+
@firm = Firm.new("D")
|
1252
|
+
html = time_zone_select("firm", "time_zone", nil,
|
1253
|
+
{ :include_blank => true }, "style" => "color: red")
|
1254
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
|
1255
|
+
"<option value=\"\"></option>\n" +
|
1256
|
+
"<option value=\"A\">A</option>\n" +
|
1257
|
+
"<option value=\"B\">B</option>\n" +
|
1258
|
+
"<option value=\"C\">C</option>\n" +
|
1259
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1260
|
+
"<option value=\"E\">E</option>" +
|
1261
|
+
"</select>",
|
1262
|
+
html
|
1263
|
+
assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
|
1264
|
+
{ :include_blank => true }, :style => "color: red")
|
1265
|
+
end
|
1266
|
+
|
1267
|
+
def test_time_zone_select_with_blank_as_string_and_style
|
1268
|
+
@firm = Firm.new("D")
|
1269
|
+
html = time_zone_select("firm", "time_zone", nil,
|
1270
|
+
{ :include_blank => 'No Zone' }, "style" => "color: red")
|
1271
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\" style=\"color: red\">" +
|
1272
|
+
"<option value=\"\">No Zone</option>\n" +
|
1273
|
+
"<option value=\"A\">A</option>\n" +
|
1274
|
+
"<option value=\"B\">B</option>\n" +
|
1275
|
+
"<option value=\"C\">C</option>\n" +
|
1276
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1277
|
+
"<option value=\"E\">E</option>" +
|
1278
|
+
"</select>",
|
1279
|
+
html
|
1280
|
+
assert_dom_equal html, time_zone_select("firm", "time_zone", nil,
|
1281
|
+
{ :include_blank => 'No Zone' }, :style => "color: red")
|
1282
|
+
end
|
1283
|
+
|
1284
|
+
def test_time_zone_select_with_priority_zones
|
1285
|
+
@firm = Firm.new("D")
|
1286
|
+
zones = [ ActiveSupport::TimeZone.new("A"), ActiveSupport::TimeZone.new("D") ]
|
1287
|
+
html = time_zone_select("firm", "time_zone", zones )
|
1326
1288
|
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1332
|
-
|
1333
|
-
|
1334
|
-
|
1289
|
+
"<option value=\"A\">A</option>\n" +
|
1290
|
+
"<option value=\"D\" selected=\"selected\">D</option>" +
|
1291
|
+
"<option value=\"\" disabled=\"disabled\">-------------</option>\n" +
|
1292
|
+
"<option value=\"B\">B</option>\n" +
|
1293
|
+
"<option value=\"C\">C</option>\n" +
|
1294
|
+
"<option value=\"E\">E</option>" +
|
1295
|
+
"</select>",
|
1296
|
+
html
|
1297
|
+
end
|
1298
|
+
|
1299
|
+
def test_time_zone_select_with_default_time_zone_and_nil_value
|
1300
|
+
@firm = Firm.new()
|
1301
|
+
@firm.time_zone = nil
|
1302
|
+
html = time_zone_select( "firm", "time_zone", nil, :default => 'B' )
|
1303
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1304
|
+
"<option value=\"A\">A</option>\n" +
|
1305
|
+
"<option value=\"B\" selected=\"selected\">B</option>\n" +
|
1306
|
+
"<option value=\"C\">C</option>\n" +
|
1307
|
+
"<option value=\"D\">D</option>\n" +
|
1308
|
+
"<option value=\"E\">E</option>" +
|
1309
|
+
"</select>",
|
1310
|
+
html
|
1311
|
+
end
|
1335
1312
|
|
1313
|
+
def test_time_zone_select_with_default_time_zone_and_value
|
1314
|
+
@firm = Firm.new('D')
|
1315
|
+
html = time_zone_select( "firm", "time_zone", nil, :default => 'B' )
|
1316
|
+
assert_dom_equal "<select id=\"firm_time_zone\" name=\"firm[time_zone]\">" +
|
1317
|
+
"<option value=\"A\">A</option>\n" +
|
1318
|
+
"<option value=\"B\">B</option>\n" +
|
1319
|
+
"<option value=\"C\">C</option>\n" +
|
1320
|
+
"<option value=\"D\" selected=\"selected\">D</option>\n" +
|
1321
|
+
"<option value=\"E\">E</option>" +
|
1322
|
+
"</select>",
|
1323
|
+
html
|
1324
|
+
end
|
1325
|
+
|
1326
|
+
end
|
1336
1327
|
end
|