]> git.openstreetmap.org Git - rails.git/blobdiff - test/helpers/application_helper_test.rb
Merge remote-tracking branch 'upstream/pull/4730'
[rails.git] / test / helpers / application_helper_test.rb
index d1c41d62c105cb905197cd53303c34bd5bc7be55..24d74c85f3b0ad5d1a06aaad93f8eaf6f4739e2d 100644 (file)
@@ -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 <b>made</b> into a link"
 
       html = linkify(text)
-      assert_equal false, html.html_safe?
-      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
+      assert_predicate html, :html_safe?
+      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is &lt;b&gt;made&lt;/b&gt; into a link", html
 
       html = linkify(text.html_safe)
-      assert_equal true, html.html_safe?
-      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is made into a link", html
+      assert_predicate html, :html_safe?
+      assert_dom_equal "Test <a href=\"#{link}\" rel=\"nofollow\">#{link}</a> is <b>made</b> 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 <b>made</b> 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 &lt;b&gt;made&lt;/b&gt; 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 <b>made</b> into a link", html
     end
   end
 
   def test_rss_link_to
-    link = rss_link_to(:controller => :diary_entry, :action => :rss)
-    assert_dom_equal "<a class=\"rsssmall\" href=\"/diary/rss\"><img alt=\"Rss\" border=\"0\" height=\"16\" src=\"/images/RSS.png\" width=\"16\" /></a>", link
+    link = rss_link_to(:controller => :diary_entries, :action => :rss)
+    assert_dom_equal "<a href=\"/diary/rss\"><img height=\"16\" src=\"/images/RSS.png\" width=\"16\" class=\"align-text-bottom\" /></a>", link
   end
 
   def test_atom_link_to
-    link = atom_link_to(:controller => :changeset, :action => :feed)
-    assert_dom_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
-    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 "<div class=\"hide_unless_logged_in\">Test 1</div>", html
-
-    html = if_logged_in(:span) { "Test 2" }
-    assert_dom_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_dom_equal "<div class=\"hide_if_logged_in\">Test 1</div>", html
-
-    html = if_not_logged_in(:span) { "Test 2" }
-    assert_dom_equal "<span class=\"hide_if_logged_in\">Test 2</span>", html
-  end
-
-  def test_if_user
-    user = create(:user)
-
-    html = if_user(user) { "Test 1" }
-    assert_dom_equal "<div class=\"hidden show_if_user_#{user.id}\">Test 1</div>", html
-
-    html = if_user(user, :span) { "Test 2" }
-    assert_dom_equal "<span class=\"hidden show_if_user_#{user.id}\">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
-    user = create(:user)
-
-    html = unless_user(user) { "Test 1" }
-    assert_dom_equal "<div class=\"hide_if_user_#{user.id}\">Test 1</div>", html
-
-    html = unless_user(user, :span) { "Test 2" }
-    assert_dom_equal "<span class=\"hide_if_user_#{user.id}\">Test 2</span>", html
-
-    html = unless_user(nil) { "Test 3" }
-    assert_dom_equal "<div>Test 3</div>", html
-
-    html = unless_user(nil, :span) { "Test 4" }
-    assert_dom_equal "<span>Test 4</span>", html
-  end
-
-  def test_if_administrator
-    html = if_administrator { "Test 1" }
-    assert_dom_equal "<div class=\"hide_unless_administrator\">Test 1</div>", html
-
-    html = if_administrator(:span) { "Test 2" }
-    assert_dom_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
+    link = atom_link_to(:controller => :changesets, :action => :feed)
+    assert_dom_equal "<a href=\"/history/feed\"><img height=\"16\" src=\"/images/RSS.png\" width=\"16\" class=\"align-text-bottom\" /></a>", link
   end
 
   def test_dir
@@ -161,33 +46,50 @@ 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{^<span title=" *5 March 2014 at 18:58">.*</span>$}, date
+    date = friendly_date(Time.utc(2014, 3, 5, 18, 58, 23))
+    assert_match %r{^<time title=" *5 March 2014 at 18:58" datetime="2014-03-05T18:58:23Z">.*</time>$}, date
+
+    date = friendly_date(Time.now.utc - 1.hour)
+    assert_match %r{^<time title=".*">about 1 hour</time>$}, date
+
+    date = friendly_date(Time.now.utc - 2.days)
+    assert_match %r{^<time title=".*">2 days</time>$}, date
+
+    date = friendly_date(Time.now.utc - 3.weeks)
+    assert_match %r{^<time title=".*">21 days</time>$}, date
+
+    date = friendly_date(Time.now.utc - 4.months)
+    assert_match %r{^<time title=".*">4 months</time>$}, date
+  end
+
+  def test_friendly_date_ago
+    date = friendly_date_ago(Time.utc(2014, 3, 5, 18, 58, 23))
+    assert_match %r{^<time title=" *5 March 2014 at 18:58" datetime="2014-03-05T18:58:23Z">.*</time>$}, date
 
-    date = friendly_date(Time.now - 1.hour)
-    assert_match %r{^<span title=".*">about 1 hour</span>$}, date
+    date = friendly_date_ago(Time.now.utc - 1.hour)
+    assert_match %r{^<time title=".*">about 1 hour ago</time>$}, date
 
-    date = friendly_date(Time.now - 2.days)
-    assert_match %r{^<span title=".*">2 days</span>$}, date
+    date = friendly_date_ago(Time.now.utc - 2.days)
+    assert_match %r{^<time title=".*">2 days ago</time>$}, date
 
-    date = friendly_date(Time.now - 3.weeks)
-    assert_match %r{^<span title=".*">21 days</span>$}, date
+    date = friendly_date_ago(Time.now.utc - 3.weeks)
+    assert_match %r{^<time title=".*">21 days ago</time>$}, date
 
-    date = friendly_date(Time.now - 4.months)
-    assert_match %r{^<span title=".*">4 months</span>$}, date
+    date = friendly_date_ago(Time.now.utc - 4.months)
+    assert_match %r{^<time title=".*">4 months ago</time>$}, date
   end
 
   def test_body_class; end
 
-  def test_current_page_class; end
+  def test_header_nav_link_class; end
 end