From 281c48c0b317fd387acb780fbefbbe2d4c56f4f5 Mon Sep 17 00:00:00 2001 From: yanxd Date: Wed, 30 Jul 2014 10:18:36 +0800 Subject: [PATCH] . --- app/controllers/courses_controller.rb | 2 +- test/fixtures/biding_projects.yml | 8 ++++ test/fixtures/bids.yml | 34 +++++++++++++++ test/fixtures/homework_for_courses.yml | 10 +++++ test/fixtures/journals_for_messages.yml | 32 ++++++++++++++ test/functional/courses_controller_test.rb | 49 ++++++++++++++++++++++ 6 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/biding_projects.yml create mode 100644 test/fixtures/bids.yml create mode 100644 test/fixtures/homework_for_courses.yml diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 9db479eb5..d05eed7a0 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -494,7 +494,7 @@ class CoursesController < ApplicationController if (User.current.logged? && User.current.member_of_course?(Course.find params[:id] )) render :layout => 'base_courses' else - render_404 + render_403 end end diff --git a/test/fixtures/biding_projects.yml b/test/fixtures/biding_projects.yml new file mode 100644 index 000000000..6a55145f4 --- /dev/null +++ b/test/fixtures/biding_projects.yml @@ -0,0 +1,8 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html +--- +biding_project_001: + id: 1 + project_id: -1 + bid_id: 1 + +#biding_project_002: diff --git a/test/fixtures/bids.yml b/test/fixtures/bids.yml new file mode 100644 index 000000000..2f486a914 --- /dev/null +++ b/test/fixtures/bids.yml @@ -0,0 +1,34 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html +--- +homework_001: + id: 1 + author_id: 20 + budget: "0" + commit: 3 + deadline: "2014-05-30" + description: "" + homework_type: 1 + is_evaluation: + name: "course_001_homework_001" + parent_id: + password: + proportion: 60 + reward_type: 3 # 作业 + updated_on: 2014-05-23 08:15:28 + created_on: 2014-05-23 08:15:28 +homework_002: + id: 2 + author_id: 20 + budget: "0" + commit: 3 + deadline: "2014-05-30" + description: "" + homework_type: 1 + is_evaluation: + name: "course_001_homework_002" + parent_id: + password: + proportion: 60 + reward_type: 3 # 作业 + updated_on: 2014-05-23 08:15:28 + created_on: 2014-05-23 08:15:28 diff --git a/test/fixtures/homework_for_courses.yml b/test/fixtures/homework_for_courses.yml new file mode 100644 index 000000000..cf8310143 --- /dev/null +++ b/test/fixtures/homework_for_courses.yml @@ -0,0 +1,10 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html +--- +homework_for_courses_001: + id: 1 + course_id: 1 + bid_id: 1 +homework_for_courses_002: + id: 2 + course_id: 1 + bid_id: 2 diff --git a/test/fixtures/journals_for_messages.yml b/test/fixtures/journals_for_messages.yml index a5d28caec..75e4f8ed1 100644 --- a/test/fixtures/journals_for_messages.yml +++ b/test/fixtures/journals_for_messages.yml @@ -28,6 +28,38 @@ jfm_002: m_reply_count: m_reply_id: is_comprehensive_evaluation: +jfm_003: + # Course one's jfm + id: 3 + jour_id: 1 + jour_type: Course + user_id: 2 + notes: + status: + reply_id: 0 + created_on: 2014-07-16 15:27:2 + updated_on: 2014-07-16 15:27:2 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: +jfm_004: + # Course one's jfm + id: 4 + jour_id: 1 + jour_type: Course + user_id: 25 + notes: course_001的留言by_user_025 + status: + reply_id: 0 + created_on: 2014-07-16 15:27:2 + updated_on: 2014-07-16 15:27:2 + m_parent_id: + is_readed: + m_reply_count: + m_reply_id: + is_comprehensive_evaluation: jfm_045: id: 45 jour_id: 2 diff --git a/test/functional/courses_controller_test.rb b/test/functional/courses_controller_test.rb index b905b5038..66e613bfb 100644 --- a/test/functional/courses_controller_test.rb +++ b/test/functional/courses_controller_test.rb @@ -6,6 +6,9 @@ class CoursesControllerTest < ActionController::TestCase :course_statuses, :users, :user_extensions, + :bids, + :homework_for_courses, + :journals_for_messages, :schools, :roles, :members, @@ -88,6 +91,52 @@ class CoursesControllerTest < ActionController::TestCase assert_response :forbidden end + test ':homework get by non-member is access' do + get :homework, {id: 1} + assert_response :success + end + + test ':feedback Get by non-member is access' do + get :feedback, {id: 1} + assert_response :success + # 检测留言是否在其中以及不报错 + jfms = JournalsForMessage.where(jour_type: 'Course', jour_id: 1, m_parent_id: nil).reorder('id DESC') + jfms.take(5).each do |j| + assert_select "li#word_li_#{j.id}" + end + end + + test ':homework get by non-member' do + get :homework, {id: 1} + assert_response :success + course = Course.find(1) + assert course.homeworks.any? + course.homeworks.each do |homework| + assert_select '.bid_path', homework.name + end + end + + test ':new_homework by no user should not new_homework course_001' do + get :new_homework, {id: 1} + assert_response 403 + end + test ':new_homework by loged & allowed user should get new_homework course_001' do + user_id = 25 + member = Member.create(user_id: user_id, project_id: -1, course_id: 1, roles: [Role.last]) + MemberRole.create(member_id: member.id, role_id: 3) + @request.session[:user_id] = user_id + get :new_homework, {id: 1} + assert_response :success + assert_template 'new_homework' + end + + test ':member by ano' do + get :member, {id: 1} + assert_response :success + assert_template 'member' + assert assigns(:members).any? + end + # test "#index by non-admin user with view_time_entries permission should show overall spent time link" do # @request.session[:user_id] = 3