mirror of
https://github.com/neocities/neocities.git
synced 2025-08-22 17:10:56 +02:00
catch file name too long
This commit is contained in:
parent
5571a5913f
commit
3a2cc571e2
2 changed files with 19 additions and 0 deletions
|
@ -37,6 +37,11 @@ post '/site_files/create' do
|
||||||
redirect redirect_uri
|
redirect redirect_uri
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if SiteFile.name_too_long?(name)
|
||||||
|
flash[:error] = "File name is too long (exceeds #{SiteFile::FILE_NAME_CHARACTER_LIMIT} characters)."
|
||||||
|
redirect redirect_uri
|
||||||
|
end
|
||||||
|
|
||||||
extname = File.extname name
|
extname = File.extname name
|
||||||
|
|
||||||
unless extname.empty? || extname.match(/^\.#{Site::EDITABLE_FILE_EXT}/i)
|
unless extname.empty? || extname.match(/^\.#{Site::EDITABLE_FILE_EXT}/i)
|
||||||
|
|
|
@ -36,6 +36,20 @@ describe 'site_files' do
|
||||||
_(PurgeCacheWorker.jobs.length).must_equal 1
|
_(PurgeCacheWorker.jobs.length).must_equal 1
|
||||||
_(PurgeCacheWorker.jobs.first['args'].last).must_equal '/test'
|
_(PurgeCacheWorker.jobs.first['args'].last).must_equal '/test'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'rejects filenames that exceed the character limit' do
|
||||||
|
long_filename = 'a' * (SiteFile::FILE_NAME_CHARACTER_LIMIT + 1) + '.html'
|
||||||
|
|
||||||
|
post '/site_files/create', {filename: long_filename, csrf_token: 'abcd'}, {'rack.session' => { 'id' => @site.id, '_csrf_token' => 'abcd' }}
|
||||||
|
|
||||||
|
_(last_response.status).must_equal 302
|
||||||
|
_(last_response.headers['Location']).must_match /dashboard/
|
||||||
|
|
||||||
|
# Check for error message by following the redirect
|
||||||
|
get '/dashboard', {}, {'rack.session' => { 'id' => @site.id, '_csrf_token' => 'abcd' }}
|
||||||
|
_(last_response.body).must_match /file name is too long/i
|
||||||
|
_(last_response.body).must_match /exceeds #{SiteFile::FILE_NAME_CHARACTER_LIMIT} characters/
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'rename' do
|
describe 'rename' do
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue