#211: added specs for BuildList controller, updated ability.rb
This commit is contained in:
parent
2dee10a23f
commit
f370645eed
|
@ -67,7 +67,7 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
@build_list.priority = current_user.build_priority # User builds more priority than mass rebuild with zero priority
|
||||||
|
|
||||||
flash_options = {:project_version => @build_list.project_version, :arch => arch.name, :build_for_platform => build_for_platform.name}
|
flash_options = {:project_version => @build_list.project_version, :arch => arch.name, :build_for_platform => build_for_platform.name}
|
||||||
if @build_list.save
|
if authorize!(:create, @build_list) && @build_list.save
|
||||||
notices << t("flash.build_list.saved", flash_options)
|
notices << t("flash.build_list.saved", flash_options)
|
||||||
else
|
else
|
||||||
errors << t("flash.build_list.save_error", flash_options)
|
errors << t("flash.build_list.save_error", flash_options)
|
||||||
|
|
|
@ -85,7 +85,7 @@ class Ability
|
||||||
can(:create, BuildList) {|build_list|
|
can(:create, BuildList) {|build_list|
|
||||||
build_list.project.is_package &&
|
build_list.project.is_package &&
|
||||||
can?(:write, build_list.project) &&
|
can?(:write, build_list.project) &&
|
||||||
can?(:show, build_list.build_for_platform)
|
(build_list.build_for_platform.blank? || can?(:show, build_list.build_for_platform))
|
||||||
}
|
}
|
||||||
|
|
||||||
can(:publish, BuildList) do |build_list|
|
can(:publish, BuildList) do |build_list|
|
||||||
|
|
|
@ -62,7 +62,7 @@ describe Projects::BuildListsController do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
shared_examples_for 'not create build list' do
|
shared_examples_for 'not create build list' do |skip_new = false|
|
||||||
before {
|
before {
|
||||||
@project.update_attribute(:repositories, @platform.repositories)
|
@project.update_attribute(:repositories, @platform.repositories)
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ describe Projects::BuildListsController do
|
||||||
it 'should not be able to perform new action' do
|
it 'should not be able to perform new action' do
|
||||||
get :new, :owner_name => @project.owner.uname, :project_name => @project.name
|
get :new, :owner_name => @project.owner.uname, :project_name => @project.name
|
||||||
response.should redirect_to(forbidden_url)
|
response.should redirect_to(forbidden_url)
|
||||||
end
|
end unless skip_new
|
||||||
|
|
||||||
it 'should not be able to perform create action' do
|
it 'should not be able to perform create action' do
|
||||||
post :create, {:owner_name => @project.owner.uname, :project_name => @project.name}.merge(@create_params)
|
post :create, {:owner_name => @project.owner.uname, :project_name => @project.name}.merge(@create_params)
|
||||||
|
@ -259,6 +259,17 @@ describe Projects::BuildListsController do
|
||||||
it_should_behave_like 'show build list'
|
it_should_behave_like 'show build list'
|
||||||
it_should_behave_like 'create build list'
|
it_should_behave_like 'create build list'
|
||||||
|
|
||||||
|
context 'no ability to read build_for_platform' do
|
||||||
|
before do
|
||||||
|
repository = FactoryGirl.create(:repository)
|
||||||
|
repository.platform.change_visibility
|
||||||
|
Platform.where(:id => @platform.id).update_all(:platform_type => 'personal')
|
||||||
|
@create_params[:build_list].merge!({:include_repos => [repository.id]})
|
||||||
|
@create_params[:build_for_platforms] = [repository.platform_id]
|
||||||
|
end
|
||||||
|
it_should_behave_like 'not create build list', true
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'if user is project read member' do
|
context 'if user is project read member' do
|
||||||
|
|
Loading…
Reference in New Issue