Add more helper tests
This commit is contained in:
parent
0c80a486b4
commit
d65e019823
5 changed files with 243 additions and 0 deletions
187
test/helpers/application_helper_test.rb
Normal file
187
test/helpers/application_helper_test.rb
Normal file
|
@ -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 <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
|
||||
|
||||
html = linkify(text.html_safe)
|
||||
assert_equal true, html.html_safe?
|
||||
assert_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> 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 "<a class=\"rsssmall\" href=\"/diary/rss\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
|
||||
end
|
||||
|
||||
def test_atom_link_to
|
||||
link = atom_link_to(:controller => :changeset, :action => :feed)
|
||||
assert_equal "<a class=\"rsssmall\" href=\"/history/feed\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", 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 "<div class=\"hide_unless_logged_in\">Test 1</div>", html
|
||||
|
||||
html = if_logged_in(:span) { "Test 2" }
|
||||
assert_equal "<span class=\"hide_unless_logged_in\">Test 2</span>", html
|
||||
end
|
||||
|
||||
def test_if_not_logged_in
|
||||
html = if_not_logged_in { "Test 1" }
|
||||
assert_equal "<div class=\"hide_if_logged_in\">Test 1</div>", html
|
||||
|
||||
html = if_not_logged_in(:span) { "Test 2" }
|
||||
assert_equal "<span class=\"hide_if_logged_in\">Test 2</span>", html
|
||||
end
|
||||
|
||||
def test_if_user
|
||||
html = if_user(users(:normal_user)) { "Test 1" }
|
||||
assert_equal "<div class=\"hidden show_if_user_1\">Test 1</div>", html
|
||||
|
||||
html = if_user(users(:normal_user), :span) { "Test 2" }
|
||||
assert_equal "<span class=\"hidden show_if_user_1\">Test 2</span>", 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 "<div class=\"hide_if_user_1\">Test 1</div>", html
|
||||
|
||||
html = unless_user(users(:normal_user), :span) { "Test 2" }
|
||||
assert_equal "<span class=\"hide_if_user_1\">Test 2</span>", html
|
||||
|
||||
html = unless_user(nil) { "Test 3" }
|
||||
assert_equal "<div>Test 3</div>", html
|
||||
|
||||
html = unless_user(nil, :span) { "Test 4" }
|
||||
assert_equal "<span>Test 4</span>", html
|
||||
end
|
||||
|
||||
def test_if_administrator
|
||||
html = if_administrator { "Test 1" }
|
||||
assert_equal "<div class=\"hide_unless_administrator\">Test 1</div>", html
|
||||
|
||||
html = if_administrator(:span) { "Test 2" }
|
||||
assert_equal "<span class=\"hide_unless_administrator\">Test 2</span>", 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 title=" *5 March 2014 at 18:58">.*<\/span>$/, date
|
||||
|
||||
date = friendly_date(Time.now - 1.hour)
|
||||
assert_match /^<span title=".*">about 1 hour<\/span>$/, date
|
||||
|
||||
date = friendly_date(Time.now - 2.days)
|
||||
assert_match /^<span title=".*">2 days<\/span>$/, date
|
||||
|
||||
date = friendly_date(Time.now - 3.weeks)
|
||||
assert_match /^<span title=".*">21 days<\/span>$/, date
|
||||
|
||||
date = friendly_date(Time.now - 4.months)
|
||||
assert_match /^<span title=".*">4 months<\/span>$/, date
|
||||
end
|
||||
|
||||
def test_body_class
|
||||
end
|
||||
|
||||
def test_current_page_class
|
||||
end
|
||||
end
|
7
test/helpers/asset_helper_test.rb
Normal file
7
test/helpers/asset_helper_test.rb
Normal file
|
@ -0,0 +1,7 @@
|
|||
require 'test_helper'
|
||||
|
||||
class AssetHelperTest < ActionView::TestCase
|
||||
def test_assets
|
||||
assert assets("iD").kind_of?(Hash)
|
||||
end
|
||||
end
|
15
test/helpers/changeset_helper_test.rb
Normal file
15
test/helpers/changeset_helper_test.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ChangesetHelperTest < ActionView::TestCase
|
||||
fixtures :changesets, :users
|
||||
|
||||
def test_changeset_user_link
|
||||
assert_equal "<a href=\"/user/test2\">test2</a>", 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 title='Mon, 01 Jan 2007 00:00:00 \+0000'>.*<\/abbr> by anonymous$/, changeset_details(changesets(:normal_user_first_change))
|
||||
assert_match /^Closed <abbr title='Created: Mon, 01 Jan 2007 00:00:00 \+0000 Closed: Tue, 02 Jan 2007 00:00:00 \+0000'>.*<\/abbr> by <a href="\/user\/test2">test2<\/a>$/, changeset_details(changesets(:public_user_closed_change))
|
||||
end
|
||||
end
|
21
test/helpers/note_helper_test.rb
Normal file
21
test/helpers/note_helper_test.rb
Normal file
|
@ -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 <abbr title='Wed, 05 Mar 2014 21:37:45 \+0000'><span title=" 5 March 2014 at 21:37">.*<\/span> ago<\/abbr>$/, note_event("open", date, nil)
|
||||
assert_match /^Resolved by <a href="\/user\/test2">test2<\/a> <abbr title='Wed, 05 Mar 2014 21:37:45 \+0000'><span title=" 5 March 2014 at 21:37">.*<\/span> ago<\/abbr>$/, note_event("closed", date, users(:public_user))
|
||||
end
|
||||
|
||||
def test_note_author
|
||||
assert_equal "", note_author(nil)
|
||||
assert_equal "<a href=\"/user/test2\">test2</a>", note_author(users(:public_user))
|
||||
assert_equal "<a href=\"http://test.host/user/test2\">test2</a>", note_author(users(:public_user), :only_path => false)
|
||||
end
|
||||
end
|
13
test/helpers/title_helper_test.rb
Normal file
13
test/helpers/title_helper_test.rb
Normal file
|
@ -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
|
Loading…
Add table
Reference in a new issue