diff --git a/test/system/submissions_test.rb b/test/system/submissions_test.rb --- a/test/system/submissions_test.rb +++ b/test/system/submissions_test.rb @@ -34,6 +34,89 @@ assert_text 'You are not authorized' end + test "admin view submissions" do + login('admin','admin') + + #view own submission + within 'header' do + click_on 'Submission' + click_on 'View' + end + click_on 'Go' + + #click the first item in the table + first('table a').click + assert_text "Source Code" + assert_text "Task" + + #view other submission of available problem + within 'header' do + click_on 'Manage' + click_on 'Problem' + end + + row = find('tr', text: 'add_full_name') + within row do + click_on 'Stat' + end + + assert_text "Submissions" + within find('tr', text: 'john') do + first('a').click + end + assert_text "Source Code" + assert_text "Task" + + #view other submission of unavailable problem + visit submission_path( submissions(:sub1_by_james) ) + assert_text "Source Code" + assert_text "Task" + end + + test "user view submissions" do + login('john','hello') + + #view own submission + within 'header' do + click_on 'Submission' + click_on 'View' + end + click_on 'Go' + + #click the first item in the table + first('table a').click + assert_text "Source Code" + assert_text "Task" + + #view other submission of available problem + GraderConfiguration.where(key: 'right.user_view_submission').update(value: 'true') + + #using direct link + visit submission_path( submissions(:add1_by_james) ) + assert_text "Source Code" + assert_text "Task" + + #view admin's submission of available problem + #using direct link + visit submission_path( submissions(:add1_by_admin) ) + assert_text "Source Code" + assert_text "Task" + + #view other submission of unavailable problem + visit submission_path( submissions(:sub1_by_james) ) + assert_text "You are not authorized" + + #view admin's submission of unavailable problem + login('john','hello') + visit submission_path( submissions(:sub1_by_admin) ) + assert_text "You are not authorized" + + #view other submission of available problem, right not allow + GraderConfiguration.where(key: 'right.user_view_submission').update(value: 'false') + login('john','hello') + visit submission_path( submissions(:add1_by_james) ) + assert_text "You are not authorized" + end def login(username,password) visit root_path