|
- require File.expand_path('../../test_helper', __FILE__)
-
- class CoursesControllerTest < ActionController::TestCase
- fixtures :courses,
- :course_infos,
- :course_statuses,
- :users,
- :user_extensions,
- :bids,
- :homework_for_courses,
- :journals_for_messages,
- :schools,
- :roles,
- :members,
- :member_roles,
- :enabled_modules,
- :boards,
- :messages
-
- def setup
- @request.session[:user_id] = nil
- @request.session[:ctime] = Time.now.to_i
- @request.session[:atime] = Time.now.to_i
- Setting.default_language = 'en'
- end
-
- # Get :index
- def test_index_by_anonymous_should_not_show_private_projects
- get :index
- assert_response :success
- assert_template 'index'
- courses = assigns(:courses)
- assert_not_nil courses
- assert courses.all?(&:is_public?)
- end
-
- # Get :new
- # 人员添加课程的权限是不属于任何角色
- def test_new_course_anyone_temporary
- @request.session[:user_id] = 20
- Role.find_by_name("Non member").add_permission! :add_course #Non member
-
- get :new
- assert_response :success
- assert_template :new
- end
-
- # post :create
- def test_create_course_with_access_control
- @request.session[:user_id] = 20
- Role.find_by_name("Non member").add_permission! :add_course #Non member
- course_name = 'course_one'
-
- post :create,
- :class_period => '32',
- :time => '2014',
- :term => 'spring',
- :course => {
- :name => course_name, # names can't contain space.
- :password => '1234',
- :description => 'description',
- :is_public => '1',
- :course_type => '1'
- }
-
- assert_response :found
- course = Course.find_by_name(course_name)
- red_url = "courses/#{course.id}/settings"
- assert_match %r(#{red_url}), @response.redirect_url
- # 创建成功跳转settings方法会带参数一枚,故一下方法失败
- # assert_redirected_to "courses/#{course.id}/settings"
- end
-
- # post :create 403
- def test_create_course_without_access_control
- @request.session[:user_id] = 20
- #Role.find_by_name("Non member").add_permission! :add_course #Non member
- course_name = 'course_one'
-
- post :create,
- :class_period => '32',
- :time => '2014',
- :term => 'spring',
- :course => {
- :name => course_name, # names can't contain space.
- :password => '1234',
- :description => 'description',
- :is_public => '1',
- :course_type => '1'
- }
-
- 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
- # get :index
- # assert_template 'index'
- # assert_select 'a[href=?]', '/time_entries'
- # end
- #
- # test "#index by non-admin user without view_time_entries permission should not show overall spent time link" do
- # Role.find(2).remove_permission! :view_time_entries
- # Role.non_member.remove_permission! :view_time_entries
- # Role.anonymous.remove_permission! :view_time_entries
- # @request.session[:user_id] = 3
- #
- # get :index
- # assert_template 'index'
- # assert_select 'a[href=?]', '/time_entries', 0
- # end
- end
-
|