|
1 | 1 | # frozen_string_literal: true
|
2 | 2 |
|
3 | 3 | require_relative "../../abstract_unit"
|
4 |
| -require "active_support/core_ext/digest/uuid" |
| 4 | +require "active_support/core_ext/digest" |
5 | 5 |
|
6 | 6 | class DigestUUIDExt < ActiveSupport::TestCase
|
7 |
| - def test_v3_uuids |
8 |
| - assert_equal "3d813cbb-47fb-32ba-91df-831e1593ac29", Digest::UUID.uuid_v3(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
9 |
| - assert_equal "86df55fb-428e-3843-8583-ba3c05f290bc", Digest::UUID.uuid_v3(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
10 |
| - assert_equal "8c29ab0e-a2dc-3482-b5eb-20cb2e2387a1", Digest::UUID.uuid_v3(Digest::UUID::OID_NAMESPACE, "1.2.3") |
11 |
| - assert_equal "ee49149d-53a4-304a-890b-468229f6afc3", Digest::UUID.uuid_v3(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 7 | + def with_use_rfc4122_namespaced_uuids_set |
| 8 | + old_value = ActiveSupport.use_rfc4122_namespaced_uuids |
| 9 | + ActiveSupport.use_rfc4122_namespaced_uuids = true |
| 10 | + yield |
| 11 | + ensure |
| 12 | + ActiveSupport.use_rfc4122_namespaced_uuids = old_value |
12 | 13 | end
|
13 | 14 |
|
14 |
| - def test_v5_uuids |
15 |
| - assert_equal "21f7f8de-8051-5b89-8680-0195ef798b6a", Digest::UUID.uuid_v5(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
16 |
| - assert_equal "4e570fd8-186d-5a74-90f0-4d28e34673a1", Digest::UUID.uuid_v5(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
17 |
| - assert_equal "42d5e23b-3a02-5135-85c6-52d1102f1f00", Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, "1.2.3") |
18 |
| - assert_equal "fd5b2ddf-bcfe-58b6-90d6-db50f74db527", Digest::UUID.uuid_v5(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 15 | + def test_constants |
| 16 | + assert_equal "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "%08x-%04x-%04x-%04x-%04x%08x" % Digest::UUID::DNS_NAMESPACE.unpack("NnnnnN") |
| 17 | + assert_equal "6ba7b811-9dad-11d1-80b4-00c04fd430c8", "%08x-%04x-%04x-%04x-%04x%08x" % Digest::UUID::URL_NAMESPACE.unpack("NnnnnN") |
| 18 | + assert_equal "6ba7b812-9dad-11d1-80b4-00c04fd430c8", "%08x-%04x-%04x-%04x-%04x%08x" % Digest::UUID::OID_NAMESPACE.unpack("NnnnnN") |
| 19 | + assert_equal "6ba7b814-9dad-11d1-80b4-00c04fd430c8", "%08x-%04x-%04x-%04x-%04x%08x" % Digest::UUID::X500_NAMESPACE.unpack("NnnnnN") |
| 20 | + end |
| 21 | + |
| 22 | + def test_v3_uuids_with_rfc4122_namespaced_uuids_enabled |
| 23 | + with_use_rfc4122_namespaced_uuids_set do |
| 24 | + assert_not_deprecated do |
| 25 | + assert_equal "3d813cbb-47fb-32ba-91df-831e1593ac29", Digest::UUID.uuid_v3("6BA7B810-9DAD-11D1-80B4-00C04FD430C8", "www.widgets.com") |
| 26 | + assert_equal "3d813cbb-47fb-32ba-91df-831e1593ac29", Digest::UUID.uuid_v3("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.widgets.com") |
| 27 | + assert_equal "3d813cbb-47fb-32ba-91df-831e1593ac29", Digest::UUID.uuid_v3(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
| 28 | + |
| 29 | + assert_equal "86df55fb-428e-3843-8583-ba3c05f290bc", Digest::UUID.uuid_v3("6BA7B811-9DAD-11D1-80B4-00C04FD430C8", "http://www.widgets.com") |
| 30 | + assert_equal "86df55fb-428e-3843-8583-ba3c05f290bc", Digest::UUID.uuid_v3("6ba7b811-9dad-11d1-80b4-00c04fd430c8", "http://www.widgets.com") |
| 31 | + assert_equal "86df55fb-428e-3843-8583-ba3c05f290bc", Digest::UUID.uuid_v3(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
| 32 | + |
| 33 | + assert_equal "8c29ab0e-a2dc-3482-b5eb-20cb2e2387a1", Digest::UUID.uuid_v3("6BA7B812-9DAD-11D1-80B4-00C04FD430C8", "1.2.3") |
| 34 | + assert_equal "8c29ab0e-a2dc-3482-b5eb-20cb2e2387a1", Digest::UUID.uuid_v3("6ba7b812-9dad-11d1-80b4-00c04fd430c8", "1.2.3") |
| 35 | + assert_equal "8c29ab0e-a2dc-3482-b5eb-20cb2e2387a1", Digest::UUID.uuid_v3(Digest::UUID::OID_NAMESPACE, "1.2.3") |
| 36 | + |
| 37 | + assert_equal "ee49149d-53a4-304a-890b-468229f6afc3", Digest::UUID.uuid_v3("6BA7B814-9DAD-11D1-80B4-00C04FD430C8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 38 | + assert_equal "ee49149d-53a4-304a-890b-468229f6afc3", Digest::UUID.uuid_v3("6ba7b814-9dad-11d1-80b4-00c04fd430c8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 39 | + assert_equal "ee49149d-53a4-304a-890b-468229f6afc3", Digest::UUID.uuid_v3(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 40 | + end |
| 41 | + |
| 42 | + assert_raise ArgumentError do |
| 43 | + Digest::UUID.uuid_v3("A non-UUID string", "some value") |
| 44 | + end |
| 45 | + end |
| 46 | + end |
| 47 | + |
| 48 | + def test_v3_uuids_with_rfc4122_namespaced_uuids_disabled |
| 49 | + assert_deprecated do |
| 50 | + assert_equal "995e5d8e-364a-386e-8b3d-65d6a7d5478f", Digest::UUID.uuid_v3("6BA7B810-9DAD-11D1-80B4-00C04FD430C8", "www.widgets.com") |
| 51 | + end |
| 52 | + |
| 53 | + assert_deprecated do |
| 54 | + assert_equal "fe5a52d1-703f-3326-b919-2d96003288f3", Digest::UUID.uuid_v3("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.widgets.com") |
| 55 | + end |
| 56 | + |
| 57 | + assert_not_deprecated do |
| 58 | + assert_equal "3d813cbb-47fb-32ba-91df-831e1593ac29", Digest::UUID.uuid_v3(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
| 59 | + end |
| 60 | + |
| 61 | + assert_deprecated do |
| 62 | + assert_equal "1a27509f-2955-3d78-8f53-c92935fecc57", Digest::UUID.uuid_v3("6BA7B811-9DAD-11D1-80B4-00C04FD430C8", "http://www.widgets.com") |
| 63 | + end |
| 64 | + |
| 65 | + assert_deprecated do |
| 66 | + assert_equal "2676127a-9073-36e3-b9db-14bc16b7c083", Digest::UUID.uuid_v3("6ba7b811-9dad-11d1-80b4-00c04fd430c8", "http://www.widgets.com") |
| 67 | + end |
| 68 | + |
| 69 | + assert_not_deprecated do |
| 70 | + assert_equal "86df55fb-428e-3843-8583-ba3c05f290bc", Digest::UUID.uuid_v3(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
| 71 | + end |
| 72 | + |
| 73 | + assert_deprecated do |
| 74 | + assert_equal "2e2a2437-160c-36e7-952d-d6f494edea44", Digest::UUID.uuid_v3("6BA7B812-9DAD-11D1-80B4-00C04FD430C8", "1.2.3") |
| 75 | + end |
| 76 | + |
| 77 | + assert_deprecated do |
| 78 | + assert_equal "719357e1-54f1-3930-8113-a1faffde48fa", Digest::UUID.uuid_v3("6ba7b812-9dad-11d1-80b4-00c04fd430c8", "1.2.3") |
| 79 | + end |
| 80 | + |
| 81 | + assert_not_deprecated do |
| 82 | + assert_equal "8c29ab0e-a2dc-3482-b5eb-20cb2e2387a1", Digest::UUID.uuid_v3(Digest::UUID::OID_NAMESPACE, "1.2.3") |
| 83 | + end |
| 84 | + |
| 85 | + assert_deprecated do |
| 86 | + assert_equal "01c2671b-fd20-3e43-8cff-217f40e110c8", Digest::UUID.uuid_v3("6BA7B814-9DAD-11D1-80B4-00C04FD430C8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 87 | + end |
| 88 | + |
| 89 | + assert_deprecated do |
| 90 | + assert_equal "32560c4a-c9f1-3974-9c1c-5e52761e091f", Digest::UUID.uuid_v3("6ba7b814-9dad-11d1-80b4-00c04fd430c8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 91 | + end |
| 92 | + |
| 93 | + assert_not_deprecated do |
| 94 | + assert_equal "ee49149d-53a4-304a-890b-468229f6afc3", Digest::UUID.uuid_v3(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 95 | + end |
| 96 | + |
| 97 | + assert_deprecated do |
| 98 | + assert_equal "cd3d768f-7380-3d1f-8834-e034b40e65ea", Digest::UUID.uuid_v3("A non-UUID string", "some value") |
| 99 | + end |
| 100 | + end |
| 101 | + |
| 102 | + def test_v5_uuids_with_rfc4122_namespaced_uuids_enabled |
| 103 | + with_use_rfc4122_namespaced_uuids_set do |
| 104 | + assert_not_deprecated do |
| 105 | + assert_equal "21f7f8de-8051-5b89-8680-0195ef798b6a", Digest::UUID.uuid_v5("6BA7B810-9DAD-11D1-80B4-00C04FD430C8", "www.widgets.com") |
| 106 | + assert_equal "21f7f8de-8051-5b89-8680-0195ef798b6a", Digest::UUID.uuid_v5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.widgets.com") |
| 107 | + assert_equal "21f7f8de-8051-5b89-8680-0195ef798b6a", Digest::UUID.uuid_v5(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
| 108 | + |
| 109 | + assert_equal "4e570fd8-186d-5a74-90f0-4d28e34673a1", Digest::UUID.uuid_v5("6BA7B811-9DAD-11D1-80B4-00C04FD430C8", "http://www.widgets.com") |
| 110 | + assert_equal "4e570fd8-186d-5a74-90f0-4d28e34673a1", Digest::UUID.uuid_v5("6ba7b811-9dad-11d1-80b4-00c04fd430c8", "http://www.widgets.com") |
| 111 | + assert_equal "4e570fd8-186d-5a74-90f0-4d28e34673a1", Digest::UUID.uuid_v5(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
| 112 | + |
| 113 | + assert_equal "42d5e23b-3a02-5135-85c6-52d1102f1f00", Digest::UUID.uuid_v5("6BA7B812-9DAD-11D1-80B4-00C04FD430C8", "1.2.3") |
| 114 | + assert_equal "42d5e23b-3a02-5135-85c6-52d1102f1f00", Digest::UUID.uuid_v5("6ba7b812-9dad-11d1-80b4-00c04fd430c8", "1.2.3") |
| 115 | + assert_equal "42d5e23b-3a02-5135-85c6-52d1102f1f00", Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, "1.2.3") |
| 116 | + |
| 117 | + assert_equal "fd5b2ddf-bcfe-58b6-90d6-db50f74db527", Digest::UUID.uuid_v5("6BA7B814-9DAD-11D1-80B4-00C04FD430C8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 118 | + assert_equal "fd5b2ddf-bcfe-58b6-90d6-db50f74db527", Digest::UUID.uuid_v5("6ba7b814-9dad-11d1-80b4-00c04fd430c8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 119 | + assert_equal "fd5b2ddf-bcfe-58b6-90d6-db50f74db527", Digest::UUID.uuid_v5(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 120 | + end |
| 121 | + |
| 122 | + assert_raise ArgumentError do |
| 123 | + Digest::UUID.uuid_v5("A non-UUID string", "some value") |
| 124 | + end |
| 125 | + end |
| 126 | + end |
| 127 | + |
| 128 | + def test_v5_uuids_with_rfc4122_namespaced_uuids_disabled |
| 129 | + assert_deprecated do |
| 130 | + assert_equal "442faf6c-4996-5266-aeef-ecadb5d49e54", Digest::UUID.uuid_v5("6BA7B810-9DAD-11D1-80B4-00C04FD430C8", "www.widgets.com") |
| 131 | + end |
| 132 | + |
| 133 | + assert_deprecated do |
| 134 | + assert_equal "027963ef-431c-5670-ab2c-820168da74e9", Digest::UUID.uuid_v5("6ba7b810-9dad-11d1-80b4-00c04fd430c8", "www.widgets.com") |
| 135 | + end |
| 136 | + |
| 137 | + assert_not_deprecated do |
| 138 | + assert_equal "21f7f8de-8051-5b89-8680-0195ef798b6a", Digest::UUID.uuid_v5(Digest::UUID::DNS_NAMESPACE, "www.widgets.com") |
| 139 | + end |
| 140 | + |
| 141 | + assert_deprecated do |
| 142 | + assert_equal "59207e54-33c5-5914-ab39-b7f3333a0097", Digest::UUID.uuid_v5("6BA7B811-9DAD-11D1-80B4-00C04FD430C8", "http://www.widgets.com") |
| 143 | + end |
| 144 | + |
| 145 | + assert_deprecated do |
| 146 | + assert_equal "d8e1e518-2337-58e5-bf52-6c563631db90", Digest::UUID.uuid_v5("6ba7b811-9dad-11d1-80b4-00c04fd430c8", "http://www.widgets.com") |
| 147 | + end |
| 148 | + |
| 149 | + assert_not_deprecated do |
| 150 | + assert_equal "4e570fd8-186d-5a74-90f0-4d28e34673a1", Digest::UUID.uuid_v5(Digest::UUID::URL_NAMESPACE, "http://www.widgets.com") |
| 151 | + end |
| 152 | + |
| 153 | + assert_deprecated do |
| 154 | + assert_equal "72409eff-7406-5906-b86e-6c7a726ed04e", Digest::UUID.uuid_v5("6BA7B812-9DAD-11D1-80B4-00C04FD430C8", "1.2.3") |
| 155 | + end |
| 156 | + |
| 157 | + assert_deprecated do |
| 158 | + assert_equal "b9b86653-48bb-5059-861a-2c72974b5c8d", Digest::UUID.uuid_v5("6ba7b812-9dad-11d1-80b4-00c04fd430c8", "1.2.3") |
| 159 | + end |
| 160 | + |
| 161 | + assert_not_deprecated do |
| 162 | + assert_equal "42d5e23b-3a02-5135-85c6-52d1102f1f00", Digest::UUID.uuid_v5(Digest::UUID::OID_NAMESPACE, "1.2.3") |
| 163 | + end |
| 164 | + |
| 165 | + assert_deprecated do |
| 166 | + assert_equal "de6fe50e-eded-580a-81c9-f0774a3531da", Digest::UUID.uuid_v5("6BA7B814-9DAD-11D1-80B4-00C04FD430C8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 167 | + end |
| 168 | + |
| 169 | + assert_deprecated do |
| 170 | + assert_equal "e84a8a4e-a5c7-55b8-ad09-020c0b5662a7", Digest::UUID.uuid_v5("6ba7b814-9dad-11d1-80b4-00c04fd430c8", "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 171 | + end |
| 172 | + |
| 173 | + assert_not_deprecated do |
| 174 | + assert_equal "fd5b2ddf-bcfe-58b6-90d6-db50f74db527", Digest::UUID.uuid_v5(Digest::UUID::X500_NAMESPACE, "cn=John Doe, ou=People, o=Acme, Inc., c=US") |
| 175 | + end |
| 176 | + |
| 177 | + assert_deprecated do |
| 178 | + assert_equal "b42d5423-1047-5bb3-afd4-0dec60fb22d2", Digest::UUID.uuid_v5("A non-UUID string", "some value") |
| 179 | + end |
19 | 180 | end
|
20 | 181 |
|
21 | 182 | def test_invalid_hash_class
|
|
0 commit comments