From 9404052ada93f1aeafe46f277ba8623e522c298d Mon Sep 17 00:00:00 2001 From: r888888888 Date: Mon, 19 Jan 2015 17:14:43 -0800 Subject: [PATCH] fixes #2335 --- app/models/saved_search.rb | 5 +++++ test/unit/saved_search_test.rb | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index eafa15e1e..7fab3f402 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -6,11 +6,16 @@ class SavedSearch < ActiveRecord::Base before_create :update_user_on_create after_destroy :update_user_on_destroy validates_uniqueness_of :tag_query, :scope => :user_id + before_validation :normalize def self.tagged(tags) where(:tag_query => tags).first end + def normalize + self.tag_query = Tag.scan_query(tag_query).join(" ") + end + def validate_count if user.saved_searches.count + 1 > user.max_saved_searches self.errors[:user] << "can only have up to #{user.max_saved_searches} " + "saved search".pluralize(user.max_saved_searches) diff --git a/test/unit/saved_search_test.rb b/test/unit/saved_search_test.rb index 80a8c8ba9..64f3642f3 100644 --- a/test/unit/saved_search_test.rb +++ b/test/unit/saved_search_test.rb @@ -4,13 +4,17 @@ class SavedSearchTest < ActiveSupport::TestCase context "Creating a saved search" do setup do @user = FactoryGirl.create(:user) - @saved_search = @user.saved_searches.create(:tag_query => "xxx") + @saved_search = @user.saved_searches.create(:tag_query => " xxx ") end should "update the bitpref on the user" do @user.reload assert(@user.has_saved_searches?, "should have saved_searches bitpref set") end + + should "normalize whitespace" do + assert_equal("xxx", @saved_search.tag_query) + end end context "Destroying a saved search" do