itunes-receipt 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +0 -1
- data/Rakefile +10 -3
- data/VERSION +1 -1
- data/itunes-receipt.gemspec +1 -1
- data/lib/itunes.rb +9 -1
- data/lib/itunes/receipt.rb +3 -1
- data/spec/itunes/receipt_spec.rb +18 -0
- data/spec/itunes_spec.rb +30 -0
- data/spec/spec_helper.rb +2 -3
- metadata +12 -10
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -4,9 +4,16 @@ Bundler::GemHelper.install_tasks
|
|
4
4
|
require 'rspec/core/rake_task'
|
5
5
|
RSpec::Core::RakeTask.new(:spec)
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
namespace :cover_me do
|
8
|
+
desc "Generates and opens code coverage report."
|
9
|
+
task :report do
|
10
|
+
require 'cover_me'
|
11
|
+
CoverMe.complete!
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
task :spec do
|
16
|
+
Rake::Task['cover_me:report'].invoke
|
10
17
|
end
|
11
18
|
|
12
19
|
task :default => :spec
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/itunes-receipt.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.add_dependency 'activesupport', '>= 2.3'
|
19
19
|
s.add_dependency 'i18n'
|
20
20
|
s.add_development_dependency 'rake', '>= 0.8'
|
21
|
-
s.add_development_dependency 'rcov', '>= 0.9'
|
22
21
|
s.add_development_dependency 'rspec', '>= 2'
|
23
22
|
s.add_development_dependency 'fakeweb', '>= 1.3.0'
|
23
|
+
s.add_development_dependency "cover_me", ">= 1.2.0"
|
24
24
|
end
|
data/lib/itunes.rb
CHANGED
data/lib/itunes/receipt.rb
CHANGED
@@ -45,9 +45,11 @@ module Itunes
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def self.verify!(receipt_data)
|
48
|
+
request_data = {:'receipt-data' => receipt_data}
|
49
|
+
request_data.merge!(:password => Itunes.shared_secret) if Itunes.shared_secret
|
48
50
|
response = RestClient.post(
|
49
51
|
Itunes.endpoint,
|
50
|
-
|
52
|
+
request_data.to_json
|
51
53
|
)
|
52
54
|
response = JSON.parse(response).with_indifferent_access
|
53
55
|
case response[:status]
|
data/spec/itunes/receipt_spec.rb
CHANGED
@@ -11,6 +11,24 @@ describe Itunes::Receipt do
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
it 'should not pass along shared secret if not set' do
|
15
|
+
fake_json(:invalid)
|
16
|
+
Itunes.shared_secret = nil
|
17
|
+
RestClient.should_receive(:post).with(Itunes.endpoint, {:'receipt-data' => 'receipt-data'}.to_json).and_return("{}")
|
18
|
+
expect do
|
19
|
+
Itunes::Receipt.verify! 'receipt-data'
|
20
|
+
end.to raise_error Itunes::Receipt::VerificationFailed
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should pass along shared secret if set' do
|
24
|
+
fake_json(:invalid)
|
25
|
+
Itunes.shared_secret = 'hey'
|
26
|
+
RestClient.should_receive(:post).with(Itunes.endpoint, {:'receipt-data' => 'receipt-data', :password => 'hey'}.to_json).and_return("{}")
|
27
|
+
expect do
|
28
|
+
Itunes::Receipt.verify! 'receipt-data'
|
29
|
+
end.to raise_error Itunes::Receipt::VerificationFailed
|
30
|
+
end
|
31
|
+
|
14
32
|
context 'when invalid' do
|
15
33
|
before do
|
16
34
|
fake_json :invalid
|
data/spec/itunes_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Itunes do
|
4
|
+
|
5
|
+
describe 'the module' do
|
6
|
+
before do
|
7
|
+
Itunes.shared_secret = nil
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'sandbox' do
|
11
|
+
it 'should be production by default' do
|
12
|
+
Itunes.sandbox?.should be_false
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'should be settable' do
|
16
|
+
Itunes.sandbox!
|
17
|
+
Itunes.sandbox?.should be_true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'shared_secret' do
|
22
|
+
it 'should allow setting' do
|
23
|
+
Itunes.shared_secret.should be_nil
|
24
|
+
Itunes.shared_secret = 'hey'
|
25
|
+
Itunes.shared_secret.should == 'hey'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'cover_me'
|
2
|
+
require 'rspec'
|
3
3
|
|
4
4
|
require 'itunes/receipt'
|
5
|
-
require 'rspec'
|
6
5
|
require 'helpers/fake_json_helper'
|
7
6
|
|
8
7
|
def sandbox_mode(&block)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itunes-receipt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -92,13 +92,13 @@ dependencies:
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: '0.8'
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
95
|
+
name: rspec
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
98
|
requirements:
|
99
99
|
- - ! '>='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
101
|
+
version: '2'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,15 +106,15 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
109
|
+
version: '2'
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
|
-
name:
|
111
|
+
name: fakeweb
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
113
113
|
none: false
|
114
114
|
requirements:
|
115
115
|
- - ! '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: 1.3.0
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,15 +122,15 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
125
|
+
version: 1.3.0
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
|
-
name:
|
127
|
+
name: cover_me
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
130
|
requirements:
|
131
131
|
- - ! '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: 1.
|
133
|
+
version: 1.2.0
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
requirements:
|
139
139
|
- - ! '>='
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: 1.
|
141
|
+
version: 1.2.0
|
142
142
|
description: Handle iTunes In App Purchase Receipt Verification
|
143
143
|
email: nov@matake.jp
|
144
144
|
executables: []
|
@@ -161,6 +161,7 @@ files:
|
|
161
161
|
- spec/fake_json/valid.json
|
162
162
|
- spec/helpers/fake_json_helper.rb
|
163
163
|
- spec/itunes/receipt_spec.rb
|
164
|
+
- spec/itunes_spec.rb
|
164
165
|
- spec/spec_helper.rb
|
165
166
|
homepage: http://github.com/nov/itunes-receipt
|
166
167
|
licenses: []
|
@@ -192,4 +193,5 @@ test_files:
|
|
192
193
|
- spec/fake_json/valid.json
|
193
194
|
- spec/helpers/fake_json_helper.rb
|
194
195
|
- spec/itunes/receipt_spec.rb
|
196
|
+
- spec/itunes_spec.rb
|
195
197
|
- spec/spec_helper.rb
|