On 23 Ún, 18:41, Nick Hoffman <n...@deadorange.com> wrote: > On 22/02/2009, at 3:34 PM, vo.x wrote: > > > Hello all, > > > Is there some best practice how to test Rails controller action which > > is using send_file method? Could you help me please? > > > Vit > > On 23/02/2009, at 2:43 AM, vo.x wrote: > > > Just to be clear, this is how the action looks: > > > def download > > log = ActivityLog.find(params[:id]) > > if log > > send_file log.path > > else > > flash[:notice] = _("Log file \"#{params[:id]}\" was not found.") > > redirect_to :action => 'index' > > end > > end > > > Vit > > Hi Vit. Just stub #send_file as normal. For example: > > before :each do > controller.stub!(:send_file).and_return ... > end > > it "should send the requested file" do > controller.should_receive(:send_file).with(...).and_return ... > do_get > end > > Cheers, > Nick > _______________________________________________ > rspec-users mailing list > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users
Hello Nick, Thank you for your feedback, but your solution has one problem which actually led me to this question. If I will stub the send_file method as you recommend, then later on is automatically called render method and I will get following error: ActionView::MissingTemplate in 'LogsController handling GET /logs/ test.log/download should find the log requested' Missing template logs/download.erb in view path app/views So there has to be set somewhere some flag, or provided some meaningful response ... Im out of ideas :/ Vit _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users