Use #assert_select instead of #assert_tag.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11066 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-12-22 09:35:35 +00:00
parent eecabc5bb0
commit 3976d5e740
6 changed files with 134 additions and 208 deletions

View File

@ -104,7 +104,7 @@
<% end %>
<% @options_by_custom_field.each do |field, options| %>
<li class="folder">
<li class="folder cf_<%= field.id %>">
<a href="#" class="submenu"><%= h(field.name) %></a>
<ul>
<% options.each do |text, value| %>

View File

@ -94,8 +94,8 @@ class AccountControllerTest < ActionController::TestCase
assert_template 'register'
assert_not_nil assigns(:user)
assert_tag 'input', :attributes => {:name => 'user[password]'}
assert_tag 'input', :attributes => {:name => 'user[password_confirmation]'}
assert_select 'input[name=?]', 'user[password]'
assert_select 'input[name=?]', 'user[password_confirmation]'
end
end

View File

@ -36,16 +36,8 @@ class ActivitiesControllerTest < ActionController::TestCase
assert_template 'index'
assert_not_nil assigns(:events_by_day)
assert_tag :tag => "h3",
:content => /#{2.days.ago.to_date.day}/,
:sibling => { :tag => "dl",
:child => { :tag => "dt",
:attributes => { :class => /issue-edit/ },
:child => { :tag => "a",
:content => /(#{IssueStatus.find(2).name})/,
}
}
}
assert_select 'h3', :text => /#{2.days.ago.to_date.day}/
assert_select 'dl dt.issue-edit a', :text => /(#{IssueStatus.find(2).name})/
end
def test_project_index_with_invalid_project_id_should_respond_404
@ -59,16 +51,8 @@ class ActivitiesControllerTest < ActionController::TestCase
assert_template 'index'
assert_not_nil assigns(:events_by_day)
assert_tag :tag => "h3",
:content => /#{3.day.ago.to_date.day}/,
:sibling => { :tag => "dl",
:child => { :tag => "dt",
:attributes => { :class => /issue/ },
:child => { :tag => "a",
:content => /Can&#x27;t print recipes/,
}
}
}
assert_select 'h3', :text => /#{3.days.ago.to_date.day}/
assert_select 'dl dt.issue a', :text => /Can&#x27;t print recipes/
end
def test_global_index
@ -80,16 +64,9 @@ class ActivitiesControllerTest < ActionController::TestCase
i5 = Issue.find(5)
d5 = User.find(1).time_to_date(i5.created_on)
assert_tag :tag => "h3",
:content => /#{d5.day}/,
:sibling => { :tag => "dl",
:child => { :tag => "dt",
:attributes => { :class => /issue/ },
:child => { :tag => "a",
:content => /Subproject issue/,
}
}
}
assert_select 'h3', :text => /#{d5.day}/
assert_select 'dl dt.issue a', :text => /Subproject issue/
end
def test_user_index
@ -104,16 +81,8 @@ class ActivitiesControllerTest < ActionController::TestCase
i1 = Issue.find(1)
d1 = User.find(1).time_to_date(i1.created_on)
assert_tag :tag => "h3",
:content => /#{d1.day}/,
:sibling => { :tag => "dl",
:child => { :tag => "dt",
:attributes => { :class => /issue/ },
:child => { :tag => "a",
:content => /Can&#x27;t print recipes/,
}
}
}
assert_select 'h3', :text => /#{d1.day}/
assert_select 'dl dt.issue a', :text => /Can&#x27;t print recipes/
end
def test_user_index_with_invalid_user_id_should_respond_404
@ -126,14 +95,13 @@ class ActivitiesControllerTest < ActionController::TestCase
assert_response :success
assert_template 'common/feed'
assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
:attributes => {:rel => 'self', :href => 'http://test.host/activity.atom?with_subprojects=0'}
assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
:attributes => {:rel => 'alternate', :href => 'http://test.host/activity?with_subprojects=0'}
assert_tag :tag => 'entry', :child => {
:tag => 'link',
:attributes => {:href => 'http://test.host/issues/11'}}
assert_select 'feed' do
assert_select 'link[rel=self][href=?]', 'http://test.host/activity.atom?with_subprojects=0'
assert_select 'link[rel=alternate][href=?]', 'http://test.host/activity?with_subprojects=0'
assert_select 'entry' do
assert_select 'link[href=?]', 'http://test.host/issues/11'
end
end
end
def test_index_atom_feed_with_explicit_selection
@ -150,21 +118,21 @@ class ActivitiesControllerTest < ActionController::TestCase
assert_response :success
assert_template 'common/feed'
assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
:attributes => {:rel => 'self', :href => 'http://test.host/activity.atom?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'}
assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
:attributes => {:rel => 'alternate', :href => 'http://test.host/activity?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'}
assert_tag :tag => 'entry', :child => {
:tag => 'link',
:attributes => {:href => 'http://test.host/issues/11'}}
assert_select 'feed' do
assert_select 'link[rel=self][href=?]', 'http://test.host/activity.atom?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'
assert_select 'link[rel=alternate][href=?]', 'http://test.host/activity?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'
assert_select 'entry' do
assert_select 'link[href=?]', 'http://test.host/issues/11'
end
end
end
def test_index_atom_feed_with_one_item_type
get :index, :format => 'atom', :show_issues => '1'
assert_response :success
assert_template 'common/feed'
assert_tag :tag => 'title', :content => /Issues/
assert_select 'title', :text => /Issues/
end
def test_index_should_show_private_notes_with_permission_only

View File

@ -75,8 +75,9 @@ class BoardsControllerTest < ActionController::TestCase
assert_response :success
assert_template 'show'
assert_tag 'form', :attributes => {:id => 'message-form'}
assert_tag 'input', :attributes => {:name => 'message[subject]'}
assert_select 'form#message-form' do
assert_select 'input[name=?]', 'message[subject]'
end
end
def test_show_atom

View File

@ -56,42 +56,32 @@ class CalendarsControllerTest < ActionController::TestCase
get :show, :month => '1', :year => '2010'
assert_response :success
assert_tag :tag => 'tr',
:descendant => {:tag => 'td',
:attributes => {:class => 'week-number'}, :content => '53'},
:descendant => {:tag => 'td',
:attributes => {:class => 'odd'}, :content => '27'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '2'}
assert_tag :tag => 'tr',
:descendant => {:tag => 'td',
:attributes => {:class => 'week-number'}, :content => '1'},
:descendant => {:tag => 'td',
:attributes => {:class => 'odd'}, :content => '3'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '9'}
assert_select 'tr' do
assert_select 'td.week-number', :text => '53'
assert_select 'td.odd', :text => '27'
assert_select 'td.even', :text => '2'
end
assert_select 'tr' do
assert_select 'td.week-number', :text => '1'
assert_select 'td.odd', :text => '3'
assert_select 'td.even', :text => '9'
end
Setting.start_of_week = 1
get :show, :month => '1', :year => '2010'
assert_response :success
assert_tag :tag => 'tr',
:descendant => {:tag => 'td',
:attributes => {:class => 'week-number'}, :content => '53'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '28'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '3'}
assert_tag :tag => 'tr',
:descendant => {:tag => 'td',
:attributes => {:class => 'week-number'}, :content => '1'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '4'},
:descendant => {:tag => 'td',
:attributes => {:class => 'even'}, :content => '10'}
assert_select 'tr' do
assert_select 'td.week-number', :text => '53'
assert_select 'td.even', :text => '28'
assert_select 'td.even', :text => '3'
end
assert_select 'tr' do
assert_select 'td.week-number', :text => '1'
assert_select 'td.even', :text => '4'
assert_select 'td.even', :text => '10'
end
end
end

View File

@ -38,34 +38,21 @@ class ContextMenusControllerTest < ActionController::TestCase
get :issues, :ids => [1]
assert_response :success
assert_template 'context_menu'
assert_tag :tag => 'a', :content => 'Edit',
:attributes => { :href => '/issues/1/edit',
:class => 'icon-edit' }
assert_tag :tag => 'a', :content => 'Closed',
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bstatus_id%5D=5',
:class => '' }
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8',
:class => '' }
assert_no_tag :tag => 'a', :content => 'Inactive Priority'
# Versions
assert_tag :tag => 'a', :content => '2.0',
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3',
:class => '' }
assert_tag :tag => 'a', :content => 'eCookbook Subproject 1 - 2.0',
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=4',
:class => '' }
assert_tag :tag => 'a', :content => 'Dave Lopper',
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=3',
:class => '' }
assert_tag :tag => 'a', :content => 'Copy',
:attributes => { :href => '/projects/ecookbook/issues/1/copy',
:class => 'icon-copy' }
assert_no_tag :tag => 'a', :content => 'Move'
assert_tag :tag => 'a', :content => 'Delete',
:attributes => { :href => '/issues?ids%5B%5D=1',
:class => 'icon-del' }
assert_select 'a.icon-edit[href=?]', '/issues/1/edit', :text => 'Edit'
assert_select 'a.icon-copy[href=?]', '/projects/ecookbook/issues/1/copy', :text => 'Copy'
assert_select 'a.icon-del[href=?]', '/issues?ids%5B%5D=1', :text => 'Delete'
# Statuses
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bstatus_id%5D=5', :text => 'Closed'
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8', :text => 'Immediate'
# No inactive priorities
assert_select 'a', :text => /Inactive Priority/, :count => 0
# Versions
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3', :text => '2.0'
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=4', :text => 'eCookbook Subproject 1 - 2.0'
# Assignees
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=3', :text => 'Dave Lopper'
end
def test_context_menu_one_issue_by_anonymous
@ -86,25 +73,14 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_equal [1, 2], assigns(:issues).map(&:id).sort
ids = assigns(:issues).map(&:id).sort.map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
assert_tag :tag => 'a', :content => 'Edit',
:attributes => { :href => "/issues/bulk_edit?#{ids}",
:class => 'icon-edit' }
assert_tag :tag => 'a', :content => 'Closed',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bstatus_id%5D=5",
:class => '' }
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bpriority_id%5D=8",
:class => '' }
assert_tag :tag => 'a', :content => 'Dave Lopper',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bassigned_to_id%5D=3",
:class => '' }
assert_tag :tag => 'a', :content => 'Copy',
:attributes => { :href => "/issues/bulk_edit?copy=1&amp;#{ids}",
:class => 'icon-copy' }
assert_no_tag :tag => 'a', :content => 'Move'
assert_tag :tag => 'a', :content => 'Delete',
:attributes => { :href => "/issues?#{ids}",
:class => 'icon-del' }
assert_select 'a.icon-edit[href=?]', "/issues/bulk_edit?#{ids}", :text => 'Edit'
assert_select 'a.icon-copy[href=?]', "/issues/bulk_edit?copy=1&amp;#{ids}", :text => 'Copy'
assert_select 'a.icon-del[href=?]', "/issues?#{ids}", :text => 'Delete'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bstatus_id%5D=5", :text => 'Closed'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bpriority_id%5D=8", :text => 'Immediate'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bassigned_to_id%5D=3", :text => 'Dave Lopper'
end
def test_context_menu_multiple_issues_of_different_projects
@ -116,21 +92,13 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_equal [1, 2, 6], assigns(:issues).map(&:id).sort
ids = assigns(:issues).map(&:id).sort.map {|i| "ids%5B%5D=#{i}"}.join('&amp;')
assert_tag :tag => 'a', :content => 'Edit',
:attributes => { :href => "/issues/bulk_edit?#{ids}",
:class => 'icon-edit' }
assert_tag :tag => 'a', :content => 'Closed',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bstatus_id%5D=5",
:class => '' }
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bpriority_id%5D=8",
:class => '' }
assert_tag :tag => 'a', :content => 'John Smith',
:attributes => { :href => "/issues/bulk_update?#{ids}&amp;issue%5Bassigned_to_id%5D=2",
:class => '' }
assert_tag :tag => 'a', :content => 'Delete',
:attributes => { :href => "/issues?#{ids}",
:class => 'icon-del' }
assert_select 'a.icon-edit[href=?]', "/issues/bulk_edit?#{ids}", :text => 'Edit'
assert_select 'a.icon-del[href=?]', "/issues?#{ids}", :text => 'Delete'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bstatus_id%5D=5", :text => 'Closed'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bpriority_id%5D=8", :text => 'Immediate'
assert_select 'a[href=?]', "/issues/bulk_update?#{ids}&amp;issue%5Bassigned_to_id%5D=2", :text => 'John Smith'
end
def test_context_menu_should_include_list_custom_fields
@ -139,17 +107,14 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1]
assert_tag 'a',
:content => 'List',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => 3}}
assert_tag 'a',
:content => 'Foo',
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=Foo"}
assert_tag 'a',
:content => 'none',
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D="}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'List'
assert_select 'ul' do
assert_select 'a', 3
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=Foo", :text => 'Foo'
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=", :text => 'none'
end
end
end
def test_context_menu_should_not_include_null_value_for_required_custom_fields
@ -158,10 +123,13 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1, 2]
assert_tag 'a',
:content => 'List',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => 2}}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'List'
assert_select 'ul' do
assert_select 'a', 2
assert_select 'a', :text => 'none', :count => 0
end
end
end
def test_context_menu_on_single_issue_should_select_current_custom_field_value
@ -173,13 +141,13 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1]
assert_tag 'a',
:content => 'List',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => 3}}
assert_tag 'a',
:content => 'Bar',
:attributes => {:class => /icon-checked/}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'List'
assert_select 'ul' do
assert_select 'a', 3
assert_select 'a.icon-checked', :text => 'Bar'
end
end
end
def test_context_menu_should_include_bool_custom_fields
@ -188,14 +156,15 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1]
assert_tag 'a',
:content => 'Bool',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => 3}}
assert_tag 'a',
:content => 'Yes',
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=1"}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'Bool'
assert_select 'ul' do
assert_select 'a', 3
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=0", :text => 'No'
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=1", :text => 'Yes'
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=", :text => 'none'
end
end
end
def test_context_menu_should_include_user_custom_fields
@ -204,14 +173,14 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1]
assert_tag 'a',
:content => 'User',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => Project.find(1).members.count + 1}}
assert_tag 'a',
:content => 'John Smith',
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=2"}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'User'
assert_select 'ul' do
assert_select 'a', Project.find(1).members.count + 1
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=2", :text => 'John Smith'
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=", :text => 'none'
end
end
end
def test_context_menu_should_include_version_custom_fields
@ -219,14 +188,14 @@ class ContextMenusControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
get :issues, :ids => [1]
assert_tag 'a',
:content => 'Version',
:attributes => {:href => '#'},
:sibling => {:tag => 'ul', :children => {:count => Project.find(1).shared_versions.count + 1}}
assert_tag 'a',
:content => '2.0',
:attributes => {:href => "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=3"}
assert_select "li.cf_#{field.id}" do
assert_select 'a[href=#]', :text => 'Version'
assert_select 'ul' do
assert_select 'a', Project.find(1).shared_versions.count + 1
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=3", :text => '2.0'
assert_select 'a[href=?]', "/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bcustom_field_values%5D%5B#{field.id}%5D=", :text => 'none'
end
end
end
def test_context_menu_by_assignable_user_should_include_assigned_to_me_link
@ -235,9 +204,7 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_response :success
assert_template 'context_menu'
assert_tag :tag => 'a', :content => / me /,
:attributes => { :href => '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=2',
:class => '' }
assert_select 'a[href=?]', '/issues/bulk_update?ids%5B%5D=1&amp;issue%5Bassigned_to_id%5D=2', :text => / me /
end
def test_context_menu_should_propose_shared_versions_for_issues_from_different_projects
@ -249,7 +216,7 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_template 'context_menu'
assert_include version, assigns(:versions)
assert_tag :tag => 'a', :content => 'eCookbook - Shared'
assert_select 'a', :text => 'eCookbook - Shared'
end
def test_context_menu_issue_visibility
@ -264,8 +231,8 @@ class ContextMenusControllerTest < ActionController::TestCase
get :time_entries, :ids => [1, 2]
assert_response :success
assert_template 'time_entries'
assert_tag 'a', :content => 'Edit'
assert_no_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
assert_select 'a:not(.disabled)', :text => 'Edit'
end
def test_time_entries_context_menu_without_edit_permission
@ -275,6 +242,6 @@ class ContextMenusControllerTest < ActionController::TestCase
get :time_entries, :ids => [1, 2]
assert_response :success
assert_template 'time_entries'
assert_tag 'a', :content => 'Edit', :attributes => {:class => /disabled/}
assert_select 'a.disabled', :text => 'Edit'
end
end