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