|
|
require "application_system_test_case"
|
|
|
|
|
|
class UsersTest < ApplicationSystemTestCase
|
|
|
# test "visiting the index" do
|
|
|
# visit users_url
|
|
|
#
|
|
|
# assert_selector "h1", text: "User"
|
|
|
# end
|
|
|
|
|
|
test "add new user and edit" do
|
|
|
login('admin','admin')
|
|
|
within 'header' do
|
|
|
click_on 'Manage'
|
|
|
click_on 'Users', match: :first
|
|
|
end
|
|
|
|
|
|
assert_text "Users"
|
|
|
assert_text "New user"
|
|
|
|
|
|
click_on "New user", match: :first
|
|
|
fill_in 'Login', with: 'test1'
|
|
|
fill_in 'Full name', with: 'test1 McTestface'
|
|
|
fill_in 'e-mail', with: 'a@a.com'
|
|
|
fill_in 'Password', with: 'abcdef'
|
|
|
fill_in 'Password confirmation', with: 'abcdef'
|
|
|
|
|
|
click_on 'Create'
|
|
|
|
|
|
assert_text 'User was successfully created'
|
|
|
assert_text 'a@a.com'
|
|
|
assert_text 'test1 McTestface'
|
|
|
|
|
|
within('tr', text: 'McTestface') do
|
|
|
click_on 'Edit'
|
|
|
end
|
|
|
|
|
|
fill_in 'Alias', with: 'hahaha'
|
|
|
fill_in 'Remark', with: 'section 2'
|
|
|
click_on 'Update User'
|
|
|
|
|
|
assert_text 'section 2'
|
|
|
end
|
|
|
|
|
|
test "add multiple users" do
|
|
|
login 'admin', 'admin'
|
|
|
within 'header' do
|
|
|
click_on 'Manage'
|
|
|
click_on 'Users', match: :first
|
|
|
end
|
|
|
|
|
|
click_on 'New list of users', match: :first
|
|
|
find(:css, 'textarea').fill_in with:"abc1,Boaty McBoatface,abcdef,alias1,remark1,\nabc2,Boaty2 McSecond,acbdef123,aias2,remark2"
|
|
|
click_on 'create users'
|
|
|
|
|
|
assert_text('remark1')
|
|
|
assert_text('remark2')
|
|
|
end
|
|
|
|
|
|
test "grant admin right" do
|
|
|
login 'admin', 'admin'
|
|
|
within 'header' do
|
|
|
click_on 'Manage'
|
|
|
click_on 'Users', match: :first
|
|
|
end
|
|
|
|
|
|
click_on "View administrator"
|
|
|
fill_in 'login', with: 'john'
|
|
|
click_on "Grant"
|
|
|
|
|
|
visit logout_main_path
|
|
|
login 'john','hello'
|
|
|
within 'header' do
|
|
|
click_on 'Manage'
|
|
|
click_on 'Problem', match: :first
|
|
|
end
|
|
|
assert_text "Turn off all problems"
|
|
|
end
|
|
|
|
|
|
test "try using admin from normal user" do
|
|
|
login 'admin','admin'
|
|
|
visit bulk_manage_user_admin_index_path
|
|
|
assert_current_path bulk_manage_user_admin_index_path
|
|
|
visit logout_main_path
|
|
|
|
|
|
login 'jack','morning'
|
|
|
visit bulk_manage_user_admin_index_path
|
|
|
assert_text 'You are not authorized'
|
|
|
assert_current_path login_main_path
|
|
|
|
|
|
login 'james','morning'
|
|
|
visit new_list_user_admin_index_path
|
|
|
assert_text 'You are not authorized'
|
|
|
assert_current_path login_main_path
|
|
|
end
|
|
|
|
|
|
test "login then change password" do
|
|
|
newpassword = '1234asdf'
|
|
|
login 'john', 'hello'
|
|
|
visit profile_users_path
|
|
|
|
|
|
fill_in 'password', with: newpassword
|
|
|
fill_in 'password_confirmation', with: newpassword
|
|
|
|
|
|
click_on 'Edit'
|
|
|
|
|
|
visit logout_main_path
|
|
|
login 'john', 'hello'
|
|
|
assert_text 'Wrong password'
|
|
|
|
|
|
login 'john', newpassword
|
|
|
assert_text "MAIN"
|
|
|
assert_text "Submission"
|
|
|
end
|
|
|
|
|
|
def login(username,password)
|
|
|
visit root_path
|
|
|
fill_in "Login", with: username
|
|
|
fill_in "Password", with: password
|
|
|
click_on "Login"
|
|
|
end
|
|
|
end
|
|
|
|