itunes-receipt 0.1.0 → 0.1.1

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/.gitignore CHANGED
@@ -20,3 +20,4 @@ pkg
20
20
  Gemfile.lock
21
21
 
22
22
  ## PROJECT::SPECIFIC
23
+ coverage*
@@ -1,5 +1,4 @@
1
1
  rvm:
2
- - 1.8.7
3
2
  - 1.9.2
4
3
  - 1.9.3
5
4
  - jruby
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
- RSpec::Core::RakeTask.new(:rcov) do |spec|
8
- spec.rcov = true
9
- spec.rcov_opts = ['-Ilib -Ispec --exclude spec,gems']
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.0
1
+ 0.1.1
@@ -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
@@ -28,4 +28,12 @@ module Itunes
28
28
  end
29
29
  self.sandbox = false
30
30
 
31
- end
31
+ def self.shared_secret
32
+ @@shared_secret
33
+ end
34
+ def self.shared_secret=(shared_secret)
35
+ @@shared_secret = shared_secret
36
+ end
37
+ self.shared_secret = nil
38
+
39
+ end
@@ -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
- {:'receipt-data' => receipt_data}.to_json
52
+ request_data.to_json
51
53
  )
52
54
  response = JSON.parse(response).with_indifferent_access
53
55
  case response[:status]
@@ -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
@@ -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
@@ -1,8 +1,7 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
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.0
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: rcov
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: '0.9'
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: '0.9'
109
+ version: '2'
110
110
  - !ruby/object:Gem::Dependency
111
- name: rspec
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: '2'
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: '2'
125
+ version: 1.3.0
126
126
  - !ruby/object:Gem::Dependency
127
- name: fakeweb
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.3.0
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.3.0
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