omghax-test_rails 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,275 @@
1
+ require 'test/unit'
2
+ require 'test/zentest_assertions'
3
+
4
+ unless defined? $TESTING_RTC then
5
+ $TESTING_RTC = true
6
+
7
+ begin
8
+ require 'test/rails'
9
+ rescue LoadError, NameError
10
+ $TESTING_RTC = false
11
+ end
12
+ end
13
+
14
+ module Rails
15
+ module VERSION
16
+ STRING = '99.99.99' unless defined? STRING # HACK
17
+ end
18
+ end
19
+
20
+ class TestRailsViewTestCase < Test::Rails::ViewTestCase
21
+
22
+ def setup
23
+ @assert_tag = []
24
+ @assert_no_tag = []
25
+
26
+ @assert_select = []
27
+ end
28
+
29
+ def test_assert_field
30
+ assert_field :text, :game, :amount
31
+
32
+ assert_equal 2, @assert_select.length
33
+
34
+ expected = ["input[type='text'][name='game[amount]']"]
35
+
36
+ assert_equal expected, @assert_select.first
37
+
38
+ expected = ["label[for='game_amount']"]
39
+
40
+ assert_equal expected, @assert_select.last
41
+ end
42
+
43
+ def test_assert_field_form
44
+ assert_field '/game/save', :text, :game, :amount
45
+
46
+ assert_equal 4, @assert_select.length
47
+
48
+ assert_equal @assert_select.shift, ["form[action='/game/save']"]
49
+ assert_equal(@assert_select.shift,
50
+ ["input[type='text'][name='game[amount]']"])
51
+
52
+ assert_equal @assert_select.shift, ["form[action='/game/save']"]
53
+ assert_equal @assert_select.shift, ["label[for='game_amount']"]
54
+ end
55
+
56
+ def test_assert_form
57
+ assert_form '/game/save'
58
+
59
+ assert_equal 1, @assert_select.length
60
+ assert_equal ["form[action='/game/save']"], @assert_select.first
61
+ end
62
+
63
+ def test_assert_form_method
64
+ assert_form '/game/save', :post
65
+
66
+ assert_equal 1, @assert_select.length
67
+ assert_equal ["form[action='/game/save'][method='post']"],
68
+ @assert_select.first
69
+ end
70
+
71
+ def test_assert_form_enctype
72
+ assert_form '/game/save', nil, 'multipart/form-data'
73
+
74
+ assert_equal 1, @assert_select.length
75
+ assert_equal ["form[action='/game/save'][enctype='multipart/form-data']"],
76
+ @assert_select.first
77
+ end
78
+
79
+ def test_assert_h
80
+ assert_h 1, 'hi'
81
+
82
+ assert_equal [['h1', { :text => 'hi' }]], @assert_select
83
+ end
84
+
85
+ def test_assert_img
86
+ assert_image '/images/bucket.jpg'
87
+
88
+ assert_equal [["img[src='/images/bucket.jpg']"]], @assert_select
89
+ end
90
+
91
+ def test_assert_input
92
+ assert_input :text, 'game[amount]'
93
+
94
+ assert_equal 1, @assert_select.length
95
+ assert_equal ["input[type='text'][name='game[amount]']"],
96
+ @assert_select.first
97
+ end
98
+
99
+ def test_assert_input_form
100
+ assert_input '/game/save', :text, 'game[amount]'
101
+
102
+ assert_equal 2, @assert_select.length
103
+ assert_equal ["form[action='/game/save']"], @assert_select.shift
104
+ assert_equal ["input[type='text'][name='game[amount]']"],
105
+ @assert_select.shift
106
+ end
107
+
108
+ def test_assert_input_value
109
+ assert_input :text, 'game[amount]', 5
110
+
111
+ expected = ["input[type='text'][name='game[amount]'][value='5']"]
112
+
113
+ assert_equal 1, @assert_select.length
114
+ assert_equal expected, @assert_select.first
115
+ end
116
+
117
+ def test_assert_label
118
+ assert_label 'game_amount'
119
+
120
+ expected = ["label[for='game_amount']"]
121
+
122
+ assert_equal 1, @assert_select.length
123
+ assert_equal expected, @assert_select.first
124
+ end
125
+
126
+ def test_assert_label_form
127
+ assert_label '/game/save', 'game_amount'
128
+
129
+ assert_equal 2, @assert_select.length
130
+ assert_equal ["form[action='/game/save']"], @assert_select.shift
131
+ assert_equal ["label[for='game_amount']"], @assert_select.shift
132
+ end
133
+
134
+ def test_assert_links_to
135
+ assert_links_to '/game/show/1', 'hi'
136
+
137
+ expected = ["a[href='/game/show/1']", { :text => 'hi' }]
138
+
139
+
140
+ assert_equal 1, @assert_select.length
141
+ assert_equal expected, @assert_select.first
142
+ end
143
+
144
+ def test_assert_multipart_form
145
+ assert_multipart_form '/game/save'
146
+
147
+ expected = [
148
+ "form[action='/game/save'][method='post'][enctype='multipart/form-data']"
149
+ ]
150
+
151
+ assert_equal 1, @assert_select.length
152
+ assert_equal expected, @assert_select.first
153
+ end
154
+
155
+ def test_assert_post_form
156
+ assert_post_form '/game/save'
157
+
158
+ expected = ["form[action='/game/save'][method='post']"]
159
+
160
+ assert_equal 1, @assert_select.length
161
+ assert_equal expected, @assert_select.first
162
+ end
163
+
164
+ def test_assert_select_tag
165
+ assert_select_tag :game, :location_id,
166
+ 'Ballet' => 1, 'Guaymas' => 2
167
+
168
+ assert_equal 2, @assert_select.length
169
+
170
+ assert_include(@assert_select,
171
+ ["select[name='game[location_id]'] option[value='2']",
172
+ { :text => 'Guaymas' }])
173
+ assert_include(@assert_select,
174
+ ["select[name='game[location_id]'] option[value='1']",
175
+ { :text => 'Ballet' }])
176
+ end
177
+
178
+ def test_assert_select_tag_form
179
+ assert_select_tag '/game/save', :game, :location_id,
180
+ 'Ballet' => 1, 'Guaymas' => 2
181
+
182
+ assert_equal 4, @assert_select.length
183
+
184
+ assert_include @assert_select, ["form[action='/game/save']"]
185
+ assert_include(@assert_select,
186
+ ["select[name='game[location_id]'] option[value='2']",
187
+ { :text => 'Guaymas' }])
188
+ assert_include @assert_select, ["form[action='/game/save']"]
189
+ assert_include(@assert_select,
190
+ ["select[name='game[location_id]'] option[value='1']",
191
+ { :text => 'Ballet' }])
192
+ end
193
+
194
+ def test_assert_submit
195
+ assert_submit 'Save!'
196
+
197
+ assert_equal 1, @assert_select.length
198
+ assert_equal ["input[type='submit'][value='Save!']"], @assert_select.first
199
+ end
200
+
201
+ def test_assert_submit_form
202
+ assert_submit '/game/save', 'Save!'
203
+
204
+ assert_equal 2, @assert_select.length
205
+ assert_equal ["form[action='/game/save']"], @assert_select.shift
206
+ assert_equal ["input[type='submit'][value='Save!']"], @assert_select.shift
207
+ end
208
+
209
+ def test_assert_tag_in_form
210
+ assert_tag_in_form '/game/save', :tag => 'input'
211
+
212
+ expected = {
213
+ :tag => "form",
214
+ :attributes => { :action => "/game/save" },
215
+ :descendant => { :tag => "input" },
216
+ }
217
+
218
+ assert_equal 1, @assert_tag.length
219
+ assert_equal expected, @assert_tag.first
220
+ end
221
+
222
+ def test_assert_text_area
223
+ assert_text_area 'post[body]'
224
+
225
+ assert_equal 1, @assert_select.length
226
+ assert_equal ["textarea[name='post[body]']"], @assert_select.shift
227
+ end
228
+
229
+ def test_assert_text_area_body
230
+ assert_text_area 'post[body]', 'OMG!1! that skank stole my BF!~1!'
231
+
232
+ assert_equal 1, @assert_select.length
233
+ assert_equal ["textarea[name='post[body]']",
234
+ { :text => 'OMG!1! that skank stole my BF!~1!' }],
235
+ @assert_select.shift
236
+ end
237
+
238
+ def test_assert_text_area_form
239
+ assert_text_area '/post/save', 'post[body]'
240
+
241
+ assert_equal 2, @assert_select.length
242
+ assert_equal ["form[action='/post/save']"], @assert_select.shift
243
+ assert_equal ["textarea[name='post[body]']"], @assert_select.shift
244
+ end
245
+
246
+ def test_assert_title
247
+ assert_title 'hi'
248
+
249
+ assert_equal [['title', { :text => 'hi' }]], @assert_select
250
+ end
251
+
252
+ def test_deny_links_to
253
+ deny_links_to '/game/show/1', 'hi'
254
+
255
+ expected = ["a[href='/game/show/1']", { :text => 'hi', :count => 0 }]
256
+
257
+ assert_equal 1, @assert_select.length
258
+ assert_equal expected, @assert_select.first
259
+ end
260
+
261
+ def assert_tag(arg)
262
+ @assert_tag << arg
263
+ end
264
+
265
+ def assert_no_tag(arg)
266
+ @assert_no_tag << arg
267
+ end
268
+
269
+ def assert_select(*args)
270
+ @assert_select << args
271
+ yield if block_given?
272
+ end
273
+
274
+ end if $TESTING_RTC
275
+
@@ -0,0 +1,128 @@
1
+ require 'test/unit'
2
+ require 'test/zentest_assertions'
3
+
4
+ class TestZenTestAssertions < Test::Unit::TestCase
5
+ @@has_mini = defined? Mini
6
+ @@exception = if @@has_mini then
7
+ Mini::Assertion
8
+ else
9
+ Test::Unit::AssertionFailedError
10
+ end
11
+
12
+ def util_assert_triggered expected
13
+ e = assert_raises @@exception do
14
+ yield
15
+ end
16
+
17
+ assert_equal expected, e.message.sub(/(---Backtrace---).*/m, '\1')
18
+ end
19
+
20
+ def test_assert_empty
21
+ assert_empty []
22
+
23
+ msg = if @@has_mini then
24
+ "Expected [true] to be empty."
25
+ else
26
+ "[true] expected to be empty."
27
+ end
28
+
29
+ util_assert_triggered msg do
30
+ assert_empty [true]
31
+ end
32
+ end
33
+
34
+ def test_assert_include
35
+ assert_include [true], true
36
+
37
+ msg = if @@has_mini then
38
+ "Expected [true] to include false."
39
+ else
40
+ "[true]\ndoes not include\nfalse."
41
+ end
42
+
43
+ util_assert_triggered msg do
44
+ assert_include [true], false
45
+ end
46
+ end
47
+
48
+ def test_assert_in_epsilon
49
+ assert_in_epsilon 1.234, 1.234, 0.0001
50
+
51
+ msg = if @@has_mini then
52
+ "Expected 1.235 - 1.234 (0.00100000000000011) to be < 0.0001234."
53
+ else
54
+ "1.235 expected to be within 0.01% of 1.234, was 0.000809716599190374"
55
+ end
56
+
57
+ util_assert_triggered msg do
58
+ assert_in_epsilon 1.235, 1.234, 0.0001
59
+ end
60
+ end
61
+
62
+ def test_deny
63
+ deny false
64
+ deny nil
65
+
66
+ e = assert_raises Test::Unit::AssertionFailedError do
67
+ deny true
68
+ end
69
+
70
+ assert_match(/Failed refutation, no message given/, e.message)
71
+ end
72
+
73
+ def test_deny_empty
74
+ deny_empty [true]
75
+
76
+ msg = if @@has_mini then
77
+ "Expected [] to not be empty."
78
+ else
79
+ "[] expected to have stuff."
80
+ end
81
+
82
+ util_assert_triggered msg do
83
+ deny_empty []
84
+ end
85
+
86
+ end
87
+
88
+ def test_deny_equal
89
+ deny_equal true, false
90
+
91
+ assert_raises Test::Unit::AssertionFailedError do
92
+ deny_equal true, true
93
+ end
94
+ end
95
+
96
+ def test_deny_include
97
+ deny_include [true], false
98
+
99
+ msg = if @@has_mini then
100
+ "Expected [true] to not include true."
101
+ else
102
+ "[true] includes true."
103
+ end
104
+
105
+ util_assert_triggered msg do
106
+ deny_include [true], true
107
+ end
108
+ end
109
+
110
+ def test_deny_nil
111
+ deny_nil false
112
+
113
+ assert_raises Test::Unit::AssertionFailedError do
114
+ deny_nil nil
115
+ end
116
+ end
117
+
118
+ def test_util_capture
119
+ out, err = util_capture do
120
+ puts 'out'
121
+ $stderr.puts 'err'
122
+ end
123
+
124
+ assert_equal "out\n", out
125
+ assert_equal "err\n", err
126
+ end
127
+ end
128
+
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: omghax-test_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ryan Davis
8
+ - Eric Hodel
9
+ - Dray Lacy
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-03-12 00:00:00 -07:00
15
+ default_executable:
16
+ dependencies:
17
+ - !ruby/object:Gem::Dependency
18
+ name: hoe
19
+ type: :development
20
+ version_requirement:
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: 1.8.3
26
+ version:
27
+ description: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails. ZenTest scans your target and unit-test code and writes your missing code based on simple naming rules, enabling XP at a much quicker pace. ZenTest only works with Ruby and Test::Unit. unit_diff is a command-line filter to diff expected results from actual results and allow you to quickly see exactly what is wrong. autotest is a continous testing facility meant to be used during development. As soon as you save a file, autotest will run the corresponding dependent tests. multiruby runs anything you want on multiple versions of ruby. Great for compatibility checking! Use multiruby_setup to manage your installed versions. Test::Rails helps you build industrial-strength Rails code."
28
+ email:
29
+ - ryand-ruby@zenspider.com
30
+ - drbrain@segment7.net
31
+ - dray@izea.com
32
+ executables: []
33
+
34
+ extensions: []
35
+
36
+ extra_rdoc_files:
37
+ - History.txt
38
+ - Manifest.txt
39
+ - README.txt
40
+ files:
41
+ - History.txt
42
+ - Manifest.txt
43
+ - README.txt
44
+ - Rakefile
45
+ - lib/test/rails.rb
46
+ - lib/test/rails/controller_test_case.rb
47
+ - lib/test/rails/functional_test_case.rb
48
+ - lib/test/rails/helper_test_case.rb
49
+ - lib/test/rails/ivar_proxy.rb
50
+ - lib/test/rails/pp_html_document.rb
51
+ - lib/test/rails/rake_tasks.rb
52
+ - lib/test/rails/render_tree.rb
53
+ - lib/test/rails/test_case.rb
54
+ - lib/test/rails/version.rb
55
+ - lib/test/rails/view_test_case.rb
56
+ - lib/test/zentest_assertions.rb
57
+ - test/test_help.rb
58
+ - test/test_rails_controller_test_case.rb
59
+ - test/test_rails_helper_test_case.rb
60
+ - test/test_rails_view_test_case.rb
61
+ - test/test_zentest_assertions.rb
62
+ has_rdoc: true
63
+ homepage: http://www.zenspider.com/ZSS/Products/ZenTest/
64
+ post_install_message:
65
+ rdoc_options:
66
+ - --main
67
+ - README.txt
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: "0"
75
+ version:
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: "0"
81
+ version:
82
+ requirements: []
83
+
84
+ rubyforge_project: test_rails
85
+ rubygems_version: 1.2.0
86
+ signing_key:
87
+ specification_version: 2
88
+ summary: "ZenTest provides 4 different tools and 1 library: zentest, unit_diff, autotest, multiruby, and Test::Rails"
89
+ test_files:
90
+ - test/test_help.rb
91
+ - test/test_rails_controller_test_case.rb
92
+ - test/test_rails_helper_test_case.rb
93
+ - test/test_rails_view_test_case.rb
94
+ - test/test_zentest_assertions.rb