X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/60f2074baca1b36bf02b02be976a2527d60c5fef..c9a86866bb6f2d0b41604078a0f05aadc5633f46:/test/helpers/application_helper_test.rb diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb index d1c41d62c..34120e207 100644 --- a/test/helpers/application_helper_test.rb +++ b/test/helpers/application_helper_test.rb @@ -3,155 +3,40 @@ require "test_helper" class ApplicationHelperTest < ActionView::TestCase attr_accessor :current_user - def setup - I18n.locale = "en" - end - - def teardown - I18n.locale = "en" - end - def test_linkify %w[http://example.com/test ftp://example.com/test https://example.com/test].each do |link| - text = "Test #{link} is made into a link" + text = "Test #{link} is made into a link" html = linkify(text) - assert_equal false, html.html_safe? - assert_dom_equal "Test #{link} is made into a link", html + assert_predicate html, :html_safe? + assert_dom_equal "Test #{link} is <b>made</b> into a link", html html = linkify(text.html_safe) - assert_equal true, html.html_safe? - assert_dom_equal "Test #{link} is made into a link", html + assert_predicate html, :html_safe? + assert_dom_equal "Test #{link} is made into a link", html end %w[test@example.com mailto:test@example.com].each do |link| - text = "Test #{link} is not made into a link" + text = "Test #{link} is not made into a link" html = linkify(text) - assert_equal false, html.html_safe? - assert_dom_equal text, html + assert_predicate html, :html_safe? + assert_dom_equal "Test #{link} is not <b>made</b> into a link", html html = linkify(text.html_safe) - assert_equal true, html.html_safe? - assert_dom_equal text, html + assert_predicate html, :html_safe? + assert_dom_equal "Test #{link} is not made into a link", html end end def test_rss_link_to - link = rss_link_to(:controller => :diary_entry, :action => :rss) - assert_dom_equal "\"Rss\"", link + link = rss_link_to(:controller => :diary_entries, :action => :rss) + assert_dom_equal "", link end def test_atom_link_to - link = atom_link_to(:controller => :changeset, :action => :feed) - assert_dom_equal "\"Rss\"", link - end - - def test_style_rules - self.current_user = nil - - css = style_rules - assert_match /\.hidden /, css - assert_match /\.hide_unless_logged_in /, css - assert_no_match /\.hide_if_logged_in /, css - assert_no_match /\.hide_if_user_/, css - assert_no_match /\.show_if_user_/, css - assert_match /\.hide_unless_administrator /, css - assert_match /\.hide_unless_moderator /, css - - self.current_user = create(:user) - - css = style_rules - assert_match /\.hidden /, css - assert_no_match /\.hide_unless_logged_in /, css - assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{current_user.id} /, css - assert_match /\.show_if_user_#{current_user.id} /, css - assert_match /\.hide_unless_administrator /, css - assert_match /\.hide_unless_moderator /, css - - self.current_user = create(:moderator_user) - - css = style_rules - assert_match /\.hidden /, css - assert_no_match /\.hide_unless_logged_in /, css - assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{current_user.id} /, css - assert_match /\.show_if_user_#{current_user.id} /, css - assert_match /\.hide_unless_administrator /, css - assert_no_match /\.hide_unless_moderator /, css - - self.current_user = create(:administrator_user) - - css = style_rules - assert_match /\.hidden /, css - assert_no_match /\.hide_unless_logged_in /, css - assert_match /\.hide_if_logged_in /, css - assert_match /\.hide_if_user_#{current_user.id} /, css - assert_match /\.show_if_user_#{current_user.id} /, css - assert_no_match /\.hide_unless_administrator /, css - assert_match /\.hide_unless_moderator /, css - end - - def test_if_logged_in - html = if_logged_in { "Test 1" } - assert_dom_equal "
Test 1
", html - - html = if_logged_in(:span) { "Test 2" } - assert_dom_equal "Test 2", html - end - - def test_if_not_logged_in - html = if_not_logged_in { "Test 1" } - assert_dom_equal "
Test 1
", html - - html = if_not_logged_in(:span) { "Test 2" } - assert_dom_equal "Test 2", html - end - - def test_if_user - user = create(:user) - - html = if_user(user) { "Test 1" } - assert_dom_equal "
Test 1
", html - - html = if_user(user, :span) { "Test 2" } - assert_dom_equal "Test 2", html - - html = if_user(nil) { "Test 3" } - assert_nil html - - html = if_user(nil, :span) { "Test 4" } - assert_nil html - end - - def test_unless_user - user = create(:user) - - html = unless_user(user) { "Test 1" } - assert_dom_equal "
Test 1
", html - - html = unless_user(user, :span) { "Test 2" } - assert_dom_equal "Test 2", html - - html = unless_user(nil) { "Test 3" } - assert_dom_equal "
Test 3
", html - - html = unless_user(nil, :span) { "Test 4" } - assert_dom_equal "Test 4", html - end - - def test_if_administrator - html = if_administrator { "Test 1" } - assert_dom_equal "
Test 1
", html - - html = if_administrator(:span) { "Test 2" } - assert_dom_equal "Test 2", html - end - - def test_richtext_area - html = richtext_area(:message, :body, :cols => 40, :rows => 20) - assert_not_nil html + link = atom_link_to(:controller => :changesets, :action => :feed) + assert_dom_equal "", link end def test_dir @@ -161,30 +46,47 @@ class ApplicationHelperTest < ActionView::TestCase assert_equal "rtl", dir params.delete(:dir) - I18n.locale = "he" - - assert_equal "rtl", dir + I18n.with_locale "he" do + assert_equal "rtl", dir - params[:dir] = "ltr" - assert_equal "ltr", dir - params.delete(:dir) + params[:dir] = "ltr" + assert_equal "ltr", dir + params.delete(:dir) + end end def test_friendly_date - date = friendly_date(Time.new(2014, 3, 5, 18, 58, 23)) - assert_match %r{^.*$}, date + date = friendly_date(Time.utc(2014, 3, 5, 18, 58, 23)) + assert_match %r{^$}, date + + date = friendly_date(Time.now.utc - 1.hour) + assert_match %r{^$}, date + + date = friendly_date(Time.now.utc - 2.days) + assert_match %r{^$}, date + + date = friendly_date(Time.now.utc - 3.weeks) + assert_match %r{^$}, date + + date = friendly_date(Time.now.utc - 4.months) + assert_match %r{^$}, date + end + + def test_friendly_date_ago + date = friendly_date_ago(Time.utc(2014, 3, 5, 18, 58, 23)) + assert_match %r{^$}, date - date = friendly_date(Time.now - 1.hour) - assert_match %r{^about 1 hour$}, date + date = friendly_date_ago(Time.now.utc - 1.hour) + assert_match %r{^$}, date - date = friendly_date(Time.now - 2.days) - assert_match %r{^2 days$}, date + date = friendly_date_ago(Time.now.utc - 2.days) + assert_match %r{^$}, date - date = friendly_date(Time.now - 3.weeks) - assert_match %r{^21 days$}, date + date = friendly_date_ago(Time.now.utc - 3.weeks) + assert_match %r{^$}, date - date = friendly_date(Time.now - 4.months) - assert_match %r{^4 months$}, date + date = friendly_date_ago(Time.now.utc - 4.months) + assert_match %r{^$}, date end def test_body_class; end