aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorEileen M. Uchitelle <eileencodes@users.noreply.github.com>2017-12-14 09:58:33 -0500
committerGitHub <noreply@github.com>2017-12-14 09:58:33 -0500
commit659c516bef2781cc66865fc78ed5dce682566d26 (patch)
treeeb5ac2568af824f216769496d1a698ee2ae3136c /activesupport/test
parent4bd28efc189cf58891ece9d57d44994039054ca0 (diff)
parent82822a34217503336d51b7baab82cd18cf71e435 (diff)
downloadrails-659c516bef2781cc66865fc78ed5dce682566d26.tar.gz
rails-659c516bef2781cc66865fc78ed5dce682566d26.tar.bz2
rails-659c516bef2781cc66865fc78ed5dce682566d26.zip
Merge pull request #31289 from witlessbird/fips-compatibility
Initial support for running Rails on FIPS-certified systems
Diffstat (limited to 'activesupport/test')
-rw-r--r--activesupport/test/digest_test.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/activesupport/test/digest_test.rb b/activesupport/test/digest_test.rb
new file mode 100644
index 0000000000..5dec75b9fe
--- /dev/null
+++ b/activesupport/test/digest_test.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require "abstract_unit"
+require "openssl"
+
+class DigestTest < ActiveSupport::TestCase
+ class InvalidDigest; end
+ def test_with_default_hash_digest_class
+ assert_equal ::Digest::MD5.hexdigest("hello friend"), ActiveSupport::Digest.hexdigest("hello friend")
+ end
+
+ def test_with_custom_hash_digest_class
+ original_hash_digest_class = ActiveSupport::Digest.hash_digest_class
+
+ ActiveSupport::Digest.hash_digest_class = ::Digest::SHA1
+ digest = ActiveSupport::Digest.hexdigest("hello friend")
+
+ assert_equal 32, digest.length
+ assert_equal ::Digest::SHA1.hexdigest("hello friend").truncate(32), digest
+ ensure
+ ActiveSupport::Digest.hash_digest_class = original_hash_digest_class
+ end
+
+ def test_should_raise_argument_error_if_custom_digest_is_missing_hexdigest_method
+ assert_raises(ArgumentError) { ActiveSupport::Digest.hash_digest_class = InvalidDigest }
+ end
+end