Skip to content

Commit

Permalink
Use polymorphic routing for the search session tracking route
Browse files Browse the repository at this point in the history
  • Loading branch information
cbeer committed Mar 20, 2015
1 parent 8588764 commit 3a66905
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
7 changes: 6 additions & 1 deletion app/helpers/blacklight/url_helper_behavior.rb
Expand Up @@ -82,10 +82,15 @@ def session_tracking_params document, counter
return {}
end

{ :data => {:'context-href' => track_solr_document_path(document, per_page: params.fetch(:per_page, search_session['per_page']), counter: counter, search_id: current_search_session.try(:id))}}
{ :data => {:'context-href' => session_tracking_path(document, per_page: params.fetch(:per_page, search_session['per_page']), counter: counter, search_id: current_search_session.try(:id))}}
end
protected :session_tracking_params

##
# Get the URL for tracking search sessions across pages using polymorphic routing
def session_tracking_path document, params = {}
polymorphic_path([:track, document], params)
end

#
# link based helpers ->
Expand Down
11 changes: 11 additions & 0 deletions spec/helpers/url_helper_spec.rb
Expand Up @@ -499,4 +499,15 @@
expect(url).to eq helper.bookmarks_url(format: :html, encrypted_user_id: 'xyz')
end
end

describe "#session_tracking_path" do
let(:document) { SolrDocument.new(id: 1) }
it "should determine the correct route for the document class" do
expect(helper.session_tracking_path(document)).to eq helper.track_solr_document_path(document)
end

it "should pass through tracking parameters" do
expect(helper.session_tracking_path(document, x: 1)).to eq helper.track_solr_document_path(document, x: 1)
end
end
end

0 comments on commit 3a66905

Please sign in to comment.