1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
3 describe Twitter::Client, "#search" do
5 @twitter = client_context
6 @uris = Twitter::Client.class_eval("@@SEARCH_URIS")
7 @request = mas_net_http_get(:basic_auth => nil)
8 @response = mas_net_http_response(:success, "{\"results\": [], \"refresh_url\":\"?since_id=1768746401&q=blabla\"}")
9 @connection = mas_net_http(@response)
10 Net::HTTP.stub!(:new).and_return(@connection)
12 Twitter::Status.stub!(:unmarshal).and_return(@statuses)
14 @keywords = "twitter4r"
19 it "should create expected HTTP GET request using :to" do
20 @twitter.should_receive(:create_http_get_request).with(@uris[:basic], {:to => @to}).and_return(@request)
21 @twitter.search(:to => @to)
24 it "should bless the Array returned from Twitter for :to case" do
25 @twitter.should_receive(:bless_models).with(@statuses).and_return(@statuses)
26 @twitter.search(:to => @to)
29 it "should create expected HTTP GET request using :from" do
30 @twitter.should_receive(:create_http_get_request).with(@uris[:basic], {:from => @from}).and_return(@request)
31 @twitter.search(:from => @from)
34 it "should bless the Array returned from Twitter for :to case" do
35 @twitter.should_receive(:bless_models).with(@statuses).and_return(@statuses)
36 @twitter.search(:from => @from)
39 it "should create expected HTTP GET request using :keywords" do
40 @twitter.should_receive(:create_http_get_request).with(@uris[:basic], {:keywords => @keywords}).and_return(@request)
41 @twitter.search(:keywords => @keywords)
44 it "should bless the Array returned from Twitter for :keywords case" do
45 @twitter.should_receive(:bless_models).with(@statuses).and_return(@statuses)
46 @twitter.search(:keywords => @keywords)
49 it "should accept paging option" do
51 @twitter.search(:keywords => @keywords, :page => @page)
52 }.should_not raise_error(Exception)
55 it "should generate expected GET HTTP request for paging case" do
56 @twitter.should_receive(:create_http_get_request).with(@uris[:basic], {:page => @page}).and_return(@request)
57 @twitter.search(:page => @page)
60 it "should bless models for paging case" do
61 @twitter.should_receive(:bless_models).with(@statuses).and_return(@statuses)
62 @twitter.search(:page => @page)
66 nilize(@twitter, @uris, @request, @response, @connection, @statuses)