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