Commit bfa264911a981947a47dcc17b1f67e5dc9136669
1 parent
d726e40e
Exists in
master
and in
22 other branches
cms_controller_test: use assert_select instead of assert_tag in certain tests
AI2762 Sadly, there is no way to use :checked in the css-like selectors used by assert_select, otherwise the new versions would be really neat.
Showing
1 changed file
with
49 additions
and
9 deletions
Show diff stats
test/functional/cms_controller_test.rb
| ... | ... | @@ -600,8 +600,13 @@ class CmsControllerTest < ActionController::TestCase |
| 600 | 600 | article = profile.articles.create!(:name => 'test', :published => false) |
| 601 | 601 | |
| 602 | 602 | get :edit, :profile => profile.identifier, :id => article.id |
| 603 | - assert_tag :tag => 'input', :attributes => { :type => 'radio', :name => 'article[published]', :id => 'article_published_true' } | |
| 604 | - assert_tag :tag => 'input', :attributes => { :type => 'radio', :name => 'article[published]', :id => 'article_published_false', :checked => 'checked' } | |
| 603 | + assert_select 'input#article_published_true[name=?][type="radio"]', 'article[published]' | |
| 604 | + assert_select 'input#article_published_false[name=?][type="radio"]', 'article[published]' do |elements| | |
| 605 | + assert elements.length > 0 | |
| 606 | + elements.each do |element| | |
| 607 | + assert element["checked"] | |
| 608 | + end | |
| 609 | + end | |
| 605 | 610 | end |
| 606 | 611 | |
| 607 | 612 | should 'be able to add image with alignment' do |
| ... | ... | @@ -800,13 +805,23 @@ class CmsControllerTest < ActionController::TestCase |
| 800 | 805 | should 'display posts per page input with default value on edit blog' do |
| 801 | 806 | n = Blog.new.posts_per_page.to_s |
| 802 | 807 | get :new, :profile => profile.identifier, :type => 'Blog' |
| 803 | - assert_tag :tag => 'select', :attributes => { :name => 'article[posts_per_page]' }, :child => { :tag => 'option', :attributes => {:value => n, :selected => 'selected'} } | |
| 808 | + assert_select 'select[name=?] option[value=?]', 'article[posts_per_page]', n do |elements| | |
| 809 | + assert elements.length > 0 | |
| 810 | + elements.each do |element| | |
| 811 | + assert element["selected"] | |
| 812 | + end | |
| 813 | + end | |
| 804 | 814 | end |
| 805 | 815 | |
| 806 | 816 | should 'display options for blog visualization with default value on edit blog' do |
| 807 | 817 | format = Blog.new.visualization_format |
| 808 | 818 | get :new, :profile => profile.identifier, :type => 'Blog' |
| 809 | - assert_tag :tag => 'select', :attributes => { :name => 'article[visualization_format]' }, :child => { :tag => 'option', :attributes => {:value => 'full', :selected => 'selected'} } | |
| 819 | + assert_select 'select[name=?] option[value=full]', 'article[visualization_format]' do |elements| | |
| 820 | + assert elements.length > 0 | |
| 821 | + elements.each do |element| | |
| 822 | + assert element["selected"] | |
| 823 | + end | |
| 824 | + end | |
| 810 | 825 | end |
| 811 | 826 | |
| 812 | 827 | should 'not offer to create special article types' do |
| ... | ... | @@ -1028,7 +1043,12 @@ class CmsControllerTest < ActionController::TestCase |
| 1028 | 1043 | profile.articles << Blog.new(:name => 'test blog', :profile => profile) |
| 1029 | 1044 | profile.blog.create_external_feed(:address => 'address', :enabled => true) |
| 1030 | 1045 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
| 1031 | - assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][enabled]', :checked => 'checked' } | |
| 1046 | + assert_select 'input[type=checkbox][name=?]', 'article[external_feed_builder][enabled]' do |elements| | |
| 1047 | + elements.length > 0 | |
| 1048 | + elements.each do |element| | |
| 1049 | + assert element["checked"] | |
| 1050 | + end | |
| 1051 | + end | |
| 1032 | 1052 | end |
| 1033 | 1053 | |
| 1034 | 1054 | should "display 'Fetch posts from an external feed' unchecked if blog has disabled external feed" do |
| ... | ... | @@ -1046,7 +1066,12 @@ class CmsControllerTest < ActionController::TestCase |
| 1046 | 1066 | |
| 1047 | 1067 | should 'only_once option marked by default' do |
| 1048 | 1068 | get :new, :profile => profile.identifier, :type => 'Blog' |
| 1049 | - assert_tag :tag => 'input', :attributes => { :name => 'article[external_feed_builder][only_once]', :checked => 'checked', :value => 'true' } | |
| 1069 | + assert_select 'input[name=?][value="true"]', 'article[external_feed_builder][only_once]' do |elements| | |
| 1070 | + assert elements.length > 0 | |
| 1071 | + elements.each do |element| | |
| 1072 | + assert element['checked'] | |
| 1073 | + end | |
| 1074 | + end | |
| 1050 | 1075 | end |
| 1051 | 1076 | |
| 1052 | 1077 | should 'display media listing when it is TinyMceArticle and enabled on environment' do |
| ... | ... | @@ -1202,7 +1227,12 @@ class CmsControllerTest < ActionController::TestCase |
| 1202 | 1227 | should 'display posts per page input with default value on edit forum' do |
| 1203 | 1228 | n = Forum.new.posts_per_page.to_s |
| 1204 | 1229 | get :new, :profile => profile.identifier, :type => 'Forum' |
| 1205 | - assert_tag :tag => 'select', :attributes => { :name => 'article[posts_per_page]' }, :child => { :tag => 'option', :attributes => {:value => n, :selected => 'selected'} } | |
| 1230 | + assert_select 'select[name=?] option[value=?]', 'article[posts_per_page]', n do |elements| | |
| 1231 | + assert elements.length > 0 | |
| 1232 | + elements.each do |element| | |
| 1233 | + assert element['selected'] | |
| 1234 | + end | |
| 1235 | + end | |
| 1206 | 1236 | end |
| 1207 | 1237 | |
| 1208 | 1238 | should 'offer to edit a forum' do |
| ... | ... | @@ -1370,7 +1400,12 @@ class CmsControllerTest < ActionController::TestCase |
| 1370 | 1400 | should 'display display posts in current language input checked when editing blog' do |
| 1371 | 1401 | profile.articles << Blog.new(:name => 'Blog for test', :profile => profile, :display_posts_in_current_language => true) |
| 1372 | 1402 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
| 1373 | - assert_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => 'article[display_posts_in_current_language]', :checked => 'checked' } | |
| 1403 | + assert_select 'input[type=checkbox][name=?]', 'article[display_posts_in_current_language]' do |elements| | |
| 1404 | + assert elements.length > 0 | |
| 1405 | + elements.each do |element| | |
| 1406 | + assert element["checked"] | |
| 1407 | + end | |
| 1408 | + end | |
| 1374 | 1409 | end |
| 1375 | 1410 | |
| 1376 | 1411 | should 'display display posts in current language input not checked on new blog' do |
| ... | ... | @@ -1395,7 +1430,12 @@ class CmsControllerTest < ActionController::TestCase |
| 1395 | 1430 | should 'be checked display posts in current language checkbox' do |
| 1396 | 1431 | profile.articles << Blog.new(:name => 'Blog for test', :profile => profile, :display_posts_in_current_language => true) |
| 1397 | 1432 | get :edit, :profile => profile.identifier, :id => profile.blog.id |
| 1398 | - assert_tag :tag => 'input', :attributes => { :type => 'checkbox', :name => 'article[display_posts_in_current_language]', :checked => 'checked' } | |
| 1433 | + assert_select 'input[type=checkbox][name=?]', 'article[display_posts_in_current_language]' do |elements| | |
| 1434 | + assert elements.length > 0 | |
| 1435 | + elements.each do |element| | |
| 1436 | + assert element["checked"] | |
| 1437 | + end | |
| 1438 | + end | |
| 1399 | 1439 | end |
| 1400 | 1440 | |
| 1401 | 1441 | should 'be unchecked display posts in current language checkbox' do | ... | ... |