aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorKasper Timm Hansen <kaspth@gmail.com>2017-07-19 21:03:59 +0200
committerGitHub <noreply@github.com>2017-07-19 21:03:59 +0200
commit526d4b8dc816c17e354e2e0243af16d10147c3f0 (patch)
tree57b814234e5bd9d4dc9c9520682239cea99e9593 /activesupport/test
parent5c16dd35a23f75038baf1527143ee44accf081ff (diff)
parent3bf3653a69a18d19083f46cf09b11e79b017af7c (diff)
downloadrails-526d4b8dc816c17e354e2e0243af16d10147c3f0.tar.gz
rails-526d4b8dc816c17e354e2e0243af16d10147c3f0.tar.bz2
rails-526d4b8dc816c17e354e2e0243af16d10147c3f0.zip
Merge pull request #29854 from assain/add_metadata_to_message_verifier
Add Expiry & Purpose to Message Verifier
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/message_verifier_test.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/activesupport/test/message_verifier_test.rb b/activesupport/test/message_verifier_test.rb
index ba886f9fb4..d4a8ce762a 100644
--- a/activesupport/test/message_verifier_test.rb
+++ b/activesupport/test/message_verifier_test.rb
@@ -4,6 +4,7 @@ require "abstract_unit"
require "openssl"
require "active_support/time"
require "active_support/json"
+require_relative "metadata/shared_metadata_tests"
class MessageVerifierTest < ActiveSupport::TestCase
class JSONSerializer
@@ -84,4 +85,44 @@ class MessageVerifierTest < ActiveSupport::TestCase
end
assert_equal "Secret should not be nil.", exception.message
end
+
+ def test_backward_compatibility_messages_signed_without_metadata
+ signed_message = "BAh7BzoJc29tZUkiCWRhdGEGOgZFVDoIbm93SXU6CVRpbWUNIIAbgAAAAAAHOgtvZmZzZXRpADoJem9uZUkiCFVUQwY7BkY=--d03c52c91dfe4ccc5159417c660461bcce005e96"
+ assert_equal @data, @verifier.verify(signed_message)
+ end
+end
+
+class MessageVerifierMetadataTest < ActiveSupport::TestCase
+ include SharedMessageMetadataTests
+
+ setup do
+ @verifier = ActiveSupport::MessageVerifier.new("Hey, I'm a secret!", verifier_options)
+ end
+
+ private
+ def generate(message, **options)
+ @verifier.generate(message, options)
+ end
+
+ def parse(message, **options)
+ @verifier.verified(message, options)
+ end
+
+ def verifier_options
+ Hash.new
+ end
+end
+
+class MessageVerifierMetadataMarshalTest < MessageVerifierMetadataTest
+ private
+ def verifier_options
+ { serializer: Marshal }
+ end
+end
+
+class MessageVerifierMetadataJSONTest < MessageVerifierMetadataTest
+ private
+ def verifier_options
+ { serializer: MessageVerifierTest::JSONSerializer.new }
+ end
end