diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index 0b76a7f44..184a67e3d 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -1,28 +1,15 @@ <% @nav_dispaly_project_label = 1 @nav_dispaly_forum_label = 1 %> + <%= labelled_form_for @project do |f| %> - - <% if @course_tag == '1' %> -

<%=l(:label_course_new)%>

-
- - <%= render :partial => 'course_form', :locals => { :f => f } %> - - <%= submit_tag l(:button_create), :class => "enterprise"%> - -
- - <% else %> -

<%=l(:label_project_new)%>

-
-

<%=raw l(:label_project_new_description)%>

- <%= render :partial => 'form', :locals => { :f => f } %> - - <%= submit_tag l(:button_create), :class => "enterprise"%> - -
- - <% end %> - <%= javascript_tag "$('#project_name').focus();" %> +

<%=l(:label_project_new)%>

+
+

<%=raw l(:label_project_new_description)%>

+ <%= render :partial => 'form', :locals => { :f => f } %> + + <%= submit_tag l(:button_create), :class => "enterprise"%> + +
+ <%#= submit_tag l(:button_create_and_continue), :name => 'continue' %> + <%= javascript_tag "$('#project_name').focus();" %> <% end %> - diff --git a/test/fixtures/journals_for_messages.yml b/test/fixtures/journals_for_messages.yml new file mode 100644 index 000000000..d0fc66d84 --- /dev/null +++ b/test/fixtures/journals_for_messages.yml @@ -0,0 +1,122 @@ +jfm_001: + id: 45 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: 我觉得这个系统挺实用,界面挺简洁美观! + status: + reply_id: 0 + created_on: 2013-08-16 15:27:2 + updated_on: 2013-08-16 15:27:2 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_048: + id: 48 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: aqfbLT wcqmhgdpgfvy, [url=http://flyhqtjjtskb.com/]flyhqtjjtskb[/url], + [link=http://idlilqzxissn.com/]idlilqzxissn[/link], http://sfeezearevbp.com/ + status: + reply_id: 0 + created_on: 2013-08-18 20:44:18 + updated_on: 2013-08-18 20:44:18 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_049: + id: 49 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: 搜索用户时,若无对应结果,没有返回提示信息,比如不会提示:暂无此人 + status: + reply_id: 0 + created_on: 2013-08-19 08:45:27 + updated_on: 2013-08-19 08:45:27 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_058: + id: 58 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: 问题板块中 “新建问题”能不能移动到靠右~ + status: + reply_id: 0 + created_on: 2013-08-20 00:24:44 + updated_on: 2013-08-20 00:24:44 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_060: + id: 60 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: something very nice + status: + reply_id: 0 + created_on: 2013-08-21 07:04:43 + updated_on: 2013-08-21 07:04:43 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_086: + id: 86 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: 谢谢大家的反馈! + status: + reply_id: 0 + created_on: 2013-08-23 02:36:48 + updated_on: 2013-08-23 02:36:48 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_087: + id: 87 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: ”与我相关“处不可以直接回复 + status: + reply_id: 0 + created_on: 2013-08-23 02:44:56 + updated_on: 2013-08-23 02:44:56 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_088: + id: 88 + jour_id: 2 + jour_type: Project + user_id: 2 + notes: 任何有关回复的地方可在任意显示处回复 + status: + reply_id: 0 + created_on: 2013-08-23 02:45:45 + updated_on: 2013-08-23 02:45:45 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: + diff --git a/test/fixtures/projects.yml b/test/fixtures/projects.yml index 0105f9356..c979498fb 100644 --- a/test/fixtures/projects.yml +++ b/test/fixtures/projects.yml @@ -11,18 +11,18 @@ projects_001: parent_id: lft: 1 rgt: 10 -projects_002: - created_on: 2006-07-19 19:14:19 +02:00 - name: OnlineStore - updated_on: 2006-07-19 19:14:19 +02:00 - id: 2 - description: E-commerce web site - homepage: "" - is_public: false - identifier: onlinestore - parent_id: - lft: 11 - rgt: 12 +#projects_002: +# created_on: 2006-07-19 19:14:19 +02:00 +# name: OnlineStore +# updated_on: 2006-07-19 19:14:19 +02:00 +# id: 2 +# description: E-commerce web site +# homepage: "" +# is_public: false +# identifier: onlinestore +# parent_id: +# lft: 11 +# rgt: 12 projects_003: created_on: 2006-07-19 19:15:21 +02:00 name: eCookbook Subproject 1 @@ -71,3 +71,24 @@ projects_006: parent_id: 5 lft: 3 rgt: 4 +trustie: + id: 2 + name: SocialForge + description: "SocialForge是TrustieForge的升级版,支持社交化协同开发与合作。 SocialForge aims to provide a socialized and crowd sourcing enabled collaboration development platform. It is combining and will combine TrustieForge, Influx, Redmine and other open source projects." + homepage: http://forge.trustie.net + is_public: true + parent_id: + created_on: 2013-06-25 06:02:19.000000000 Z + updated_on: 2013-11-13 12:52:42.000000000 Z + identifier: trustie + status: 1 + lft: 11 + rgt: 12 +# lft: 115 +# rgt: 116 + project_type: 0 + hidden_repo: true + attachmenttype: 1 + user_id: + dts_test: 0 + diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb new file mode 100644 index 000000000..412165620 --- /dev/null +++ b/test/functional/projects_controller_test.rb @@ -0,0 +1,95 @@ +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