diff options
-rw-r--r-- | app/controllers/commits_controller.rb | 3 | ||||
-rw-r--r-- | test/functional/commits_controller_test.rb | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/commits_controller.rb b/app/controllers/commits_controller.rb index 4663a1b..b14c1ec 100644 --- a/app/controllers/commits_controller.rb +++ b/app/controllers/commits_controller.rb @@ -57,7 +57,8 @@ class CommitsController < ApplicationController handle_missing_sha and return end @comments = @repository.comments.find_all_by_sha1(@commit.id, :include => :user) - if stale_conditional?([@commit.id, @comments.size], @commit.committed_date.utc) + last_modified = @comments.size > 0 ? @comments.last.created_at.utc : @commit.committed_date.utc + if stale_conditional?([@commit.id, @comments.size], last_modified) @root = Breadcrumb::Commit.new(:repository => @repository, :id => @commit.id_abbrev) @diffs = @commit.parents.empty? ? [] : @commit.diffs @comment_count = @repository.comments.count(:all, :conditions => {:sha1 => @commit.id.to_s}) diff --git a/test/functional/commits_controller_test.rb b/test/functional/commits_controller_test.rb index 98c326a..fac82ea 100644 --- a/test/functional/commits_controller_test.rb +++ b/test/functional/commits_controller_test.rb @@ -101,6 +101,20 @@ class CommitsControllerTest < ActionController::TestCase assert_equal [], assigns(:diffs) assert_select "#content p", /This is the initial commit in this repository/ end + + should "have a different last-modified if there's a comment" do + Comment.create!({ + :user => users(:johan), + :body => "foo", + :sha1 => @sha, + :target => @repository, + :project => @repository.project, + }) + get :show, :project_id => @project.slug, + :repository_id => @repository.name, :id => @sha + assert_response :success + assert_not_equal "Fri, 18 Apr 2008 23:26:07 GMT", @response.headers["Last-Modified"] + end end context "Routing" do |