diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2017-07-19 21:03:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-19 21:03:59 +0200 |
commit | 526d4b8dc816c17e354e2e0243af16d10147c3f0 (patch) | |
tree | 57b814234e5bd9d4dc9c9520682239cea99e9593 /activesupport/test | |
parent | 5c16dd35a23f75038baf1527143ee44accf081ff (diff) | |
parent | 3bf3653a69a18d19083f46cf09b11e79b017af7c (diff) | |
download | rails-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.rb | 41 |
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 |