Added v 0.4.0 snapshot.
[twitter4r-core.git] / spec / twitter / client / search_spec.rb
blob0112febcc5b35015d968fb42693484b2a7b839d4
1 require File.join(File.dirname(__FILE__), '..', '..', 'spec_helper')
3 describe Twitter::Client, "#search" do
4   before(:each) 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)
11     @statuses = []
12     Twitter::Status.stub!(:unmarshal).and_return(@statuses)
13     @page = 2
14     @keywords = "twitter4r"
15     @to = "SusanPotter"
16     @from = "twitter4r"
17   end
18   
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)
22   end
23   
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)
27   end
28   
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)
32   end
33   
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)
37   end
38   
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)
42   end
43   
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)
47   end
48   
49   it "should accept paging option" do
50     lambda {
51       @twitter.search(:keywords => @keywords, :page => @page)
52     }.should_not raise_error(Exception)
53   end
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)
58   end
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)
63   end
64   
65   after(:each) do
66     nilize(@twitter, @uris, @request, @response, @connection, @statuses)
67   end
68 end