permissions_test.rb revision a5015ca9daa067f062e9e373c3dfafd5631560d9
2e37d45867d081db150ab78dad303b9077aea24fTimo Sirainenrequire 'integration_test_helper'
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainenclass PermissionsTest < ActionController::IntegrationTest
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen setup do
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen @repository = FactoryGirl.create(:repository)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen @user = FactoryGirl.create :user
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen @team = FactoryGirl.create :team
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # Add user as owner to the repository
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen FactoryGirl.create :permission, subject: @user, item: @repository
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen end
300e4e43ed1ca46d0614459161ca2fb460ef661aTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen test 'login' do
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen login_as @user, :scope => :user
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen visit repository_permissions_path(@repository)
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen find_link "Log out"
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
ae46f6ba5bb9eee8900254d3042e89d490023be0Timo Sirainen within '.relationList' do
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # does only one permission exist?
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen assert_equal 1, all('ul li[data-id]').count
3f3ad16ff74d694796d22501250a9a29997c0729Timo Sirainen
b4ddb5b3c3722620a8fef387dd8c47bb411a5643Timo Sirainen # fill in the autocomplete input
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen fill_in 'name', with: @team.name
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen end
300e4e43ed1ca46d0614459161ca2fb460ef661aTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # trigger the autocomplete input
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen page.execute_script %Q{ $('#name').trigger("mouseenter").trigger("click"); }
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # check for autocomplete suggestions
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen assert find("li.ui-menu-item a")
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen # select the first suggestion
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen page.execute_script %Q{ $('li.ui-menu-item a').trigger('mouseenter').click(); }
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
0a53eb0283d7ec28c6105f61e118b96fce8ecb95Timo Sirainen # has the permission been added to the list?
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen within '.relationList ul' do
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen assert find_link @team.name
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen assert_equal 2, all('li[data-id]').count
db693bf6fcae96d834567f1782257517b7207655Timo Sirainen end
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainen end
faec0abfd648c647030027e86de2ce8911df683bTimo Sirainen
2670cd577aa57eb9f915a4f4220ae48c9b4fc5fbTimo Sirainenend
5801ce4da7d807ab85d02051ece5969e7175eebaTimo Sirainen