Commit 80fe1db0b1e2848fa36ab5be6084e3fb6c3f1876
1 parent
6e6793d8
Exists in
staging
and in
39 other branches
rails4: simplify and fix find_tag_in_string
Showing
2 changed files
with
5 additions
and
17 deletions
Show diff stats
test/test_helper.rb
... | ... | @@ -141,20 +141,8 @@ class ActiveSupport::TestCase |
141 | 141 | |
142 | 142 | def find_tag_in_string text, options |
143 | 143 | doc = Nokogiri::HTML.fragment text |
144 | - tag = doc.css(options[:tag]).first | |
145 | - return unless tag | |
146 | - content = tag.text.strip | |
147 | - | |
148 | - attributes = {}; tag.attributes.each do |a, v| | |
149 | - a = a.to_sym | |
150 | - next unless options[:attributes].has_key? a | |
151 | - attributes[a] = v.value | |
152 | - end if options[:attributes].present? | |
153 | - | |
154 | - ret = true | |
155 | - ret &&= options[:attributes].blank? || attributes == options[:attributes] | |
156 | - ret &&= options[:content].blank? || content == options[:content] | |
157 | - ret | |
144 | + tag = doc.css("#{options[:tag]}#{options[:attributes].map{ |a, v| "[#{a}=\"#{v}\"]" }.join}").first | |
145 | + tag | |
158 | 146 | end |
159 | 147 | |
160 | 148 | def assert_tag_in_string(text, options) | ... | ... |
test/unit/cms_helper_test.rb
... | ... | @@ -10,9 +10,9 @@ class CmsHelperTest < ActionView::TestCase |
10 | 10 | |
11 | 11 | should 'show default options for article' do |
12 | 12 | result = options_for_article(build(RssFeed, :profile => Profile.new)) |
13 | - assert_match /id="article_published_true" name="article\[published\]" type="radio" value="true"/, result | |
14 | - assert_match /id="article_published_false" name="article\[published\]" type="radio" value="false"/, result | |
15 | - assert_match /id="article_accept_comments" name="article\[accept_comments\]" type="checkbox" value="1"/, result | |
13 | + assert_tag_in_string result, tag: 'input', attributes: {id: 'article_published_true', name:'article[published]', type: 'radio', value: 'true'} | |
14 | + assert_tag_in_string result, tag: 'input', attributes: {id: 'article_published_false', name:'article[published]', type: 'radio', value: 'false'} | |
15 | + assert_tag_in_string result, tag: 'input', attributes: {id: 'article_accept_comments', name:'article[accept_comments]', type: 'checkbox', value: '1'} | |
16 | 16 | end |
17 | 17 | |
18 | 18 | should 'show custom options for blog' do | ... | ... |