change name downcases username check

This commit is contained in:
Kyle Drake 2016-01-23 14:36:47 -08:00
parent 9170f9f99c
commit aeb5fe4e34
2 changed files with 26 additions and 11 deletions

View file

@ -179,7 +179,7 @@ post '/settings/:username/change_name' do
redirect "/settings/#{@site.username}#username" redirect "/settings/#{@site.username}#username"
end end
if old_username == params[:name] if old_username.downcase == params[:name].downcase
flash[:error] = 'You already have this name.' flash[:error] = 'You already have this name.'
redirect "/settings/#{@site.username}#username" redirect "/settings/#{@site.username}#username"
end end

View file

@ -200,29 +200,44 @@ describe 'site/settings' do
end end
=end =end
describe 'change username' do describe 'changing username' do
include Capybara::DSL include Capybara::DSL
before do before do
Capybara.reset_sessions! Capybara.reset_sessions!
@site = Fabricate :site @site = Fabricate :site
page.set_rack_session id: @site.id page.set_rack_session id: @site.id
visit "/settings/#{@site[:username]}#username"
end end
it 'does not allow bad usernames' do after do
visit "/settings/#{@site[:username]}#username" Site[username: @site[:username]].wont_equal nil
end
it 'fails for blank username' do
fill_in 'name', with: '' fill_in 'name', with: ''
click_button 'Change Name' click_button 'Change Name'
page.must_have_content /cannot be blank/i
Site[username: ''].must_equal nil
end
it 'fails for subdir periods' do
fill_in 'name', with: '../hack' fill_in 'name', with: '../hack'
click_button 'Change Name' click_button 'Change Name'
fill_in 'name', with: 'derp../hack'
click_button 'Change Name'
## TODO fix this without screwing up legacy sites
#fill_in 'name', with: '-'
#click_button 'Change Name'
page.must_have_content /Usernames can only contain/i page.must_have_content /Usernames can only contain/i
Site[username: @site[:username]].wont_equal nil Site[username: '../hack'].must_equal nil
Site[username: ''].must_equal nil end
it 'fails for same username' do
fill_in 'name', with: @site.username
click_button 'Change Name'
page.must_have_content /You already have this name/
end
it 'fails for same username with DiFfErEnT CaSiNg' do
fill_in 'name', with: @site.username.upcase
click_button 'Change Name'
page.must_have_content /You already have this name/
end end
end end
end end