]> git.openstreetmap.org Git - rails.git/blobdiff - test/helpers/note_helper_test.rb
Truncate if necessary and set dir=auto for note usernames
[rails.git] / test / helpers / note_helper_test.rb
index 8fb2bc07338d8e6a0e0682ecfb63f8a9d532e93f..8b817369456fb0c253887890aa3810ff259cfa70 100644 (file)
@@ -1,21 +1,50 @@
-require 'test_helper'
+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)
+    date = Time.utc(2014, 3, 5, 21, 37, 45)
+    user = create(:user)
+
+    note_event_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{note_event('opened', date, nil)}</div>"
+    assert_dom note_event_dom, ":root", :text => /^Created by anonymous .* ago$/ do
+      assert_dom "> a", :count => 0
+      assert_dom "> time", :count => 1 do
+        assert_dom "> @title", "5 March 2014 at 21:37"
+        assert_dom "> @datetime", "2014-03-05T21:37:45Z"
+      end
+    end
 
-    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))
+    note_event_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{note_event('closed', date, user)}</div>"
+    assert_dom note_event_dom, ":root", :text => /^Resolved by #{user.display_name} .* ago$/ do
+      assert_dom "> a", :count => 1, :text => user.display_name do
+        assert_dom "> @href", "/user/#{ERB::Util.u(user.display_name)}"
+      end
+      assert_dom "> time", :count => 1 do
+        assert_dom "> @title", "5 March 2014 at 21:37"
+        assert_dom "> @datetime", "2014-03-05T21:37:45Z"
+      end
+    end
   end
 
   def test_note_author
+    deleted_user = create(:user, :deleted)
+    user = create(:user)
+
     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)
+
+    assert_equal "deleted", note_author(deleted_user)
+
+    note_author_dom = Rails::Dom::Testing.html_document_fragment.parse note_author(user)
+    assert_dom note_author_dom, "a:root", :text => user.display_name do
+      assert_dom "> @href", "/user/#{ERB::Util.u(user.display_name)}"
+    end
+
+    note_author_dom = Rails::Dom::Testing.html_document_fragment.parse note_author(user, :only_path => false)
+    assert_dom note_author_dom, "a:root", :text => user.display_name do
+      assert_dom "> @href", "http://test.host/user/#{ERB::Util.u(user.display_name)}"
+    end
   end
 end