1
+ # encoding: UTF-8
1
2
require File . expand_path ( '../test_helper' , File . dirname ( __FILE__ ) )
2
3
3
4
class TestX509Name < TestCase
4
5
5
- def test_to_a_to_s
6
+ def test_to_a_to_s_and_to_utf8
6
7
dn = [
7
8
[ "DC" , "org" ] ,
8
9
[ "DC" , "jruby" , 22 ] ,
9
10
[ "CN" , "Karol Bucek" ] ,
10
11
[ "UID" , "kares" ] ,
11
12
[ "emailAddress" , "[email protected] " ] ,
12
13
[ "serialNumber" , "1234567890" ] ,
13
- [ "street" , "Edelenyska " ] ,
14
+ [ "street" , "Edelenska " ] ,
14
15
[ '2.5.4.44' , 'X' ] ,
15
- [ '2.5.4.65' , 'BUBS ' ] ,
16
- [ 'postalCode' , '04801 ' , 22 ] ,
17
- [ 'postalAddress' , 'Edelenyska 1, Roznava' ] ,
16
+ [ '2.5.4.65' , 'B;BS ' ] ,
17
+ [ 'postalCode' , '048+01 ' , 22 ] ,
18
+ [ 'postalAddress' , "Edelénska 2022/11, RV" ] ,
18
19
]
19
20
name = OpenSSL ::X509 ::Name . new
20
21
dn . each { |attr | name . add_entry ( *attr ) }
@@ -27,20 +28,29 @@ def test_to_a_to_s
27
28
[ "UID" , "kares" , 12 ] ,
28
29
[ "emailAddress" , "[email protected] " , 22 ] ,
29
30
[ "serialNumber" , "1234567890" , 19 ] ,
30
- [ "street" , "Edelenyska " , 12 ] ,
31
+ [ "street" , "Edelenska " , 12 ] ,
31
32
[ 'generationQualifier' , 'X' , 12 ] ,
32
- [ 'pseudonym' , 'BUBS ' , 12 ] ,
33
- [ 'postalCode' , '04801 ' , 22 ] ,
34
- [ 'postalAddress' , 'Edelenyska 1, Roznava' , 12 ] ,
33
+ [ 'pseudonym' , 'B;BS ' , 12 ] ,
34
+ [ 'postalCode' , '048+01 ' , 22 ] ,
35
+ [ 'postalAddress' , "Edelénska 2022/11, RV" , 12 ] ,
35
36
]
36
37
37
38
assert_equal exp_to_a . size , ary . size
38
39
exp_to_a . each_with_index do |el , i |
39
40
assert_equal el , ary [ i ]
40
41
end
41
42
42
- str = exp_to_a . map { |arr | "#{ arr [ 0 ] } =#{ arr [ 1 ] } " } . join ( '/' )
43
- assert_equal "/#{ str } " , name . to_s
43
+ assert_equal "/DC=org/DC=jruby/CN=Karol Bucek/UID=kares/[email protected] /serialNumber=1234567890/street=Edelenska/generationQualifier=X/pseudonym=B;BS/postalCode=048+01/postalAddress=Edelénska 2022/11, RV" ,
44
+ name . to_s
45
+ # assert_equal Encoding::ASCII_8BIT, name.to_s.encoding # MRI behavior
46
+ # assert_equal "DC=org, DC=jruby, CN=Karol Bucek/UID=kares/[email protected] /serialNumber=1234567890/street=Edelenska/generationQualifier=X/pseudonym=B;BS/postalCode=048+01/postalAddress=Edelénska 2022/11, RV",
47
+ # name.to_s(OpenSSL::X509::Name::COMPAT)
48
+ # assert_equal Encoding::ASCII_8BIT, name.to_s(OpenSSL::X509::Name::COMPAT).encoding # MRI behavior
49
+
50
+ assert_equal "postalAddress=Edelénska 2022/11\\ , RV,postalCode=048\\ +01,pseudonym=B\\ ;BS,generationQualifier=X,street=Edelenska,serialNumber=1234567890,[email protected] ,UID=kares,CN=Karol Bucek,DC=jruby,DC=org" ,
51
+ name . to_s ( OpenSSL ::X509 ::Name ::RFC2253 )
52
+ assert_equal "postalAddress=Edelénska 2022/11\\ , RV,postalCode=048\\ +01,pseudonym=B\\ ;BS,generationQualifier=X,street=Edelenska,serialNumber=1234567890,[email protected] ,UID=kares,CN=Karol Bucek,DC=jruby,DC=org" ,
53
+ name . to_utf8
44
54
end
45
55
46
56
def test_raise_on_invalid_field_name
@@ -76,7 +86,6 @@ def test_hash_multiple_spaces_mixed_case
76
86
end
77
87
78
88
def test_hash_long_name
79
- puts 'test_hash_long_name'
80
89
name = OpenSSL ::X509 ::Name . new [ [ 'CN' , 'a' * 255 ] , [ 'DC' , 'example' ] ]
81
90
assert_equal 214469118 , name . hash
82
91
end
0 commit comments