urbanairship 2.2.1 → 2.2.2

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.
data/lib/urbanairship.rb CHANGED
@@ -68,7 +68,7 @@ module Urbanairship
68
68
  end
69
69
 
70
70
  def add_tag(tag)
71
- do_request(:put, "/api/tags/#{tag}", :authenticate_with => :master_secret)
71
+ do_request(:put, "/api/tags/#{tag}", :authenticate_with => :master_secret, :content_type => 'text/plain')
72
72
  end
73
73
 
74
74
  def remove_tag(tag)
@@ -96,7 +96,7 @@ module Urbanairship
96
96
 
97
97
  request = klass.new(path)
98
98
  request.basic_auth @application_key, instance_variable_get("@#{options[:authenticate_with]}")
99
- request.add_field "Content-Type", "application/json"
99
+ request.add_field "Content-Type", options[:content_type] || "application/json"
100
100
  request.body = options[:body] if options[:body]
101
101
 
102
102
  Timer.timeout(request_timeout) do
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  describe Urbanairship::Response do
2
4
 
3
5
  before do
@@ -1,3 +1,5 @@
1
+ require 'spec_helper'
2
+
1
3
  shared_examples_for "an Urbanairship client" do
2
4
  before(:all) do
3
5
  FakeWeb.allow_net_connect = false
@@ -35,41 +37,40 @@ shared_examples_for "an Urbanairship client" do
35
37
  # feedback
36
38
  FakeWeb.register_uri(:get, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/feedback/, :status => ["200", "OK"], :body => "[{\"device_token\":\"token\",\"marked_inactive_on\":\"2010-10-14T19:15:13Z\",\"alias\":\"my_alias\"}]")
37
39
  FakeWeb.register_uri(:get, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/device_tokens\/feedback/, :status => ["500", "Internal Server Error"])
38
-
40
+
39
41
  #tags
40
42
  FakeWeb.register_uri(:get, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/tags/, :status => ["200", "OK"], :body => "[{\"tags\":[\"tag1\",\"tag2\"]}]")
41
43
  FakeWeb.register_uri(:get, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/tags/, :status => ["500", "Internal Server Error"])
42
-
44
+
43
45
  #add_tag
44
46
  FakeWeb.register_uri(:put, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/tags\/new_tag/, :status => ["200", "OK"])
45
47
  FakeWeb.register_uri(:put, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/tags\/existing_tag/, :status => ["201", "OK"])
46
48
  FakeWeb.register_uri(:put, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/tags\/a_tag/, :status => ["500", "Internal Server Error"])
47
-
49
+
48
50
  #remove_tag
49
51
  FakeWeb.register_uri(:delete, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/tags\/non_deleted_tag/, :status => ["204", "OK"])
50
52
  FakeWeb.register_uri(:delete, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/tags\/deleted_tag/, :status => ["404", "OK"])
51
53
  FakeWeb.register_uri(:delete, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/tags\/a_tag/, :status => ["500", "Internal Server Error"])
52
-
54
+
53
55
  #tags_for_device_tokens
54
56
  FakeWeb.register_uri(:get, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/valid_device_token\/tags/, :status => ["200", "OK"], :body => "[{\"tags\":[\"tag1\",\"tag2\"]}]")
55
57
  FakeWeb.register_uri(:get, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/invalid_device_token\/tags/, :status => ["404", "OK"])
56
58
  FakeWeb.register_uri(:get, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/device_tokens\/a_device_token\/tags/, :status => ["500", "Internal Server Error"])
57
-
59
+
58
60
  ##tag_device
59
61
  FakeWeb.register_uri(:put, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/valid_device_token\/tags\/new_tag/, :status => ["201", "OK"])
60
62
  FakeWeb.register_uri(:put, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/valid_device_token\/tags\/existing_tag/, :status => ["200", "OK"])
61
63
  FakeWeb.register_uri(:put, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/device_tokens\/a_device_token\/tags\/a_tag/, :status => ["500", "Internal Server Error"])
62
-
64
+
63
65
  #untag_device
64
66
  FakeWeb.register_uri(:delete, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/valid_device_token\/tags\/existing_tag/, :status => ["204", "OK"])
65
67
  FakeWeb.register_uri(:delete, /my_app_key\:my_master_secret\@go\.urbanairship.com\/api\/device_tokens\/valid_device_token\/tags\/non_existant_tag/, :status => ["404", "OK"])
66
68
  FakeWeb.register_uri(:delete, /my_app_key2\:my_master_secret2\@go\.urbanairship.com\/api\/device_tokens\/a_device_token\/tags\/a_tag/, :status => ["500", "Internal Server Error"])
67
-
69
+
68
70
  # push to segment
69
71
  FakeWeb.register_uri(:post, "https://my_app_key:my_master_secret@go.urbanairship.com/api/push/segments", :status => ["200", "OK"])
70
72
  FakeWeb.register_uri(:post, "https://my_app_key2:my_master_secret2@go.urbanairship.com/api/push/segments", :status => ["400", "Bad Request"])
71
73
  FakeWeb.register_uri(:post, /bad_key\:my_master_secret\@go\.urbanairship\.com/, :status => ["401", "Unauthorized"])
72
-
73
74
  end
74
75
 
75
76
  describe "configuration" do
@@ -91,7 +92,7 @@ shared_examples_for "an Urbanairship client" do
91
92
  subject.master_secret.should == "asdf1234"
92
93
  end
93
94
  end
94
-
95
+
95
96
  describe "::tags" do
96
97
  before(:each) do
97
98
  subject.application_key = "my_app_key"
@@ -106,27 +107,27 @@ shared_examples_for "an Urbanairship client" do
106
107
  subject.tags
107
108
  }.should raise_error(RuntimeError, "Must configure application_key, master_secret before making this request.")
108
109
  end
109
-
110
+
110
111
  it "uses app key and secret to sign the request" do
111
112
  subject.tags
112
113
  FakeWeb.last_request['authorization'].should == "Basic #{Base64::encode64('my_app_key:my_master_secret').chomp}"
113
114
  end
114
-
115
+
115
116
  it "returns valid tags" do
116
117
  response = subject.tags
117
118
  response.first.should include("tags")
118
119
  response.first["tags"].should include("tag1")
119
120
  response.first["tags"].should include("tag2")
120
121
  end
121
-
122
+
122
123
  it "success? is false when the call doesn't return 200" do
123
124
  subject.application_key = "my_app_key2"
124
125
  subject.master_secret = "my_master_secret2"
125
126
  subject.tags.success?.should == false
126
127
  end
127
-
128
+
128
129
  end
129
-
130
+
130
131
  describe "::add_tag" do
131
132
  before(:each) do
132
133
  subject.application_key = "my_app_key"
@@ -141,30 +142,34 @@ shared_examples_for "an Urbanairship client" do
141
142
  subject.add_tag('a_tag')
142
143
  }.should raise_error(RuntimeError, "Must configure application_key, master_secret before making this request.")
143
144
  end
144
-
145
+
145
146
  it "uses app key and secret to sign the request" do
146
147
  subject.add_tag('new_tag')
147
148
  FakeWeb.last_request['authorization'].should == "Basic #{Base64::encode64('my_app_key:my_master_secret').chomp}"
148
149
  end
149
-
150
+
150
151
  it "adds a new tag" do
151
152
  subject.add_tag('new_tag').success?.should == true
152
153
  subject.add_tag('new_tag').code.should == "200"
153
154
  end
154
-
155
+
155
156
  it "adds an exisiting tag" do
156
157
  subject.add_tag('existing_tag').success?.should == true
157
158
  subject.add_tag('existing_tag').code.should == "201"
158
159
  end
159
-
160
+
160
161
  it "success? is false when the call doesn't return 200 or 201" do
161
162
  subject.application_key = "my_app_key2"
162
163
  subject.master_secret = "my_master_secret2"
163
164
  subject.add_tag('a_tag').success?.should == false
164
165
  end
165
-
166
+
167
+ it "sets the content-type to text/plain" do
168
+ subject.add_tag('new_tag')
169
+ FakeWeb.last_request['content-type'].should == "text/plain"
170
+ end
166
171
  end
167
-
172
+
168
173
  describe "::remove_tag" do
169
174
  before(:each) do
170
175
  subject.application_key = "my_app_key"
@@ -194,20 +199,20 @@ shared_examples_for "an Urbanairship client" do
194
199
  subject.remove_tag('deleted_tag').success?.should == false
195
200
  subject.remove_tag('deleted_tag').code.should == "404"
196
201
  end
197
-
202
+
198
203
  it "success? is false when the call doesn't return 204" do
199
204
  subject.application_key = "my_app_key2"
200
205
  subject.master_secret = "my_master_secret2"
201
206
  subject.add_tag('a_tag').success?.should == false
202
207
  end
203
208
  end
204
-
209
+
205
210
  describe "::tags_for_device" do
206
211
  before(:each) do
207
212
  subject.application_key = "my_app_key"
208
213
  subject.master_secret = "my_master_secret"
209
214
  end
210
-
215
+
211
216
  it "raises an error if call is made without an app key and master secret configured" do
212
217
  subject.application_key = nil
213
218
  subject.master_secret = nil
@@ -216,12 +221,12 @@ shared_examples_for "an Urbanairship client" do
216
221
  subject.tags_for_device('a_device_token')
217
222
  }.should raise_error(RuntimeError, "Must configure application_key, master_secret before making this request.")
218
223
  end
219
-
224
+
220
225
  it "uses app key and secret to sign the request" do
221
226
  subject.tags_for_device('valid_device_token')
222
227
  FakeWeb.last_request['authorization'].should == "Basic #{Base64::encode64('my_app_key:my_master_secret').chomp}"
223
228
  end
224
-
229
+
225
230
  it "returns valid tags for a device" do
226
231
  response = subject.tags_for_device('valid_device_token')
227
232
  response.first.should include("tags")
@@ -229,25 +234,25 @@ shared_examples_for "an Urbanairship client" do
229
234
  response.first["tags"].should include("tag2")
230
235
  response.code.should == "200"
231
236
  end
232
-
237
+
233
238
  it "returns invalid response for device token that is not found or registered" do
234
239
  response = subject.tags_for_device('invalid_device_token')
235
240
  response.code.should == "404"
236
241
  end
237
-
242
+
238
243
  it "success? is false when the call doesn't return 200" do
239
244
  subject.application_key = "my_app_key2"
240
245
  subject.master_secret = "my_master_secret2"
241
246
  subject.tags_for_device('a_device_token').success?.should == false
242
247
  end
243
248
  end
244
-
249
+
245
250
  describe "::tag_device" do
246
251
  before(:each) do
247
252
  subject.application_key = "my_app_key"
248
253
  subject.master_secret = "my_master_secret"
249
254
  end
250
-
255
+
251
256
  it "raises an error if call is made without an app key and master secret configured" do
252
257
  subject.application_key = nil
253
258
  subject.master_secret = nil
@@ -256,25 +261,25 @@ shared_examples_for "an Urbanairship client" do
256
261
  subject.tag_device({:device_token => 'a_device_token', :tag => 'a_tag'})
257
262
  }.should raise_error(RuntimeError, "Must configure application_key, master_secret before making this request.")
258
263
  end
259
-
264
+
260
265
  it "uses app key and secret to sign the request" do
261
266
  subject.tag_device({:device_token => 'valid_device_token', :tag => 'new_tag'})
262
267
  FakeWeb.last_request['authorization'].should == "Basic #{Base64::encode64('my_app_key:my_master_secret').chomp}"
263
268
  end
264
-
269
+
265
270
  it "adds a valid device token to tag" do
266
271
  response = subject.tag_device({:device_token => 'valid_device_token', :tag => 'new_tag'})
267
272
  response.code.should == "201"
268
273
  response.success?.should == true
269
274
  end
270
-
275
+
271
276
  it "adds a valid device token to an existing tag" do
272
277
  response = subject.tag_device({:device_token => 'valid_device_token', :tag => 'existing_tag'})
273
278
  response.code.should == "200"
274
279
  response.success?.should == true
275
280
  end
276
281
  end
277
-
282
+
278
283
  describe "::untag_device" do
279
284
  before(:each) do
280
285
  subject.application_key = "my_app_key"
@@ -307,7 +312,6 @@ shared_examples_for "an Urbanairship client" do
307
312
  response.success?.should == false
308
313
  end
309
314
  end
310
-
311
315
 
312
316
  describe "::register_device" do
313
317
  before(:each) do
@@ -522,7 +526,7 @@ shared_examples_for "an Urbanairship client" do
522
526
  subject.push.success?.should == false
523
527
  end
524
528
  end
525
-
529
+
526
530
  describe "::push_to_segment" do
527
531
  before(:each) do
528
532
  @valid_params = {:segments => ['segment-id'], :aps => {:alert => 'foo'}}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: urbanairship
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-11 00:00:00.000000000 Z
12
+ date: 2013-01-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json