2014-11-13 10:18:07 +08:00
|
|
|
require File.expand_path('../../test_helper', __FILE__)
|
|
|
|
|
|
|
|
class ProjectsControllerTest < ActionController::TestCase
|
|
|
|
fixtures :projects,
|
|
|
|
:issues,
|
|
|
|
:issue_statuses,
|
|
|
|
:enumerations,
|
|
|
|
:users,
|
|
|
|
:issue_categories,
|
|
|
|
:trackers,
|
|
|
|
:projects_trackers,
|
|
|
|
:roles,
|
|
|
|
:member_roles,
|
|
|
|
:members,
|
|
|
|
:enabled_modules,
|
|
|
|
:journals,
|
|
|
|
:journal_details,
|
|
|
|
:journals_for_messages
|
|
|
|
|
|
|
|
def setup
|
|
|
|
@request.session[:user_id] = nil
|
|
|
|
@request.session[:ctime] = Time.now
|
|
|
|
@request.session[:atime] = Time.now
|
|
|
|
Setting.default_language = 'en'
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'get :index' do
|
|
|
|
get :index
|
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
test ':new by admin should accept get' do
|
|
|
|
@request.session[:user_id] = 1
|
|
|
|
get :new
|
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
test ':new by non-admin user with add_project permission should accept get' do
|
|
|
|
Role.non_member.add_permission! :add_project
|
|
|
|
@request.session[:user_id] = 9
|
|
|
|
get :new
|
|
|
|
assert_response :success
|
|
|
|
assert_template 'new'
|
|
|
|
end
|
|
|
|
|
|
|
|
test ':create by admin user should create a new project' do
|
|
|
|
@request.session[:user_id] = 1
|
|
|
|
post :create, :project => {
|
|
|
|
name: "blog1",
|
|
|
|
description: 'weblog',
|
|
|
|
homepage: 'http://weblog',
|
|
|
|
identifier: 'blog',
|
|
|
|
is_public: 1,
|
|
|
|
custom_field_values: {'3' => 'Beta'},
|
|
|
|
tracker_ids: ['1', '3'],
|
|
|
|
:issue_custom_field_ids => ['9'],
|
|
|
|
:enabled_module_names => ['issue_tracking', 'news', 'repository']
|
|
|
|
}
|
|
|
|
project = Project.find_by_name(blog)
|
|
|
|
assert_not_nil project
|
|
|
|
assert_redirected_to "/projects/#{project.id}/settings"
|
|
|
|
|
|
|
|
assert_kind_of Project, project
|
|
|
|
assert project.active?
|
|
|
|
assert_equal 'weblog', project.description
|
|
|
|
assert_equal 'http://weblog', project.homepage
|
|
|
|
assert_equal true, project.is_public?
|
|
|
|
assert_nil project.parent
|
|
|
|
assert_equal 'Beta', project.custom_value_for(3).value
|
|
|
|
assert_equal [1, 3], project.trackers.map(&:id).sort
|
|
|
|
assert_equal ['issue_tracking', 'news', 'repository'], project.enabled_module_names.sort
|
|
|
|
assert project.issue_custom_fields.include?(IssueCustomField.find(9))
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'get :show trustie' do
|
|
|
|
get :show, {id: 2}
|
|
|
|
assert_response :success
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'get :search, forge' do
|
|
|
|
query_condition = "forge"
|
|
|
|
get :search, {'name' => query_condition }
|
|
|
|
projects = assigns(:projects_all)
|
|
|
|
assert projects.any?, "projects should have anything."
|
|
|
|
projects.each do |project|
|
|
|
|
assert project.name.downcase.include?(query_condition), "project name is invalid: #{project.name}"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'get :feedback' do
|
|
|
|
get :feedback, {id: 2}
|
|
|
|
assert_response :success
|
|
|
|
# prject_id = 2 总有8个留言
|
|
|
|
assert_equal assigns(:jour).count, 8
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|