require File.expand_path(File.dirname(__FILE__) + "/test_helper")
class InPlaceEditingTest < Test::Unit::TestCase
include InPlaceEditing
include InPlaceMacrosHelper
include ActionView::Helpers::UrlHelper
include ActionView::Helpers::TagHelper
include ActionView::Helpers::TextHelper
include ActionView::Helpers::FormHelper
include ActionView::Helpers::CaptureHelper
def setup
@controller = Class.new do
def url_for(options)
url = "http://www.example.com/"
url << options[:action].to_s if options and options[:action]
url
end
end
@controller = @controller.new
@protect_against_forgery = false
end
def protect_against_forgery?
@protect_against_forgery
end
def test_in_place_editor_external_control
assert_dom_equal %(),
in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :external_control => 'blah'})
end
def test_in_place_editor_size
assert_dom_equal %(),
in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :size => 4})
end
def test_in_place_editor_cols_no_rows
assert_dom_equal %(),
in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :cols => 4})
end
def test_in_place_editor_cols_with_rows
assert_dom_equal %(),
in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :rows => 5, :cols => 40})
end
def test_inplace_editor_loading_text
assert_dom_equal %(),
in_place_editor('some_input', {:url => {:action => 'inplace_edit'}, :loading_text => 'Why are we waiting?'})
end
def test_in_place_editor_url
assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value')",
in_place_editor( 'id-goes-here', :url => { :action => "action_to_set_value" })
end
def test_in_place_editor_load_text_url
assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {loadTextURL:'http://www.example.com/action_to_get_value'})",
in_place_editor( 'id-goes-here',
:url => { :action => "action_to_set_value" },
:load_text_url => { :action => "action_to_get_value" })
end
def test_in_place_editor_html_response
assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {htmlResponse:false})",
in_place_editor( 'id-goes-here',
:url => { :action => "action_to_set_value" },
:script => true )
end
def form_authenticity_token
"authenticity token"
end
def test_in_place_editor_with_forgery_protection
@protect_against_forgery = true
assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {callback:function(form) { return Form.serialize(form) + '&authenticity_token=' + encodeURIComponent('authenticity token') }})",
in_place_editor( 'id-goes-here', :url => { :action => "action_to_set_value" })
end
def test_in_place_editor_text_between_controls
assert_match "Ajax.InPlaceEditor('id-goes-here', 'http://www.example.com/action_to_set_value', {textBetweenControls:'or'})",
in_place_editor( 'id-goes-here',
:url => { :action => "action_to_set_value" },
:text_between_controls => "or" )
end
end