don't accept empty files
authorLunar <lunar@anargeek.net>
Mon, 6 Sep 2010 12:56:24 +0000 (14:56 +0200)
committerLunar <lunar@anargeek.net>
Mon, 6 Sep 2010 12:56:24 +0000 (14:56 +0200)
coquelicot_app.rb
test_coquelicot.rb

index 88e114d..f1c00ae 100644 (file)
@@ -119,6 +119,10 @@ module Coquelicot
         @error = "No file selected"
         return haml(:index)
       end
+      if tmpfile.lstat.size == 0 then
+        @error = "#{name} is empty"
+        return haml(:index)
+      end
       if params[:expire].nil? or params[:expire].to_i == 0 then
         params[:expire] = settings.default_expire
       elsif params[:expire].to_i > settings.maximum_expire then
index f58515e..299b1aa 100644 (file)
@@ -55,6 +55,17 @@ describe 'Coquelicot' do
     last_response.body.should eql(File.new(__FILE__).read)
   end
 
+  it "should refuse an empty file" do
+    empty_file = Tempfile.new('empty')
+    begin
+      url = upload :file => Rack::Test::UploadedFile.new(empty_file.path, 'text/plain')
+      url.should be_nil
+      last_response.redirect?.should be_false
+    ensure
+      empty_file.close true
+    end
+  end
+
   it "should correctly set Last-Modified header when downloading" do
     url = upload
     get url