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