spec/rubytter_spec.rb in jugyo-rubytter-0.5.0 vs spec/rubytter_spec.rb in jugyo-rubytter-0.6.3
- old
+ new
@@ -111,35 +111,36 @@
it 'should respond to search (1)' do
@rubytter.should_receive(:http_request) do |host, req, param_str|
req.path.should == '/search.json?q=test'
host.should == 'search.twitter.com'
+ {'results' => []}
end
@rubytter.search('test')
end
it 'should respond to search with params (1)' do
@rubytter.should_receive(:http_request) do |host, req, param_str|
req.path.should =~ /\/search.json\?/
req.path.should =~ /q=test/
req.path.should =~ /lang=ja/
+ {'results' => []}
end
@rubytter.search('test', :lang => 'ja')
end
it 'should respond to to_param_str' do
- param_str = @rubytter.to_param_str(:page => 2, :foo => 'bar')
- p param_str
+ param_str = Rubytter.to_param_str(:page => 2, :foo => 'bar')
param_str.should =~ /^.+?=.+?&.+?=.+?$/
param_str.should =~ /page=2/
param_str.should =~ /foo=bar/
end
it 'should raise when call to_param_str with invalid arg' do
- lambda { @rubytter.to_param_str(nil) }.should raise_error(ArgumentError)
- lambda { @rubytter.to_param_str('foo') }.should raise_error(ArgumentError)
- lambda { @rubytter.to_param_str(:bar) }.should raise_error(ArgumentError)
+ lambda { Rubytter.to_param_str(nil) }.should raise_error(ArgumentError)
+ lambda { Rubytter.to_param_str('foo') }.should raise_error(ArgumentError)
+ lambda { Rubytter.to_param_str(:bar) }.should raise_error(ArgumentError)
end
it 'should set default header' do
rubytter = Rubytter.new('test', 'test')
rubytter.header.should == {'User-Agent', "Rubytter/#{VERSION} (http://github.com/jugyo/rubytter)"}
@@ -177,11 +178,11 @@
nil => nil,
:c => {:a => 1, :b => 2},
:d => {:a => {:a => 1, :b => 2}, :b => 1},
:e => [{:a => 1, :b => 2}, {:c => 3}]
}
- struct = @rubytter.json_to_struct(hash)
+ struct = Rubytter.json_to_struct(hash)
struct.a.should == 'a'
struct.b.should == 1
struct.c.a.should == 1
struct.c.b.should == 2
struct.d.a.a.should == 1
@@ -194,8 +195,52 @@
it 'should be set app_name' do
rubytter = Rubytter.new('test', 'teat', :app_name => "Foo")
rubytter.should_receive(:__update_status).with({:status => 'test', :source => "Foo"})
rubytter.update('test')
+ end
+
+ it 'should convert search results to struct' do
+ json_data = {
+ 'id' => '123',
+ 'text' => 'foo foo bar bar',
+ 'created_at' => 'Sat, 21 Mar 2009 09:48:20 +0000',
+ 'source' => '<a href="http:\/\/twitter.com\/">web<\/a>',
+ 'to_usre_id' => '20660692',
+ 'to_usre' => 'jugyo_test',
+ 'from_user_id' => '3748631',
+ 'from_user' => 'jugyo',
+ 'profile_image_url' => 'http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png'
+ }
+ rubytter = Rubytter.new('test', 'teat')
+ result = rubytter.search_result_to_struct(json_data)
+ result['id'].should == '123'
+ result['text'].should == 'foo foo bar bar'
+ result['created_at'].should == 'Sat, 21 Mar 2009 09:48:20 +0000'
+ result['source'].should == "<a href=\"http:\\/\\/twitter.com\\/\">web<\\/a>"
+ result['in_reply_to_user_id'].should == '20660692'
+ result['in_reply_to_screen_name'].should == 'jugyo_test'
+ result['user']['id'].should == '3748631'
+ result['user']['screen_name'].should == 'jugyo'
+ result['user']['profile_image_url'].should == 'http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png'
+ end
+
+ it 'should work search' do
+ json_data = JSON.parse open(File.dirname(__FILE__) + '/search.json').read
+
+ @rubytter.stub!(:http_request).and_return(json_data)
+ statuses = @rubytter.search('termtter')
+ status = statuses[0]
+
+ status.id.should == 1365281728
+ status.text.should == "よし、add_hook 呼んでるところが無くなった #termtter"
+ status.created_at.should == "Sat, 21 Mar 2009 09:48:20 +0000"
+ status.source.should == "<a href=\"http://twitter.com/\">web</a>"
+ status.in_reply_to_user_id.should == nil
+ status.in_reply_to_screen_name.should == nil
+ status.in_reply_to_status_id.should == nil
+ status.user.id.should == 74941
+ status.user.screen_name.should == "jugyo"
+ status.user.profile_image_url.should == "http://s3.amazonaws.com/twitter_production/profile_images/63467667/megane2_normal.png"
end
end
end