2019-04-30 08:27:42 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-28 10:27:38 +08:00
|
|
|
RSpec.describe AboutController do
|
2022-07-28 00:14:14 +08:00
|
|
|
describe "#index" do
|
2017-03-08 15:42:24 +08:00
|
|
|
it "should display the about page for anonymous user when login_required is false" do
|
|
|
|
SiteSetting.login_required = false
|
2018-05-22 11:40:50 +08:00
|
|
|
get "/about"
|
2017-08-31 12:06:56 +08:00
|
|
|
|
2018-06-07 16:11:09 +08:00
|
|
|
expect(response.status).to eq(200)
|
2018-11-28 10:36:14 +08:00
|
|
|
expect(response.body).to include("<title>About - Discourse</title>")
|
2017-03-08 15:42:24 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
it "should redirect to login page for anonymous user when login_required is true" do
|
|
|
|
SiteSetting.login_required = true
|
2018-05-22 11:40:50 +08:00
|
|
|
get "/about"
|
2017-08-31 12:06:56 +08:00
|
|
|
|
2017-03-08 15:42:24 +08:00
|
|
|
expect(response).to redirect_to "/login"
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should display the about page for logged in user when login_required is true" do
|
|
|
|
SiteSetting.login_required = true
|
2018-05-22 11:40:50 +08:00
|
|
|
sign_in(Fabricate(:user))
|
|
|
|
get "/about"
|
2017-08-31 12:06:56 +08:00
|
|
|
|
2018-06-07 16:11:09 +08:00
|
|
|
expect(response.status).to eq(200)
|
2017-03-08 15:42:24 +08:00
|
|
|
end
|
2018-11-28 10:36:14 +08:00
|
|
|
|
2022-07-28 00:14:14 +08:00
|
|
|
context "with crawler view" do
|
2018-11-28 10:36:14 +08:00
|
|
|
it "should include correct title" do
|
|
|
|
get "/about", headers: { "HTTP_USER_AGENT" => "Googlebot" }
|
|
|
|
expect(response.status).to eq(200)
|
|
|
|
expect(response.body).to include("<title>About - Discourse</title>")
|
|
|
|
end
|
2020-07-14 23:09:27 +08:00
|
|
|
|
|
|
|
it "should include correct user URLs" do
|
|
|
|
Fabricate(:admin, username: "anAdminUser")
|
|
|
|
get "/about", headers: { "HTTP_USER_AGENT" => "Googlebot" }
|
|
|
|
expect(response.status).to eq(200)
|
|
|
|
expect(response.body).to include("/u/anadminuser")
|
|
|
|
end
|
2018-11-28 10:36:14 +08:00
|
|
|
end
|
2020-05-23 12:56:13 +08:00
|
|
|
|
|
|
|
it "serializes stats when 'Guardian#can_see_about_stats?' is true" do
|
|
|
|
Guardian.any_instance.stubs(:can_see_about_stats?).returns(true)
|
|
|
|
get "/about.json"
|
|
|
|
|
|
|
|
expect(response.status).to eq(200)
|
|
|
|
expect(response.parsed_body["about"].keys).to include("stats")
|
|
|
|
end
|
|
|
|
|
2024-02-23 14:12:28 +08:00
|
|
|
it "adds Discourse Discover status if enabled" do
|
|
|
|
get "/about.json"
|
|
|
|
|
|
|
|
expect(response.parsed_body["about"].keys).not_to include("discourse_discover_enrolled")
|
|
|
|
|
|
|
|
SiteSetting.include_in_discourse_discover = true
|
|
|
|
get "/about.json"
|
|
|
|
|
|
|
|
expect(response.parsed_body["about"]["discourse_discover_enrolled"]).to eq(true)
|
|
|
|
end
|
|
|
|
|
2020-05-23 12:56:13 +08:00
|
|
|
it "does not serialize stats when 'Guardian#can_see_about_stats?' is false" do
|
|
|
|
Guardian.any_instance.stubs(:can_see_about_stats?).returns(false)
|
|
|
|
get "/about.json"
|
|
|
|
|
|
|
|
expect(response.status).to eq(200)
|
|
|
|
expect(response.parsed_body["about"].keys).not_to include("stats")
|
|
|
|
end
|
2017-03-08 15:42:24 +08:00
|
|
|
end
|
|
|
|
end
|