users: fix /users?name=<username> being case sensitive.
Things like https://danbooru.donmai.us/users?name=Evazion didn't work.
This commit is contained in:
@@ -26,7 +26,8 @@ class UsersController < ApplicationController
|
|||||||
|
|
||||||
def index
|
def index
|
||||||
if params[:name].present?
|
if params[:name].present?
|
||||||
@user = User.find_by_name!(params[:name])
|
@user = User.find_by_name(params[:name])
|
||||||
|
raise ActiveRecord::RecordNotFound if @user.blank?
|
||||||
redirect_to user_path(@user, variant: params[:variant])
|
redirect_to user_path(@user, variant: params[:variant])
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ require 'test_helper'
|
|||||||
class UsersControllerTest < ActionDispatch::IntegrationTest
|
class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||||
context "The users controller" do
|
context "The users controller" do
|
||||||
setup do
|
setup do
|
||||||
@user = create(:user)
|
@user = create(:user, name: "bob")
|
||||||
end
|
end
|
||||||
|
|
||||||
context "index action" do
|
context "index action" do
|
||||||
@@ -24,11 +24,16 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
|||||||
assert_equal(User.count, response.parsed_body.css("urlset url loc").size)
|
assert_equal(User.count, response.parsed_body.css("urlset url loc").size)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "list all users for /users?name=<name>" do
|
should "redirect to the user's profile for /users?name=<name>" do
|
||||||
get users_path, params: { name: @user.name }
|
get users_path, params: { name: @user.name }
|
||||||
assert_redirected_to(@user)
|
assert_redirected_to(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
should "be case-insensitive when redirecting to the user's profile" do
|
||||||
|
get users_path, params: { name: @user.name.capitalize }
|
||||||
|
assert_redirected_to(@user)
|
||||||
|
end
|
||||||
|
|
||||||
should "raise error for /users?name=<nonexistent>" do
|
should "raise error for /users?name=<nonexistent>" do
|
||||||
get users_path, params: { name: "nobody" }
|
get users_path, params: { name: "nobody" }
|
||||||
assert_response 404
|
assert_response 404
|
||||||
|
|||||||
Reference in New Issue
Block a user