You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

courses_controller_test.rb 4.8 kB

12 years ago
​
​
12 years ago
​
​
​
​
12 years ago
​
​
12 years ago
​
​
​
​
​
​
12 years ago
​
​
​
​
​
​
​
12 years ago
​
​
​
​
​
​
​
​
​
12 years ago
12 years ago
​
​
​
​
12 years ago
12 years ago
12 years ago
​
​
​
​
​
12 years ago
​
12 years ago
​
12 years ago
12 years ago
​
​
​
​
12 years ago
​
12 years ago
12 years ago
12 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
12 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
12 years ago
12 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. require File.expand_path('../../test_helper', __FILE__)
  2. class CoursesControllerTest < ActionController::TestCase
  3. fixtures :courses,
  4. :course_infos,
  5. :course_statuses,
  6. :users,
  7. :user_extensions,
  8. :bids,
  9. :homework_for_courses,
  10. :journals_for_messages,
  11. :schools,
  12. :roles,
  13. :members,
  14. :member_roles,
  15. :enabled_modules,
  16. :boards,
  17. :messages
  18. def setup
  19. @request.session[:user_id] = nil
  20. @request.session[:ctime] = Time.now.to_i
  21. @request.session[:atime] = Time.now.to_i
  22. Setting.default_language = 'en'
  23. end
  24. # Get :index
  25. def test_index_by_anonymous_should_not_show_private_projects
  26. get :index
  27. assert_response :success
  28. assert_template 'index'
  29. courses = assigns(:courses)
  30. assert_not_nil courses
  31. assert courses.all?(&:is_public?)
  32. end
  33. # Get :new
  34. # 人员添加课程的权限是不属于任何角色
  35. def test_new_course_anyone_temporary
  36. @request.session[:user_id] = 20
  37. Role.find_by_name("Non member").add_permission! :add_course #Non member
  38. get :new
  39. assert_response :success
  40. assert_template :new
  41. end
  42. # post :create
  43. def test_create_course_with_access_control
  44. @request.session[:user_id] = 20
  45. Role.find_by_name("Non member").add_permission! :add_course #Non member
  46. course_name = 'course_one'
  47. post :create,
  48. :class_period => '32',
  49. :time => '2014',
  50. :term => 'spring',
  51. :course => {
  52. :name => course_name, # names can't contain space.
  53. :password => '1234',
  54. :description => 'description',
  55. :is_public => '1',
  56. :course_type => '1'
  57. }
  58. assert_response :found
  59. course = Course.find_by_name(course_name)
  60. red_url = "courses/#{course.id}/settings"
  61. assert_match %r(#{red_url}), @response.redirect_url
  62. # 创建成功跳转settings方法会带参数一枚,故一下方法失败
  63. # assert_redirected_to "courses/#{course.id}/settings"
  64. end
  65. # post :create 403
  66. def test_create_course_without_access_control
  67. @request.session[:user_id] = 20
  68. #Role.find_by_name("Non member").add_permission! :add_course #Non member
  69. course_name = 'course_one'
  70. post :create,
  71. :class_period => '32',
  72. :time => '2014',
  73. :term => 'spring',
  74. :course => {
  75. :name => course_name, # names can't contain space.
  76. :password => '1234',
  77. :description => 'description',
  78. :is_public => '1',
  79. :course_type => '1'
  80. }
  81. assert_response :forbidden
  82. end
  83. test ':homework get by non-member is access' do
  84. get :homework, {id: 1}
  85. assert_response :success
  86. end
  87. test ':feedback Get by non-member is access' do
  88. get :feedback, {id: 1}
  89. assert_response :success
  90. # 检测留言是否在其中以及不报错
  91. jfms = JournalsForMessage.where(jour_type: 'Course', jour_id: 1, m_parent_id: nil).reorder('id DESC')
  92. jfms.take(5).each do |j|
  93. assert_select "li#word_li_#{j.id}"
  94. end
  95. end
  96. test ':homework get by non-member' do
  97. get :homework, {id: 1}
  98. assert_response :success
  99. course = Course.find(1)
  100. assert course.homeworks.any?
  101. course.homeworks.each do |homework|
  102. assert_select '.bid_path', homework.name
  103. end
  104. end
  105. test ':new_homework by no user should not new_homework course_001' do
  106. get :new_homework, {id: 1}
  107. assert_response 403
  108. end
  109. test ':new_homework by loged & allowed user should get new_homework course_001' do
  110. user_id = 25
  111. member = Member.create(user_id: user_id, project_id: -1, course_id: 1, roles: [Role.last])
  112. MemberRole.create(member_id: member.id, role_id: 3)
  113. @request.session[:user_id] = user_id
  114. get :new_homework, {id: 1}
  115. assert_response :success
  116. assert_template 'new_homework'
  117. end
  118. test ':member by ano' do
  119. get :member, {id: 1}
  120. assert_response :success
  121. assert_template 'member'
  122. assert assigns(:members).any?
  123. end
  124. # test "#index by non-admin user with view_time_entries permission should show overall spent time link" do
  125. # @request.session[:user_id] = 3
  126. # get :index
  127. # assert_template 'index'
  128. # assert_select 'a[href=?]', '/time_entries'
  129. # end
  130. #
  131. # test "#index by non-admin user without view_time_entries permission should not show overall spent time link" do
  132. # Role.find(2).remove_permission! :view_time_entries
  133. # Role.non_member.remove_permission! :view_time_entries
  134. # Role.anonymous.remove_permission! :view_time_entries
  135. # @request.session[:user_id] = 3
  136. #
  137. # get :index
  138. # assert_template 'index'
  139. # assert_select 'a[href=?]', '/time_entries', 0
  140. # end
  141. end

软件技术创新是当今国家整体创新能力的重要基础和发展引擎。近年来,大众参与的软件创新与创业活动已经成为网络时代软件开发和应用的新形态,正在快速改变着全球软件创新模式和软件产业格局。 ...