From 3db1032bfdbc545d1e25fa2623c4a6d4b687692a Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Wed, 23 May 2018 16:58:47 -0400 Subject: [PATCH] FIX: not found page shouldn't include the Google search form for sites with login_required enabled --- app/controllers/application_controller.rb | 1 + spec/requests/application_controller_spec.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fa8e02832ac..92d639f65a6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -681,6 +681,7 @@ class ApplicationController < ActionController::Base @slug = params[:slug].class == String ? params[:slug] : '' @slug = (params[:id].class == String ? params[:id] : '') if @slug.blank? @slug.tr!('-', ' ') + @hide_google = true if SiteSetting.login_required render_to_string status: status, layout: layout, formats: [:html], template: '/exceptions/not_found' end diff --git a/spec/requests/application_controller_spec.rb b/spec/requests/application_controller_spec.rb index 2896d6e22e8..3e19b5f5048 100644 --- a/spec/requests/application_controller_spec.rb +++ b/spec/requests/application_controller_spec.rb @@ -14,4 +14,22 @@ RSpec.describe ApplicationController do expect(response).to redirect_to('/login?authComplete=true') end end + + describe 'build_not_found_page' do + describe 'topic not found' do + it 'should return 404 and show Google search' do + get "/t/nope-nope/99999999" + expect(response.status).to eq(404) + expect(response.body).to include(I18n.t('page_not_found.search_google')) + end + + it 'should not include Google search if login_required is enabled' do + SiteSetting.login_required = true + sign_in(Fabricate(:user)) + get "/t/nope-nope/99999999" + expect(response.status).to eq(404) + expect(response.body).to_not include('google.com/search') + end + end + end end