diff options
| -rw-r--r-- | app/controllers/track_controller.rb | 3 | ||||
| -rw-r--r-- | spec/controllers/track_controller_spec.rb | 12 | 
2 files changed, 15 insertions, 0 deletions
diff --git a/app/controllers/track_controller.rb b/app/controllers/track_controller.rb index 40e82e7a4..40fa69290 100644 --- a/app/controllers/track_controller.rb +++ b/app/controllers/track_controller.rb @@ -153,6 +153,9 @@ class TrackController < ApplicationController      def atom_feed_internal          @xapian_object = perform_search([InfoRequestEvent], @track_thing.track_query, @track_thing.params[:feed_sortby], nil, 25, 1) +        # We're assuming that a request to a feed url with no format suffix wants atom/xml +        # so set that as the default, regardless of content negotiation +        request.format = 'xml' unless params[:format]          respond_to do |format|              format.json { render :json => @xapian_object.results.map { |r| r[:model].json_for_api(true,                      lambda { |t| view_context.highlight_and_excerpt(t, @xapian_object.words_to_highlight, 150) } diff --git a/spec/controllers/track_controller_spec.rb b/spec/controllers/track_controller_spec.rb index 5a766b1e1..1575bc84e 100644 --- a/spec/controllers/track_controller_spec.rb +++ b/spec/controllers/track_controller_spec.rb @@ -159,6 +159,18 @@ describe TrackController, "when viewing RSS feed for a track" do              get :track_user, :feed => 'feed', :url_name => "there_is_no_such_user"          }.should raise_error(ActiveRecord::RecordNotFound)      end + +    it 'should return atom/xml for a feed url without format specified, even if the +        requester prefers json' do + +        request.env['HTTP_ACCEPT'] = 'application/json,text/xml' +        track_thing = track_things(:track_fancy_dog_request) + +        get :track_request, :feed => 'feed', :url_title => track_thing.info_request.url_title +        response.should render_template('track/atom_feed') +        response.content_type.should == 'application/atom+xml' +    end +  end  describe TrackController, "when viewing JSON version of a track feed" do  | 
