spec/spec_helper.rb in wix-apps-0.0.3 vs spec/spec_helper.rb in wix-apps-1.0.0
- old
+ new
@@ -1,6 +1,47 @@
require 'bundler/setup'
+require 'json'
Bundler.require(:default, :development)
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each {|f| require f}
-require 'rack/test'
\ No newline at end of file
+require 'rack/test'
+
+def encode_base64(payload)
+ Base64.urlsafe_encode64(payload).gsub('=', '')
+end
+
+def decode_base64(encoded_payload)
+ padded = encoded_payload
+ padded += ('=' * (4 - encoded_payload.length % 4)) if padded.length % 4 != 0
+
+ Base64.urlsafe_decode64(padded)
+end
+
+def decode(signed_instance)
+ signature, encoded_json = signed_instance.split('.', 2)
+ decode_base64(encoded_json)
+end
+
+def sign(payload)
+ sign_string JSON.dump(payload)
+end
+
+def sign_string(payload)
+ encoded_payload = encode_base64(payload)
+ digest = OpenSSL::Digest.new('sha256')
+ hmac_digest = OpenSSL::HMAC.digest(digest, SECRET_KEY, encoded_payload)
+ my_signature = Base64.urlsafe_encode64(hmac_digest).gsub('=', '')
+ "#{my_signature}.#{encoded_payload}"
+end
+
+def params_required
+ {
+ instanceId: '9f9c5c16-59c8-4708-8c25-855505daa954',
+ signDate: DateTime.now.rfc3339,
+ permissions: '',
+ ipAndPort: '123.123.123.123:1234',
+ vendorProductId: '',
+ aid: '12645948-59c8-4708-8c25-855505dac8ca',
+ siteOwnerId: '92771668-366f-4ec6-be21-b32c78e7b734'
+ }
+end