mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-16 16:16:43 +10:00
Fix some specs
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
class Admin::ProjectsController < Admin::ApplicationController
|
||||
before_action :project, only: [:show, :transfer]
|
||||
before_action :group, only: [:show, :transfer]
|
||||
before_action :repository, only: [:show, :transfer]
|
||||
|
||||
def index
|
||||
@projects = Project.all
|
||||
|
||||
@@ -67,7 +67,7 @@ class Projects::ApplicationController < ApplicationController
|
||||
end
|
||||
|
||||
def require_non_empty_project
|
||||
redirect_to @project if @project.empty_repo?
|
||||
redirect_to namespace_project_path(@project.namespace, @project) if @project.empty_repo?
|
||||
end
|
||||
|
||||
def require_branch_head
|
||||
|
||||
@@ -246,10 +246,6 @@ class Project < ActiveRecord::Base
|
||||
end
|
||||
|
||||
class << self
|
||||
def public_and_internal_levels
|
||||
[Project::PUBLIC, Project::INTERNAL]
|
||||
end
|
||||
|
||||
def abandoned
|
||||
where('projects.last_activity_at < ?', 6.months.ago)
|
||||
end
|
||||
@@ -976,11 +972,9 @@ class Project < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def visibility_level_allowed_as_fork?(level = self.visibility_level)
|
||||
return true unless forked? && forked_project_link.forked_from_project_id.present?
|
||||
return true unless forked?
|
||||
|
||||
from_project = self.forked_from_project
|
||||
from_project ||= Project.find(forked_project_link.forked_from_project_id)
|
||||
Gitlab::VisibilityLevel.allowed_fork_levels(from_project.visibility_level).include?(level)
|
||||
Gitlab::VisibilityLevel.allowed_fork_levels(forked_from_project.visibility_level).include?(level)
|
||||
end
|
||||
|
||||
def visibility_level_allowed_by_group?(level = self.visibility_level)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
= event_action_name(event)
|
||||
|
||||
- if event.target
|
||||
%strong= link_to event.target.to_reference, [event.project.namespace.becomes(Namespace), event.project, event.target]
|
||||
%strong= link_to event.target.reference_link_text, [event.project.namespace.becomes(Namespace), event.project, event.target]
|
||||
|
||||
= event_preposition(event)
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
class IndexNamespacesOnVisibilityLevel < ActiveRecord::Migration
|
||||
def change
|
||||
add_index :namespaces, :visibility_level
|
||||
end
|
||||
end
|
||||
@@ -601,6 +601,7 @@ ActiveRecord::Schema.define(version: 20160316204731) do
|
||||
add_index "namespaces", ["path"], name: "index_namespaces_on_path", unique: true, using: :btree
|
||||
add_index "namespaces", ["path"], name: "index_namespaces_on_path_trigram", using: :gin, opclasses: {"path"=>"gin_trgm_ops"}
|
||||
add_index "namespaces", ["type"], name: "index_namespaces_on_type", using: :btree
|
||||
add_index "namespaces", ["visibility_level"], name: "index_namespaces_on_visibility_level", using: :btree
|
||||
|
||||
create_table "notes", force: :cascade do |t|
|
||||
t.text "note"
|
||||
|
||||
@@ -38,7 +38,7 @@ module SharedGroup
|
||||
def is_member_of(username, groupname, role)
|
||||
@project_count ||= 0
|
||||
user = User.find_by(name: username) || create(:user, name: username)
|
||||
group = Group.find_by(name: groupname) || create(:group, name: groupname, visibility_level: Gitlab::VisibilityLevel::PUBLIC)
|
||||
group = Group.find_by(name: groupname) || create(:group, name: groupname)
|
||||
group.add_user(user, role)
|
||||
project ||= create(:project, namespace: group, path: "project#{@project_count}")
|
||||
create(:closed_issue_event, project: project)
|
||||
@@ -47,6 +47,6 @@ module SharedGroup
|
||||
end
|
||||
|
||||
def owned_group
|
||||
@owned_group ||= Group.find_by(name: "Owned", visibility_level: Gitlab::VisibilityLevel::PUBLIC)
|
||||
@owned_group ||= Group.find_by(name: "Owned")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -30,44 +30,4 @@ describe ApplicationController do
|
||||
controller.send(:check_password_expiration)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'check labels authorization' do
|
||||
let(:project) { create(:project) }
|
||||
let(:user) { create(:user) }
|
||||
let(:controller) { ApplicationController.new }
|
||||
|
||||
before do
|
||||
project.team << [user, :guest]
|
||||
allow(controller).to receive(:current_user).and_return(user)
|
||||
allow(controller).to receive(:project).and_return(project)
|
||||
end
|
||||
|
||||
it 'should succeed if issues and MRs are enabled' do
|
||||
project.issues_enabled = true
|
||||
project.merge_requests_enabled = true
|
||||
controller.send(:authorize_read_label!)
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it 'should succeed if issues are enabled, MRs are disabled' do
|
||||
project.issues_enabled = true
|
||||
project.merge_requests_enabled = false
|
||||
controller.send(:authorize_read_label!)
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it 'should succeed if issues are disabled, MRs are enabled' do
|
||||
project.issues_enabled = false
|
||||
project.merge_requests_enabled = true
|
||||
controller.send(:authorize_read_label!)
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it 'should fail if issues and MRs are disabled' do
|
||||
project.issues_enabled = false
|
||||
project.merge_requests_enabled = false
|
||||
expect(controller).to receive(:access_denied!)
|
||||
controller.send(:authorize_read_label!)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -119,7 +119,7 @@ describe Banzai::Filter::RedactorFilter, lib: true do
|
||||
context 'with data-group' do
|
||||
it 'removes unpermitted Group references' do
|
||||
user = create(:user)
|
||||
group = create(:group)
|
||||
group = create(:group, :private)
|
||||
|
||||
link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter')
|
||||
doc = filter(link, current_user: user)
|
||||
@@ -129,7 +129,7 @@ describe Banzai::Filter::RedactorFilter, lib: true do
|
||||
|
||||
it 'allows permitted Group references' do
|
||||
user = create(:user)
|
||||
group = create(:group)
|
||||
group = create(:group, :private)
|
||||
group.add_developer(user)
|
||||
|
||||
link = reference_link(group: group.id, reference_filter: 'UserReferenceFilter')
|
||||
|
||||
@@ -18,11 +18,11 @@ describe Project, models: true do
|
||||
let(:report_actions) { Ability.project_report_rules }
|
||||
let(:dev_actions) { Ability.project_dev_rules }
|
||||
let(:master_actions) { Ability.project_master_rules }
|
||||
let(:admin_actions) { Ability.project_admin_rules }
|
||||
let(:owner_actions) { Ability.project_owner_rules }
|
||||
|
||||
describe "Non member rules" do
|
||||
it "should deny for non-project users any actions" do
|
||||
admin_actions.each do |action|
|
||||
owner_actions.each do |action|
|
||||
expect(@abilities.allowed?(@u1, action, @p1)).to be_falsey
|
||||
end
|
||||
end
|
||||
@@ -90,20 +90,20 @@ describe Project, models: true do
|
||||
end
|
||||
end
|
||||
|
||||
describe "Admin Rules" do
|
||||
describe "Owner Rules" do
|
||||
before do
|
||||
@p1.project_members.create(project: @p1, user: @u2, access_level: ProjectMember::DEVELOPER)
|
||||
@p1.project_members.create(project: @p1, user: @u3, access_level: ProjectMember::MASTER)
|
||||
end
|
||||
|
||||
it "should deny for masters admin-specific actions" do
|
||||
[admin_actions - master_actions].each do |action|
|
||||
[owner_actions - master_actions].each do |action|
|
||||
expect(@abilities.allowed?(@u2, action, @p1)).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
it "should allow for project owner any admin actions" do
|
||||
admin_actions.each do |action|
|
||||
owner_actions.each do |action|
|
||||
expect(@abilities.allowed?(@u4, action, @p1)).to be_truthy
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,7 +9,7 @@ describe API::API, api: true do
|
||||
let(:admin) { create(:admin) }
|
||||
let(:avatar_file_path) { File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') }
|
||||
let!(:group1) { create(:group, avatar: File.open(avatar_file_path)) }
|
||||
let!(:group2) { create(:group) }
|
||||
let!(:group2) { create(:group, :private) }
|
||||
let!(:project1) { create(:project, namespace: group1) }
|
||||
let!(:project2) { create(:project, namespace: group2) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user