From: Tom Hughes Date: Wed, 5 Mar 2014 22:54:59 +0000 (+0000) Subject: Add more helper tests X-Git-Tag: live~5050^2~1 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/d65e01982324fa28b03557f3b819328e5c0b724c Add more helper tests --- diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb new file mode 100644 index 000000000..46c35f950 --- /dev/null +++ b/test/helpers/application_helper_test.rb @@ -0,0 +1,187 @@ +require 'test_helper' + +class ApplicationHelperTest < ActionView::TestCase + fixtures :users, :user_roles + + def setup + 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" + + html = linkify(text) + assert_equal false, html.html_safe? + assert_equal "Test #{link} is made into a link", html + + html = linkify(text.html_safe) + assert_equal true, html.html_safe? + assert_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" + + html = linkify(text) + assert_equal false, html.html_safe? + assert_equal text, html + + html = linkify(text.html_safe) + assert_equal true, html.html_safe? + assert_equal text, html + end + end + + def test_rss_link_to + link = rss_link_to(:controller => :diary_entry, :action => :rss) + assert_equal "\"Rss\"", link + end + + def test_atom_link_to + link = atom_link_to(:controller => :changeset, :action => :feed) + assert_equal "\"Rss\"", link + end + + def test_style_rules + @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 + + @user = users(:normal_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_1 /, css + assert_match /\.show_if_user_1 /, css + assert_match /\.hide_unless_administrator /, css + assert_match /\.hide_unless_moderator /, css + + @user = users(: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_5 /, css + assert_match /\.show_if_user_5 /, css + assert_match /\.hide_unless_administrator /, css + assert_no_match /\.hide_unless_moderator /, css + + @user = users(: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_6 /, css + assert_match /\.show_if_user_6 /, 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_equal "
Test 1
", html + + html = if_logged_in(:span) { "Test 2" } + assert_equal "Test 2", html + end + + def test_if_not_logged_in + html = if_not_logged_in { "Test 1" } + assert_equal "
Test 1
", html + + html = if_not_logged_in(:span) { "Test 2" } + assert_equal "Test 2", html + end + + def test_if_user + html = if_user(users(:normal_user)) { "Test 1" } + assert_equal "
Test 1
", html + + html = if_user(users(:normal_user), :span) { "Test 2" } + assert_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 + html = unless_user(users(:normal_user)) { "Test 1" } + assert_equal "
Test 1
", html + + html = unless_user(users(:normal_user), :span) { "Test 2" } + assert_equal "Test 2", html + + html = unless_user(nil) { "Test 3" } + assert_equal "
Test 3
", html + + html = unless_user(nil, :span) { "Test 4" } + assert_equal "Test 4", html + end + + def test_if_administrator + html = if_administrator { "Test 1" } + assert_equal "
Test 1
", html + + html = if_administrator(:span) { "Test 2" } + assert_equal "Test 2", html + end + + def test_richtext_area + html = richtext_area(:message, :body, :cols => 40, :rows => 20) + assert_not_nil html + end + + def test_dir + assert_equal "ltr", dir + + params[:dir] = "rtl" + assert_equal "rtl", dir + params.delete(:dir) + + I18n.locale = "he" + + assert_equal "rtl", dir + + params[:dir] = "ltr" + assert_equal "ltr", dir + params.delete(:dir) + end + + def test_friendly_date + date = friendly_date(Time.new(2014, 3, 5, 18, 58, 23)) + assert_match /^.*<\/span>$/, date + + date = friendly_date(Time.now - 1.hour) + assert_match /^about 1 hour<\/span>$/, date + + date = friendly_date(Time.now - 2.days) + assert_match /^2 days<\/span>$/, date + + date = friendly_date(Time.now - 3.weeks) + assert_match /^21 days<\/span>$/, date + + date = friendly_date(Time.now - 4.months) + assert_match /^4 months<\/span>$/, date + end + + def test_body_class + end + + def test_current_page_class + end +end diff --git a/test/helpers/asset_helper_test.rb b/test/helpers/asset_helper_test.rb new file mode 100644 index 000000000..20e450ed5 --- /dev/null +++ b/test/helpers/asset_helper_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class AssetHelperTest < ActionView::TestCase + def test_assets + assert assets("iD").kind_of?(Hash) + end +end diff --git a/test/helpers/changeset_helper_test.rb b/test/helpers/changeset_helper_test.rb new file mode 100644 index 000000000..3fa5d266d --- /dev/null +++ b/test/helpers/changeset_helper_test.rb @@ -0,0 +1,15 @@ +require 'test_helper' + +class ChangesetHelperTest < ActionView::TestCase + fixtures :changesets, :users + + def test_changeset_user_link + assert_equal "test2", changeset_user_link(changesets(:public_user_first_change)) + assert_equal "anonymous", changeset_user_link(changesets(:normal_user_first_change)) + end + + def test_changeset_details + assert_match /^Created .*<\/abbr> by anonymous$/, changeset_details(changesets(:normal_user_first_change)) + assert_match /^Closed .*<\/abbr> by test2<\/a>$/, changeset_details(changesets(:public_user_closed_change)) + end +end diff --git a/test/helpers/note_helper_test.rb b/test/helpers/note_helper_test.rb new file mode 100644 index 000000000..8fb2bc073 --- /dev/null +++ b/test/helpers/note_helper_test.rb @@ -0,0 +1,21 @@ +require 'test_helper' + +class NoteHelperTest < ActionView::TestCase + include ERB::Util + include ApplicationHelper + + fixtures :users + + def test_note_event + date = Time.new(2014, 3, 5, 21, 37, 45) + + assert_match /^Created by anonymous .*<\/span> ago<\/abbr>$/, note_event("open", date, nil) + assert_match /^Resolved by test2<\/a> .*<\/span> ago<\/abbr>$/, note_event("closed", date, users(:public_user)) + end + + def test_note_author + assert_equal "", note_author(nil) + assert_equal "test2", note_author(users(:public_user)) + assert_equal "test2", note_author(users(:public_user), :only_path => false) + end +end diff --git a/test/helpers/title_helper_test.rb b/test/helpers/title_helper_test.rb new file mode 100644 index 000000000..cf7a11243 --- /dev/null +++ b/test/helpers/title_helper_test.rb @@ -0,0 +1,13 @@ +require 'test_helper' + +class TitleHelperTest < ActionView::TestCase + def test_set_title + set_title(nil) + assert_equal "OpenStreetMap", response.header["X-Page-Title"] + assert_nil @title + + set_title("Test Title") + assert_equal "OpenStreetMap | Test Title", response.header["X-Page-Title"] + assert_equal "Test Title", @title + end +end