2014-07-16 14:35:54 +08:00
|
|
|
|
require File.expand_path('../../test_helper', __FILE__)
|
|
|
|
|
|
|
|
|
|
class CoursesControllerTest < ActionController::TestCase
|
2014-07-29 12:05:24 +08:00
|
|
|
|
fixtures :courses,
|
|
|
|
|
:course_infos,
|
|
|
|
|
:course_statuses,
|
|
|
|
|
:users,
|
|
|
|
|
:user_extensions,
|
|
|
|
|
:schools,
|
|
|
|
|
:roles,
|
|
|
|
|
:members,
|
|
|
|
|
:member_roles,
|
|
|
|
|
:enabled_modules,
|
|
|
|
|
:boards,
|
|
|
|
|
:messages
|
2014-07-16 14:35:54 +08:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
2014-07-22 09:16:07 +08:00
|
|
|
|
# Get :index
|
2014-07-16 14:35:54 +08:00
|
|
|
|
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
|
|
|
|
|
|
2014-07-22 09:16:07 +08:00
|
|
|
|
# Get :new
|
2014-07-16 17:46:17 +08:00
|
|
|
|
# 人员添加课程的权限是不属于任何角色
|
|
|
|
|
def test_new_course_anyone_temporary
|
2014-07-29 12:05:24 +08:00
|
|
|
|
@request.session[:user_id] = 20
|
2014-07-16 17:46:17 +08:00
|
|
|
|
Role.find_by_name("Non member").add_permission! :add_course #Non member
|
2014-07-16 14:35:54 +08:00
|
|
|
|
|
|
|
|
|
get :new
|
|
|
|
|
assert_response :success
|
2014-07-16 17:46:17 +08:00
|
|
|
|
assert_template :new
|
|
|
|
|
end
|
|
|
|
|
|
2014-07-22 09:16:07 +08:00
|
|
|
|
# post :create
|
2014-07-17 09:52:56 +08:00
|
|
|
|
def test_create_course_with_access_control
|
2014-07-29 12:05:24 +08:00
|
|
|
|
@request.session[:user_id] = 20
|
2014-07-16 17:46:17 +08:00
|
|
|
|
Role.find_by_name("Non member").add_permission! :add_course #Non member
|
2014-07-17 09:52:56 +08:00
|
|
|
|
course_name = 'course_one'
|
2014-07-16 17:46:17 +08:00
|
|
|
|
|
|
|
|
|
post :create,
|
|
|
|
|
:class_period => '32',
|
|
|
|
|
:time => '2014',
|
|
|
|
|
:term => 'spring',
|
|
|
|
|
:course => {
|
2014-07-17 09:52:56 +08:00
|
|
|
|
:name => course_name, # names can't contain space.
|
2014-07-16 17:46:17 +08:00
|
|
|
|
:password => '1234',
|
|
|
|
|
:description => 'description',
|
2014-07-17 09:52:56 +08:00
|
|
|
|
:is_public => '1',
|
2014-07-16 17:46:17 +08:00
|
|
|
|
:course_type => '1'
|
|
|
|
|
}
|
2014-07-17 09:52:56 +08:00
|
|
|
|
|
2014-07-16 17:46:17 +08:00
|
|
|
|
assert_response :found
|
2014-07-17 09:52:56 +08:00
|
|
|
|
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"
|
2014-07-16 14:35:54 +08:00
|
|
|
|
end
|
|
|
|
|
|
2014-07-22 09:16:07 +08:00
|
|
|
|
# post :create 403
|
2014-07-17 09:52:56 +08:00
|
|
|
|
def test_create_course_without_access_control
|
2014-07-29 12:05:24 +08:00
|
|
|
|
@request.session[:user_id] = 20
|
2014-07-17 09:52:56 +08:00
|
|
|
|
#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
|
|
|
|
|
|
2014-07-16 14:35:54 +08:00
|
|
|
|
# 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
|
|
|
|
|
|