Skip to content
Extraits de code Groupes Projets
Valider 2c1c5df2 rédigé par Raphael's avatar Raphael
Parcourir les fichiers

Moved search specs, renamed method

parent eae40539
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -6,7 +6,7 @@ class PeopleController < ApplicationController ...@@ -6,7 +6,7 @@ class PeopleController < ApplicationController
@people = current_user.friends.paginate :page => params[:page], :order => 'created_at DESC' @people = current_user.friends.paginate :page => params[:page], :order => 'created_at DESC'
render :index render :index
else else
@people = Person.search_for_friends(params[:q]) @people = Person.search(params[:q])
render :json => @people.to_json(:only => :_id) render :json => @people.to_json(:only => :_id)
end end
end end
......
...@@ -35,8 +35,10 @@ class Person ...@@ -35,8 +35,10 @@ class Person
after_destroy :remove_all_traces after_destroy :remove_all_traces
def self.search_for_friends(query) def self.search(query)
Person.all('$where' => "function() { return this.profile.first_name.match(/^#{query}/i) || this.profile.last_name.match(/^#{query}/i); }") Person.all('$where' => "function() { return this.email.match(/^#{query}/i) ||
this.profile.first_name.match(/^#{query}/i) ||
this.profile.last_name.match(/^#{query}/i); }")
end end
def real_name def real_name
......
...@@ -3,59 +3,16 @@ require File.dirname(__FILE__) + '/../spec_helper' ...@@ -3,59 +3,16 @@ require File.dirname(__FILE__) + '/../spec_helper'
describe PeopleController do describe PeopleController do
render_views render_views
before do before do
@user = Factory.create(:user, :profile => Profile.new( :first_name => "bob", :last_name => "smith")) @user = Factory.create(:user)
request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user, :authenticate => @user) request.env['warden'] = mock_model(Warden, :authenticate? => @user, :authenticate! => @user, :authenticate => @user)
sign_in :user, @user sign_in :user, @user
end end
it "index should yield search results for substring of person name" do it "index should yield search results for substring of person name" do
friend_one = Factory.create(:person) Person.should_receive(:search)
friend_two = Factory.create(:person)
friend_three = Factory.create(:person)
friend_four = Factory.create(:person)
friend_one.profile.first_name = "Robert"
friend_one.profile.last_name = "Grimm"
friend_one.profile.save
friend_two.profile.first_name = "Eugene"
friend_two.profile.last_name = "Weinstein"
friend_two.save
friend_three.profile.first_name = "Yevgeniy"
friend_three.profile.last_name = "Dodis"
friend_three.save
friend_four.profile.first_name = "Casey"
friend_four.profile.last_name = "Grippi"
friend_four.save
puts Person.friends.count
get :index, :q => "Eu" get :index, :q => "Eu"
assigns[:people].include?(friend_two).should == true
assigns[:people].include?(friend_one).should == false
assigns[:people].include?(friend_three).should == false
assigns[:people].include?(friend_four).should == false
get :index, :q => "Wei"
assigns[:people].include?(friend_two).should == true
assigns[:people].include?(friend_one).should == false
assigns[:people].include?(friend_three).should == false
assigns[:people].include?(friend_four).should == false
get :index, :q => "Gri"
assigns[:people].include?(friend_one).should == true
assigns[:people].include?(friend_four).should == true
assigns[:people].include?(friend_two).should == false
assigns[:people].include?(friend_three).should == false
get :index
assigns[:people].should == Person.friends.all
end end
end end
require File.dirname(__FILE__) + '/../spec_helper'
include ApplicationHelper
include RequestsHelper
describe RequestsController do
before do
@tom = Redfinger.finger('tom@tom.joindiaspora.com')
@evan = Redfinger.finger('evan@status.net')
@max = Redfinger.finger('mbs348@gmail.com')
end
it 'should return the correct tag and url for a given address' do
relationship_flow('tom@tom.joindiaspora.com')[:friend].include?("receive/user").should == true
end
end
...@@ -96,5 +96,47 @@ describe Person do ...@@ -96,5 +96,47 @@ describe Person do
Person.all.count.should == 3 Person.all.count.should == 3
end end
end end
describe 'searching' do
before do
@friend_one = Factory.create(:person)
@friend_two = Factory.create(:person)
@friend_three = Factory.create(:person)
@friend_four = Factory.create(:person)
@friend_one.profile.first_name = "Robert"
@friend_one.profile.last_name = "Grimm"
@friend_one.profile.save
@friend_two.profile.first_name = "Eugene"
@friend_two.profile.last_name = "Weinstein"
@friend_two.save
@friend_three.profile.first_name = "Yevgeniy"
@friend_three.profile.last_name = "Dodis"
@friend_three.save
@friend_four.profile.first_name = "Casey"
@friend_four.profile.last_name = "Grippi"
@friend_four.save
end
it 'should yield search results on partial names' do
people = Person.search("Eu")
people.include?(@friend_two).should == true
people.include?(@friend_one).should == false
people.include?(@friend_three).should == false
people.include?(@friend_four).should == false
people = Person.search("Wei")
people.include?(@friend_two).should == true
people.include?(@friend_one).should == false
people.include?(@friend_three).should == false
people.include?(@friend_four).should == false
people = Person.search("Gri")
people.include?(@friend_one).should == true
people.include?(@friend_four).should == true
people.include?(@friend_two).should == false
people.include?(@friend_three).should == false
end
end
end end
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter