Skip to content

Commit

Permalink
Merge pull request #23 from winston/fix/22-regression-html_safe
Browse files Browse the repository at this point in the history
Fix/22 regression html safe
  • Loading branch information
JuanitoFatas committed Sep 1, 2015
2 parents c1c66ec + f6f2df1 commit 143407c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

### Unreleased

- [Pull Request 23](https://github.com/winston/rails_utils/pull/23) - Fix #flash_messages not properly apply `html_safe`ed.

### Version 3.3.3

- [Pull Request 21](https://github.com/winston/rails_utils/pull/21) - Fix page controller class bug for nested-level controllers - by @allenwq.
Expand Down
2 changes: 1 addition & 1 deletion lib/rails_utils.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def flash_messages(options = {})
next if message.blank?
next if key.to_s == 'timedout'

content_tag(:div, content_tag(:button, options[:button_html] || "x", type: "button", class: options[:button_class] || "close", "data-dismiss" => "alert") + message, class: "#{flash_class(key)} fade in #{options[:class]}")
content_tag(:div, content_tag(:button, options[:button_html] || "x", type: "button", class: options[:button_class] || "close", "data-dismiss" => "alert") + message.html_safe, class: "#{flash_class(key)} fade in #{options[:class]}")
end.join("\n").html_safe
end

Expand Down
18 changes: 18 additions & 0 deletions test/rails_utils_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -265,5 +265,23 @@ def set_flash(key, message)
set_flash :timedout, "not important"
view.flash_messages.must_equal ""
end

it "should be `html_safe`ed" do
set_flash :alert, "not important"

view.flash_messages.html_safe?.must_equal true
end

it "each message of flash should call html_safe" do
set_flash :alert, Minitest::Mock.new

messages = view.flash.instance_variable_get(:@flashes).values.each do |message|
message.expect :blank?, false
message.expect :html_safe, "test"
message.expect :html_safe?, true
end

view.flash_messages.must_equal "<div class=\"alert alert-danger alert-error fade in \"><button class=\"close\" data-dismiss=\"alert\" type=\"button\">x</button>test</div>"
end
end
end

0 comments on commit 143407c

Please sign in to comment.