require File.dirname(__FILE__) + '/../test_helper' class TodosHelperTest < Test::Rails::HelperTestCase def setup super end include ActionView::Helpers::DateHelper include ApplicationHelper include TodosHelper def format_date(date) if date date_format = "%d/%m/%Y" date.strftime("#{date_format}") else '' end end def test_show_date_in_past date = 3.days.ago html = show_date(date) formatted_date = format_date(date) assert_equal %Q{Scheduled to show 3 days ago }, html end def test_show_date_today date = Time.zone.now html = show_date(date) formatted_date = format_date(date) assert_equal %Q{Show Today }, html end def test_show_date_tomorrow date = 1.day.from_now html = show_date(date) formatted_date = format_date(date) assert_equal %Q{Show Tomorrow }, html end def test_show_date_future date = 10.days.from_now html = show_date(date) formatted_date = format_date(date) assert_equal %Q{Show in 10 days }, html end def test_remote_star_icon_unstarred @todo = flexmock(:id => 1, :to_param => 1, :description => 'Get gas', :starred? => false) # added dot (.) to regexp because somehouw the extra dot is added in the tests while its not in the rendered html assert_remote_star_icon_helper_matches %r{Blank} assert_behavior_registered end def test_remote_star_icon_starred @todo = flexmock(:id => 1, :to_param => 1, :description => 'Get gas', :starred? => true) # added dot (.) to regexp because somehouw the extra dot is added in the tests while its not in the rendered html assert_remote_star_icon_helper_matches %r{Blank} assert_behavior_registered end def assert_remote_star_icon_helper_matches(regex) @controller.send :initialise_js_behaviours #simulate before filter output = remote_star_icon # puts output assert output =~ regex @controller.send :store_js_behaviours #simulate after filter end def assert_behavior_registered behaviors = @controller.session[:js_behaviours] assert behaviors[:options][:reapply_after_ajax] assert_equal 1, behaviors[:rules].length rule = behaviors[:rules][0] assert_equal ".item-container a.star_item:click", rule[0] assert_equal "new Ajax.Request(this.href, {asynchronous:true, evalScripts:true, method:'put', parameters:{ _source_view : '' }})\n; return false;", rule[1] end def protect_against_forgery? false end end