diff --git a/lib/jquery/assert_select.rb b/lib/jquery/assert_select.rb index debf99d1..1d82fb53 100644 --- a/lib/jquery/assert_select.rb +++ b/lib/jquery/assert_select.rb @@ -124,6 +124,8 @@ def unescape_js(js_string) unescaped.gsub!('\n', "\n") unescaped.gsub!('\076', '>') unescaped.gsub!('\074', '<') + unescaped.gsub!(/\\\$/, '$') + unescaped.gsub!(/\\`/, '`') # js encodes non-ascii characters. unescaped.gsub!(PATTERN_UNICODE_ESCAPED_CHAR) {|u| [$1.hex].pack('U*')} unescaped diff --git a/test/assert_select_jquery_test.rb b/test/assert_select_jquery_test.rb index 90c6dcb0..632b0c2d 100644 --- a/test/assert_select_jquery_test.rb +++ b/test/assert_select_jquery_test.rb @@ -23,6 +23,8 @@ class AssertSelectJQueryTest < ActiveSupport::TestCase // without semicolon $("#browser_cart").hide("blind", 1000) + + $('#item').html('
\\`Total\\`: \\$12.34
'); JS setup do @@ -43,6 +45,10 @@ def test_target_as_receiver assert_select_jquery :remove, "#cart tr:not(.total_line) > *" assert_select_jquery :remove, "[href|=\"val\"][href$=\"val\"][href^=\"val\"]" assert_select_jquery :remove, "tr + td, li" + + assert_select_jquery :html, '#item' do + assert_select 'span', '`Total`: $12.34' + end end assert_raise Minitest::Assertion, "No JQuery call matches [:show, :some_wrong]" do