[rspec-users] Rails 2.2.2 Problem - button_to_function - nil.with_output_buffer

karmacoma oliver.beddows at googlemail.com
Sat Mar 7 10:49:30 EST 2009


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

1)
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.


More information about the rspec-users mailing list