diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 646473862..24d2fe99e 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -288,7 +288,7 @@ class UsersController < ApplicationController end def search_users - term = (params[:term] || "").strip.downcase + term = params[:term].to_s.strip topic_id = params[:topic_id] topic_id = topic_id.to_i if topic_id diff --git a/app/models/user_search.rb b/app/models/user_search.rb index 3795bee6c..b8ccb91e2 100644 --- a/app/models/user_search.rb +++ b/app/models/user_search.rb @@ -14,7 +14,7 @@ class UserSearch end if term.length > 0 - sql << "where username_lower like :term_like or + sql << "where username ilike :term_like or to_tsvector('simple', name) @@ to_tsquery('simple', regexp_replace( diff --git a/spec/controllers/users_controller/search_users_spec.rb b/spec/controllers/users_controller/search_users_spec.rb index 0b23545ba..732c7bba4 100644 --- a/spec/controllers/users_controller/search_users_spec.rb +++ b/spec/controllers/users_controller/search_users_spec.rb @@ -59,6 +59,16 @@ describe UsersController, :search_users do json = JSON.parse(response.body) json["users"].size.should == 3 end + + it "searches the user's username substring upper case" do + xhr :post, :search_users, term: "MR" + json = JSON.parse(response.body) + json["users"].size.should == 6 + + xhr :post, :search_users, term: "MRB" + json = JSON.parse(response.body) + json["users"].size.should == 3 + end end context "sort order respects users with posts on the topic" do