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 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