From 4111f17f6475c5f7f451799266dc4dc2bb1d4cfd Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 9 Apr 2018 15:01:16 +1000 Subject: [PATCH] add missing test for rel next/prev --- spec/controllers/topic_controller_spec.rb | 28 ------------ spec/requests/topics_controller_spec.rb | 52 +++++++++++++++++++++++ 2 files changed, 52 insertions(+), 28 deletions(-) diff --git a/spec/controllers/topic_controller_spec.rb b/spec/controllers/topic_controller_spec.rb index 37e5c9cb308..16ecfc9e33f 100644 --- a/spec/controllers/topic_controller_spec.rb +++ b/spec/controllers/topic_controller_spec.rb @@ -125,34 +125,6 @@ describe TopicsController do end end - describe "crawler" do - render_views - - context "when not a crawler" do - it "renders with the application layout" do - get :show, params: { topic_id: topic.id, slug: topic.slug } - - body = response.body - - expect(body).to have_tag(:script, with: { src: '/assets/application.js' }) - expect(body).to have_tag(:meta, with: { name: 'fragment' }) - end - end - - context "when a crawler" do - it "renders with the crawler layout" do - request.env["HTTP_USER_AGENT"] = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" - get :show, params: { topic_id: topic.id, slug: topic.slug } - - body = response.body - - expect(body).to have_tag(:body, with: { class: 'crawler' }) - expect(body).to_not have_tag(:meta, with: { name: 'fragment' }) - end - end - - end - describe "print" do render_views diff --git a/spec/requests/topics_controller_spec.rb b/spec/requests/topics_controller_spec.rb index d5573e23fd5..8476558c029 100644 --- a/spec/requests/topics_controller_spec.rb +++ b/spec/requests/topics_controller_spec.rb @@ -538,4 +538,56 @@ RSpec.describe TopicsController do end end + describe "crawler" do + + context "when not a crawler" do + it "renders with the application layout" do + get topic.url + + body = response.body + + expect(body).to have_tag(:script, with: { src: '/assets/application.js' }) + expect(body).to have_tag(:meta, with: { name: 'fragment' }) + end + end + + context "when a crawler" do + it "renders with the crawler layout, and handles proper pagination" do + + topic = Fabricate(:topic) + Fabricate(:post, topic_id: topic.id) + Fabricate(:post, topic_id: topic.id) + Fabricate(:post, topic_id: topic.id) + Fabricate(:post, topic_id: topic.id) + Fabricate(:post, topic_id: topic.id) + + # ugly, but no inteface to set this and we don't want to create + # 100 posts to test this thing + TopicView.stubs(:chunk_size).returns(2) + + user_agent = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" + + get topic.url, env: { "HTTP_USER_AGENT" => user_agent } + + body = response.body + + expect(body).to have_tag(:body, with: { class: 'crawler' }) + expect(body).to_not have_tag(:meta, with: { name: 'fragment' }) + expect(body).to include(' user_agent } + body = response.body + + expect(body).to include(' user_agent } + body = response.body + + expect(body).to include('