pingfm 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,36 @@
1
+ module Pingfm
2
+ class ConfigNotFound < Exception; end
3
+
4
+ class Config
5
+ CONFIG_PATH = (RUBY_PLATFORM =~ /mswin32/ ? ENV['HOMEPATH'] : ENV['HOME'])
6
+ CONFIG_FILE = File.expand_path(File.join(CONFIG_PATH, '.pingfm.yml'))
7
+
8
+ class << self
9
+
10
+ # Prompts the user for their API key and saves it.
11
+ def ask_for_app_key!
12
+ STDOUT.print 'Enter your Ping.fm User API key (http://ping.fm/key/): '
13
+ @@config ||= {}
14
+ @@config['app_key'] = STDIN.gets.chomp
15
+ save!
16
+ end
17
+
18
+ def [](key)
19
+ setup! unless defined?(@@config)
20
+ @@config[key]
21
+ end
22
+
23
+ def save!
24
+ ::File.open(CONFIG_FILE, 'w') do |config_file|
25
+ ::YAML.dump(@@config, config_file)
26
+ end
27
+ end
28
+
29
+ def setup!(config_file = CONFIG_FILE)
30
+ raise Pingfm::ConfigNotFound unless File.exists?(config_file)
31
+ @@config = ::YAML.load_file(config_file)
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,27 @@
1
+ $LOAD_PATH.push(File.expand_path("../lib", __FILE__))
2
+ require 'pingfm'
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "pingfm"
6
+ s.version = Pingfm::VERSION
7
+
8
+ s.authors = ["Dale Campbell", "Kevin Williams", "Krunoslav Husak"]
9
+ s.email = ["oshuma@gmail.com", "kevwil@gmail.com"]
10
+ s.homepage = "http://github.com/Oshuma/pingfm"
11
+
12
+ s.rubyforge_project = 'pingfm'
13
+
14
+ s.summary = %q{A Ping.fm Ruby library.}
15
+ s.description = %q{Ping.fm (http://ping.fm) is a simple service that makes updating your social networks a snap, and this it's Ruby library.}
16
+
17
+ s.add_dependency('slop')
18
+ s.add_development_dependency('rspec', '>= 2.6.0')
19
+
20
+ s.has_rdoc = true
21
+ s.rdoc_options = ['--inline-source']
22
+
23
+ s.require_paths = ["lib"]
24
+ s.files = `git ls-files`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
27
+ end
@@ -0,0 +1,300 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pingfm::Client do
4
+ it 'should have an API_URL' do
5
+ Pingfm::Client::API_URL.should_not be_nil
6
+ end
7
+
8
+ it 'should have an API_KEY' do
9
+ Pingfm::Client::API_KEY.should_not be_nil
10
+ end
11
+ end
12
+
13
+ describe Pingfm::Client, "with expected results" do
14
+
15
+ before(:each) do
16
+ @client = Pingfm::Client.new('b')
17
+ @params = {'api_key' => Pingfm::Client::API_KEY, 'user_app_key' => 'b'}
18
+ end
19
+
20
+ it "should validate keys successfully" do
21
+ init_ok_response 'user.validate'
22
+
23
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
24
+
25
+ # mock the http call
26
+ http_resp = mock('response')
27
+ http_resp.should_receive(:body).and_return(@response)
28
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
29
+
30
+ # call and verify
31
+ result = @client.validate
32
+ result.should_not be_empty
33
+ result['status'].should_not be_nil
34
+ result['status'].should eql('OK')
35
+ end
36
+
37
+ it "should list the user's services properly" do
38
+ init_service_response
39
+
40
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
41
+
42
+ # mock the http call
43
+ http_resp = mock('response')
44
+ http_resp.should_receive(:body).and_return(@response)
45
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
46
+
47
+ # call and verify
48
+ result = @client.services
49
+ result.should_not be_empty
50
+ result['status'].should_not be_nil
51
+ result['status'].should eql('OK')
52
+ result['services'].should_not be_nil
53
+ result['services'].should_not be_empty
54
+ result['services'].length.should eql(2)
55
+ result['services'].first['id'].should eql('twitter')
56
+ end
57
+
58
+ it "should list the system services" do
59
+ init_system_services_response
60
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
61
+
62
+ # mock the http call
63
+ http_resp = mock('response')
64
+ http_resp.should_receive(:body).and_return(@response)
65
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
66
+
67
+ # call and verify
68
+ result = @client.system_services
69
+ result.should_not be_empty
70
+ result['status'].should_not be_nil
71
+ result['status'].should eql('OK')
72
+ result['services'].should_not be_nil
73
+ result['services'].should_not be_empty
74
+ result['services'].length.should eql(2)
75
+ result['services'].first['id'].should eql('bebo')
76
+ end
77
+
78
+ it "should list the user's custom triggers" do
79
+ init_trigger_response
80
+
81
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
82
+
83
+ # mock the http call
84
+ http_resp = mock('response')
85
+ http_resp.should_receive(:body).and_return(@response)
86
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
87
+
88
+ # call and verify
89
+ result = @client.triggers
90
+ result.should_not be_empty
91
+ result['status'].should_not be_nil
92
+ result['status'].should eql('OK')
93
+ result['triggers'].should_not be_nil
94
+ result['triggers'].should_not be_empty
95
+ result['triggers'].length.should eql(2)
96
+ result['triggers'].first['id'].should eql('twt')
97
+ end
98
+
99
+ it "should list the user's recent posts" do
100
+ init_latest_response
101
+
102
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
103
+ @params.merge!('limit'=>5,'order'=>'DESC')
104
+
105
+ # mock the http call
106
+ http_resp = mock('response')
107
+ http_resp.should_receive(:body).and_return(@response)
108
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
109
+
110
+ # call and verify
111
+ result = @client.latest(5)
112
+ result.should_not be_empty
113
+ result['status'].should_not be_nil
114
+ result['status'].should eql('OK')
115
+ result['messages'].should_not be_nil
116
+ result['messages'].should_not be_empty
117
+ result['messages'].length.should eql(3)
118
+ result['messages'].first['id'].should eql('12345')
119
+ result['messages'].last['location'].should_not be_empty
120
+ end
121
+
122
+ it "should post a message to the service" do
123
+ init_ok_response 'user.post'
124
+
125
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
126
+ @params.merge!('body' => 'foo', 'title' => '',
127
+ 'post_method' => 'default', 'service' => '',
128
+ 'debug' => 0)
129
+
130
+ # mock the http call
131
+ http_resp = mock('response')
132
+ http_resp.should_receive(:body).and_return(@response)
133
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
134
+
135
+ # call and verify
136
+ result = @client.post('foo')
137
+ result.should_not be_empty
138
+ result['status'].should_not be_nil
139
+ result['status'].should eql('OK')
140
+ end
141
+
142
+ it "should post a message to the service using a trigger" do
143
+ init_ok_response 'user.tpost'
144
+
145
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
146
+ @params.merge!('body' => 'foo', 'title' => '',
147
+ 'trigger' => 'twt', 'debug' => 0)
148
+
149
+ # mock the http call
150
+ http_resp = mock('response')
151
+ http_resp.should_receive(:body).and_return(@response)
152
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
153
+
154
+ # call and verify
155
+ result = @client.tpost('foo','twt')
156
+ result.should_not be_empty
157
+ result['status'].should_not be_nil
158
+ result['status'].should eql('OK')
159
+ end
160
+
161
+ end
162
+
163
+ describe Pingfm::Client, "with error messages" do
164
+
165
+ before(:each) do
166
+ @client = Pingfm::Client.new('b')
167
+ @params = {'api_key' => Pingfm::Client::API_KEY, 'user_app_key' => 'b'}
168
+ end
169
+
170
+ it "should handle a failed validate cleanly" do
171
+ init_fail_response 'user.validate'
172
+
173
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
174
+
175
+ # mock the http call
176
+ http_resp = mock('response')
177
+ http_resp.should_receive(:body).and_return(@response)
178
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
179
+
180
+ # call and verify
181
+ result = @client.validate
182
+ result.should_not be_empty
183
+ result['status'].should_not be_nil
184
+ result['status'].should eql('FAIL')
185
+ result['message'].should_not be_nil
186
+ end
187
+
188
+ it "should handle a failed system services cleanly" do
189
+ init_fail_response 'system.services'
190
+
191
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
192
+
193
+ # mock the http call
194
+ http_resp = mock('response')
195
+ http_resp.should_receive(:body).and_return(@response)
196
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
197
+
198
+ # call and verify
199
+ result = @client.system_services
200
+ result.should_not be_empty
201
+ result['status'].should_not be_nil
202
+ result['status'].should eql('FAIL')
203
+ result['message'].should_not be_nil
204
+ end
205
+
206
+ it "should handle a failed user's services cleanly" do
207
+ init_fail_response 'user.services'
208
+
209
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
210
+
211
+ # mock the http call
212
+ http_resp = mock('response')
213
+ http_resp.should_receive(:body).and_return(@response)
214
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
215
+
216
+ # call and verify
217
+ result = @client.services
218
+ result.should_not be_empty
219
+ result['status'].should_not be_nil
220
+ result['status'].should eql('FAIL')
221
+ result['message'].should_not be_nil
222
+ end
223
+
224
+ it "should handle a failed user's triggers cleanly" do
225
+ init_fail_response 'user.triggers'
226
+
227
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
228
+
229
+ # mock the http call
230
+ http_resp = mock('response')
231
+ http_resp.should_receive(:body).and_return(@response)
232
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
233
+
234
+ # call and verify
235
+ result = @client.triggers
236
+ result.should_not be_empty
237
+ result['status'].should_not be_nil
238
+ result['status'].should eql('FAIL')
239
+ result['message'].should_not be_nil
240
+ end
241
+
242
+ it "should handle a failed user's latest messages cleanly" do
243
+ init_fail_response 'user.latest'
244
+
245
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
246
+
247
+ # mock the http call
248
+ http_resp = mock('response')
249
+ http_resp.should_receive(:body).and_return(@response)
250
+ @params.merge!('order' => 'DESC', 'limit' => 25)
251
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
252
+
253
+ # call and verify
254
+ result = @client.latest
255
+ result.should_not be_empty
256
+ result['status'].should_not be_nil
257
+ result['status'].should eql('FAIL')
258
+ result['message'].should_not be_nil
259
+ end
260
+
261
+ it "should handle a failed user post cleanly" do
262
+ init_fail_response 'user.post'
263
+
264
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
265
+
266
+ # mock the http call
267
+ http_resp = mock('response')
268
+ http_resp.should_receive(:body).and_return(@response)
269
+ @params.merge!({'post_method' => 'default', 'title' => '',
270
+ 'service' => '', 'body' => 'test message', 'debug' => 0})
271
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
272
+
273
+ # call and verify
274
+ result = @client.post('test message')
275
+ result.should_not be_empty
276
+ result['status'].should_not be_nil
277
+ result['status'].should eql('FAIL')
278
+ result['message'].should_not be_nil
279
+ end
280
+
281
+ it "should handle a failed user trigger post cleanly" do
282
+ init_fail_response 'user.tpost'
283
+
284
+ uri = URI.parse "#{Pingfm::Client::API_URL}/#{@service_type}"
285
+
286
+ # mock the http call
287
+ http_resp = mock('response')
288
+ http_resp.should_receive(:body).and_return(@response)
289
+ @params.merge!({'title' => '', 'body' => 'test message',
290
+ 'trigger' => '@trigger', 'debug' => 0})
291
+ Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
292
+
293
+ # call and verify
294
+ result = @client.tpost('test message', '@trigger')
295
+ result.should_not be_empty
296
+ result['status'].should_not be_nil
297
+ result['status'].should eql('FAIL')
298
+ result['message'].should_not be_nil
299
+ end
300
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pingfm::Config do
4
+
5
+ SPEC_CONFIG_FILE = "#{File.dirname(__FILE__)}/../pingfm_spec.yml"
6
+
7
+ it 'has a CONFIG_PATH' do
8
+ Pingfm::Config::CONFIG_PATH.should_not be_nil
9
+ end
10
+
11
+ it 'has a CONFIG_FILE' do
12
+ Pingfm::Config::CONFIG_FILE.should_not be_nil
13
+ end
14
+
15
+ it 'loads the given config file' do
16
+ Pingfm::Config.setup!(SPEC_CONFIG_FILE)
17
+ @config = ::YAML.load_file(SPEC_CONFIG_FILE)
18
+ Pingfm::Config['app_key'].should == @config['app_key']
19
+ end
20
+
21
+ end
@@ -1,309 +1,7 @@
1
- # $Id$
2
- # TODO: LOTS of repetition here that can probably be refactored a bit.
3
- # TODO: Split these specs into a pingfm/ subdirectory, moving the client specs into their own file.
1
+ require 'spec_helper'
4
2
 
5
- require File.join(File.dirname(__FILE__), %w[spec_helper])
6
-
7
- describe Pingfm, 'main module' do
3
+ describe Pingfm do
8
4
  it 'should return the version string' do
9
- Pingfm.version.should be_a_kind_of(String)
10
- end
11
-
12
- it 'should return the library path' do
13
- Pingfm.libpath.should eql(Pingfm::LIBPATH)
14
- end
15
-
16
- it 'should return the path to the library' do
17
- Pingfm.path.should eql(Pingfm::PATH)
5
+ Pingfm::VERSION.should be_a_kind_of(String)
18
6
  end
19
7
  end
20
-
21
- describe Pingfm::Client, "with expected results" do
22
-
23
- before(:each) do
24
- @client = Pingfm::Client.new('a','b')
25
- @params = {'api_key' => 'a', 'user_app_key' => 'b'}
26
- end
27
-
28
- it "should validate keys successfully" do
29
- init_ok_response 'user.validate'
30
-
31
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
32
-
33
- # mock the http call
34
- http_resp = mock('response')
35
- http_resp.should_receive(:body).and_return(@response)
36
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
37
-
38
- # call and verify
39
- result = @client.validate
40
- result.should_not be_empty
41
- result['status'].should_not be_nil
42
- result['status'].should eql('OK')
43
- end
44
-
45
- it "should list the user's services properly" do
46
- init_service_response
47
-
48
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
49
-
50
- # mock the http call
51
- http_resp = mock('response')
52
- http_resp.should_receive(:body).and_return(@response)
53
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
54
-
55
- # call and verify
56
- result = @client.services
57
- result.should_not be_empty
58
- result['status'].should_not be_nil
59
- result['status'].should eql('OK')
60
- result['services'].should_not be_nil
61
- result['services'].should_not be_empty
62
- result['services'].length.should eql(2)
63
- result['services'].first['id'].should eql('twitter')
64
- end
65
-
66
- it "should list the system services" do
67
- init_system_services_response
68
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
69
-
70
- # mock the http call
71
- http_resp = mock('response')
72
- http_resp.should_receive(:body).and_return(@response)
73
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
74
-
75
- # call and verify
76
- result = @client.system_services
77
- result.should_not be_empty
78
- result['status'].should_not be_nil
79
- result['status'].should eql('OK')
80
- result['services'].should_not be_nil
81
- result['services'].should_not be_empty
82
- result['services'].length.should eql(2)
83
- result['services'].first['id'].should eql('bebo')
84
- end
85
-
86
- it "should list the user's custom triggers" do
87
- init_trigger_response
88
-
89
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
90
-
91
- # mock the http call
92
- http_resp = mock('response')
93
- http_resp.should_receive(:body).and_return(@response)
94
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
95
-
96
- # call and verify
97
- result = @client.triggers
98
- result.should_not be_empty
99
- result['status'].should_not be_nil
100
- result['status'].should eql('OK')
101
- result['triggers'].should_not be_nil
102
- result['triggers'].should_not be_empty
103
- result['triggers'].length.should eql(2)
104
- result['triggers'].first['id'].should eql('twt')
105
- end
106
-
107
- it "should list the user's recent posts" do
108
- init_latest_response
109
-
110
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
111
- @params.merge!('limit'=>5,'order'=>'DESC')
112
-
113
- # mock the http call
114
- http_resp = mock('response')
115
- http_resp.should_receive(:body).and_return(@response)
116
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
117
-
118
- # call and verify
119
- result = @client.latest(5)
120
- result.should_not be_empty
121
- result['status'].should_not be_nil
122
- result['status'].should eql('OK')
123
- result['messages'].should_not be_nil
124
- result['messages'].should_not be_empty
125
- result['messages'].length.should eql(3)
126
- result['messages'].first['id'].should eql('12345')
127
- result['messages'].last['location'].should_not be_empty
128
- end
129
-
130
- it "should post a message to the service" do
131
- init_ok_response 'user.post'
132
-
133
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
134
- @params.merge!('body' => 'foo', 'title' => '',
135
- 'post_method' => 'default', 'service' => '',
136
- 'debug' => 0)
137
-
138
- # mock the http call
139
- http_resp = mock('response')
140
- http_resp.should_receive(:body).and_return(@response)
141
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
142
-
143
- # call and verify
144
- result = @client.post('foo')
145
- result.should_not be_empty
146
- result['status'].should_not be_nil
147
- result['status'].should eql('OK')
148
- end
149
-
150
- it "should post a message to the service using a trigger" do
151
- init_ok_response 'user.tpost'
152
-
153
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
154
- @params.merge!('body' => 'foo', 'title' => '',
155
- 'trigger' => 'twt', 'debug' => 0)
156
-
157
- # mock the http call
158
- http_resp = mock('response')
159
- http_resp.should_receive(:body).and_return(@response)
160
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
161
-
162
- # call and verify
163
- result = @client.tpost('foo','twt')
164
- result.should_not be_empty
165
- result['status'].should_not be_nil
166
- result['status'].should eql('OK')
167
- end
168
-
169
- end
170
-
171
- describe Pingfm::Client, "with error messages" do
172
- before(:each) do
173
- @client = Pingfm::Client.new('a','b')
174
- @params = {'api_key' => 'a', 'user_app_key' => 'b'}
175
- end
176
-
177
- it "should handle a failed validate cleanly" do
178
- init_fail_response 'user.validate'
179
-
180
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
181
-
182
- # mock the http call
183
- http_resp = mock('response')
184
- http_resp.should_receive(:body).and_return(@response)
185
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
186
-
187
- # call and verify
188
- result = @client.validate
189
- result.should_not be_empty
190
- result['status'].should_not be_nil
191
- result['status'].should eql('FAIL')
192
- result['message'].should_not be_nil
193
- end
194
-
195
- it "should handle a failed system services cleanly" do
196
- init_fail_response 'system.services'
197
-
198
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
199
-
200
- # mock the http call
201
- http_resp = mock('response')
202
- http_resp.should_receive(:body).and_return(@response)
203
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
204
-
205
- # call and verify
206
- result = @client.system_services
207
- result.should_not be_empty
208
- result['status'].should_not be_nil
209
- result['status'].should eql('FAIL')
210
- result['message'].should_not be_nil
211
- end
212
-
213
- it "should handle a failed user's services cleanly" do
214
- init_fail_response 'user.services'
215
-
216
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
217
-
218
- # mock the http call
219
- http_resp = mock('response')
220
- http_resp.should_receive(:body).and_return(@response)
221
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
222
-
223
- # call and verify
224
- result = @client.services
225
- result.should_not be_empty
226
- result['status'].should_not be_nil
227
- result['status'].should eql('FAIL')
228
- result['message'].should_not be_nil
229
- end
230
-
231
- it "should handle a failed user's triggers cleanly" do
232
- init_fail_response 'user.triggers'
233
-
234
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
235
-
236
- # mock the http call
237
- http_resp = mock('response')
238
- http_resp.should_receive(:body).and_return(@response)
239
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
240
-
241
- # call and verify
242
- result = @client.triggers
243
- result.should_not be_empty
244
- result['status'].should_not be_nil
245
- result['status'].should eql('FAIL')
246
- result['message'].should_not be_nil
247
- end
248
-
249
- it "should handle a failed user's latest messages cleanly" do
250
- init_fail_response 'user.latest'
251
-
252
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
253
-
254
- # mock the http call
255
- http_resp = mock('response')
256
- http_resp.should_receive(:body).and_return(@response)
257
- @params.merge!('order' => 'DESC', 'limit' => 25)
258
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
259
-
260
- # call and verify
261
- result = @client.latest
262
- result.should_not be_empty
263
- result['status'].should_not be_nil
264
- result['status'].should eql('FAIL')
265
- result['message'].should_not be_nil
266
- end
267
-
268
- it "should handle a failed user post cleanly" do
269
- init_fail_response 'user.post'
270
-
271
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
272
-
273
- # mock the http call
274
- http_resp = mock('response')
275
- http_resp.should_receive(:body).and_return(@response)
276
- @params.merge!({'post_method' => 'default', 'title' => '',
277
- 'service' => '', 'body' => 'test message', 'debug' => 0})
278
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
279
-
280
- # call and verify
281
- result = @client.post('test message')
282
- result.should_not be_empty
283
- result['status'].should_not be_nil
284
- result['status'].should eql('FAIL')
285
- result['message'].should_not be_nil
286
- end
287
-
288
- it "should handle a failed user trigger post cleanly" do
289
- init_fail_response 'user.tpost'
290
-
291
- uri = URI.parse "#{Pingfm::API_URL}/#{@service_type}"
292
-
293
- # mock the http call
294
- http_resp = mock('response')
295
- http_resp.should_receive(:body).and_return(@response)
296
- @params.merge!({'title' => '', 'body' => 'test message',
297
- 'trigger' => '@trigger', 'debug' => 0})
298
- Net::HTTP.should_receive(:post_form).with(uri, @params).and_return(http_resp)
299
-
300
- # call and verify
301
- result = @client.tpost('test message', '@trigger')
302
- result.should_not be_empty
303
- result['status'].should_not be_nil
304
- result['status'].should eql('FAIL')
305
- result['message'].should_not be_nil
306
- end
307
- end
308
-
309
- # EOF