cicloid-twitter 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,138 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class SearchTest < Test::Unit::TestCase
4
+ context "searching" do
5
+ setup do
6
+ @search = Twitter::Search.new
7
+ end
8
+
9
+ should "should be able to initialize with a search term" do
10
+ Twitter::Search.new('httparty').query[:q].should include('httparty')
11
+ end
12
+
13
+ should "should be able to specify from" do
14
+ @search.from('jnunemaker').query[:q].should include('from:jnunemaker')
15
+ end
16
+
17
+ should "should be able to specify to" do
18
+ @search.to('jnunemaker').query[:q].should include('to:jnunemaker')
19
+ end
20
+
21
+ should "should be able to specify referencing" do
22
+ @search.referencing('jnunemaker').query[:q].should include('@jnunemaker')
23
+ end
24
+
25
+ should "should alias references to referencing" do
26
+ @search.references('jnunemaker').query[:q].should include('@jnunemaker')
27
+ end
28
+
29
+ should "should alias ref to referencing" do
30
+ @search.ref('jnunemaker').query[:q].should include('@jnunemaker')
31
+ end
32
+
33
+ should "should be able to specify containing" do
34
+ @search.containing('milk').query[:q].should include('milk')
35
+ end
36
+
37
+ should "should alias contains to containing" do
38
+ @search.contains('milk').query[:q].should include('milk')
39
+ end
40
+
41
+ should "should be able to specify hashed" do
42
+ @search.hashed('twitter').query[:q].should include('#twitter')
43
+ end
44
+
45
+ should "should be able to specify the language" do
46
+ @search.lang('en')
47
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:lang => 'en', :q => ''}, :format => :json).returns({'foo' => 'bar'})
48
+ @search.fetch()
49
+ end
50
+
51
+ should "should be able to specify the number of results per page" do
52
+ @search.per_page(25)
53
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:rpp => 25, :q => ''}, :format => :json).returns({'foo' => 'bar'})
54
+ @search.fetch()
55
+ end
56
+
57
+ should "should be able to specify the page number" do
58
+ @search.page(20)
59
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:page => 20, :q => ''}, :format => :json).returns({'foo' => 'bar'})
60
+ @search.fetch()
61
+ end
62
+
63
+ should "should be able to specify only returning results greater than an id" do
64
+ @search.since(1234)
65
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:since_id => 1234, :q => ''}, :format => :json).returns({'foo' => 'bar'})
66
+ @search.fetch()
67
+ end
68
+
69
+ should "should be able to specify geo coordinates" do
70
+ @search.geocode('40.757929', '-73.985506', '25mi')
71
+ @search.class.expects(:get).with('http://search.twitter.com/search.json', :query => {:geocode => '40.757929,-73.985506,25mi', :q => ''}, :format => :json).returns({'foo' => 'bar'})
72
+ @search.fetch()
73
+ end
74
+
75
+ should "should be able to clear the filters set" do
76
+ @search.from('jnunemaker').to('oaknd1')
77
+ @search.clear.query.should == {:q => []}
78
+ end
79
+
80
+ should "should be able to chain methods together" do
81
+ @search.from('jnunemaker').to('oaknd1').referencing('orderedlist').containing('milk').hashed('twitter').lang('en').per_page(20).since(1234).geocode('40.757929', '-73.985506', '25mi')
82
+ @search.query[:q].should == ['from:jnunemaker', 'to:oaknd1', '@orderedlist', 'milk', '#twitter']
83
+ @search.query[:lang].should == 'en'
84
+ @search.query[:rpp].should == 20
85
+ @search.query[:since_id].should == 1234
86
+ @search.query[:geocode].should == '40.757929,-73.985506,25mi'
87
+ end
88
+
89
+ context "fetching" do
90
+ setup do
91
+ stub_get('http://search.twitter.com:80/search.json?q=%40jnunemaker', 'search.json')
92
+ @search = Twitter::Search.new('@jnunemaker')
93
+ @response = @search.fetch
94
+ end
95
+
96
+ should "should return results" do
97
+ @response.results.size.should == 15
98
+ end
99
+
100
+ should "should support dot notation" do
101
+ first = @response.results.first
102
+ first.text.should == %q(Someone asked about a tweet reader. Easy to do in ruby with @jnunemaker's twitter gem and the win32-sapi gem, if you are on windows.)
103
+ first.from_user.should == 'PatParslow'
104
+ end
105
+
106
+ should "cache fetched results so multiple fetches don't keep hitting api" do
107
+ Twitter::Search.expects(:get).never
108
+ @search.fetch
109
+ end
110
+
111
+ should "rehit api if fetch is called with true" do
112
+ Twitter::Search.expects(:get).once
113
+ @search.fetch(true)
114
+ end
115
+ end
116
+
117
+ context "iterating over results" do
118
+ setup do
119
+ stub_get('http://search.twitter.com:80/search.json?q=from%3Ajnunemaker', 'search_from_jnunemaker.json')
120
+ @search.from('jnunemaker')
121
+ end
122
+
123
+ should "work" do
124
+ @search.each { |result| result.should_not be(nil) }
125
+ end
126
+
127
+ should "work multiple times in a row" do
128
+ @search.each { |result| result.should_not be(nil) }
129
+ @search.each { |result| result.should_not be(nil) }
130
+ end
131
+ end
132
+
133
+ should "should be able to iterate over results" do
134
+ @search.respond_to?(:each).should be(true)
135
+ end
136
+ end
137
+
138
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_helper'
2
+
3
+ class TwitterTest < Test::Unit::TestCase
4
+ should "have firehose method for public timeline" do
5
+ stub_get('http://twitter.com:80/statuses/public_timeline.json', 'firehose.json')
6
+ hose = Twitter.firehose
7
+ hose.size.should == 20
8
+ first = hose.first
9
+ first.text.should == '#torrents Ultimativer Flirt Guide - In 10 Minuten jede Frau erobern: Ultimativer Flirt Guide - In 10 Mi.. http://tinyurl.com/d3okh4'
10
+ first.user.name.should == 'P2P Torrents'
11
+ end
12
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cicloid-twitter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.6.1
5
+ platform: ruby
6
+ authors:
7
+ - John Nunemaker
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-12 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: oauth
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: mash
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: httparty
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.4.2
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: thoughtbot-shoulda
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: jeremymcanally-matchy
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: mocha
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ - !ruby/object:Gem::Dependency
76
+ name: fakeweb
77
+ type: :development
78
+ version_requirement:
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: mash
87
+ type: :development
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ description:
96
+ email: nunemaker@gmail.com
97
+ executables: []
98
+
99
+ extensions: []
100
+
101
+ extra_rdoc_files:
102
+ - README.rdoc
103
+ files:
104
+ - History
105
+ - License
106
+ - Notes
107
+ - README.rdoc
108
+ - Rakefile
109
+ - VERSION.yml
110
+ - examples/connect.rb
111
+ - examples/friendship_existance.rb
112
+ - examples/helpers/config_store.rb
113
+ - examples/httpauth.rb
114
+ - examples/search.rb
115
+ - examples/timeline.rb
116
+ - examples/update.rb
117
+ - lib/twitter.rb
118
+ - lib/twitter/base.rb
119
+ - lib/twitter/httpauth.rb
120
+ - lib/twitter/oauth.rb
121
+ - lib/twitter/request.rb
122
+ - lib/twitter/search.rb
123
+ - test/fixtures/firehose.json
124
+ - test/fixtures/friends_timeline.json
125
+ - test/fixtures/rate_limit_exceeded.json
126
+ - test/fixtures/replies.json
127
+ - test/fixtures/search.json
128
+ - test/fixtures/search_from_jnunemaker.json
129
+ - test/fixtures/status.json
130
+ - test/fixtures/user_timeline.json
131
+ - test/test_helper.rb
132
+ - test/twitter/base_test.rb
133
+ - test/twitter/httpauth_test.rb
134
+ - test/twitter/oauth_test.rb
135
+ - test/twitter/request_test.rb
136
+ - test/twitter/search_test.rb
137
+ - test/twitter_test.rb
138
+ has_rdoc: true
139
+ homepage: http://github.com/jnunemaker/twitter
140
+ post_install_message:
141
+ rdoc_options:
142
+ - --charset=UTF-8
143
+ require_paths:
144
+ - lib
145
+ required_ruby_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: "0"
150
+ version:
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: "0"
156
+ version:
157
+ requirements: []
158
+
159
+ rubyforge_project: twitter
160
+ rubygems_version: 1.2.0
161
+ signing_key:
162
+ specification_version: 2
163
+ summary: wrapper for the twitter api (oauth only)
164
+ test_files:
165
+ - test/test_helper.rb
166
+ - test/twitter/base_test.rb
167
+ - test/twitter/httpauth_test.rb
168
+ - test/twitter/oauth_test.rb
169
+ - test/twitter/request_test.rb
170
+ - test/twitter/search_test.rb
171
+ - test/twitter_test.rb
172
+ - examples/connect.rb
173
+ - examples/friendship_existance.rb
174
+ - examples/helpers/config_store.rb
175
+ - examples/httpauth.rb
176
+ - examples/search.rb
177
+ - examples/timeline.rb
178
+ - examples/update.rb