Hi,
I am in the process of upgrading my rails application to be compatible
with rails 2.2.2. All is going well apart from a few remaining issues.
My problem is: I am experiencing a test failure with what seems to be
related to the “with_output_buffer” method found in “lib/action_view/
helpers/capture_helper.rb” and my use of the “button_to_function”
method.
The code itself works fine. It is simply the test itself that won’t
pass due to a NoMethodError exception.
Note: I am currently using rspec & rspec-rails (1.1.99.12), although
the same problem also exists when tested with the current stable
version: 1.1.12.
So, given the following helper module:
module ImagesHelper
def hide_images_button
content_tag :div, :class => :hide_images_button do
button_to_function “Hide Images”, :id => :hide_images_button do |
page|
page[:more_images_button].toggle
page[:image_browser].toggle
end
end
end
end
With the accompanying test:
require File.expand_path(File.dirname(FILE) + ‘/…/spec_helper’)
describe ImagesHelper do
it “should render a hide_images_button” do
helper.hide_images_button.should have_tag(‘div[class=?]’,
‘hide_images_button’) do
with_tag(‘input[id=?][type=?][value=?][onclick^=?]’,
‘hide_images_button’, ‘button’, ‘Hide Images’, “$
(“more_images_button”).toggle();\n$
(“image_browser”).toggle();;”)
end
end
end
I am getting the following failure:
F
NoMethodError in ‘ImagesHelper should render a hide_images_button’
You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.with_output_buffer
/home/oliver/git/greyville/app/helpers/images_helper.rb:4:in
hide_images_button' /home/oliver/git/greyville/app/helpers/images_helper.rb:3:in
hide_images_button’
spec/helpers/images_helper_spec.rb:5:
Finished in 0.025206 seconds
1 example, 1 failure
Any bright ideas on how I can fix this issue? Your help would be much
appreciated.
Regards, Oliver Beddows.