1+ # encoding: UTF-8
12require File . expand_path ( '../test_helper' , File . dirname ( __FILE__ ) )
23
34class TestX509Name < TestCase
45
5- def test_to_a_to_s
6+ def test_to_a_to_s_and_to_utf8
67 dn = [
78 [ "DC" , "org" ] ,
89 [ "DC" , "jruby" , 22 ] ,
910 [ "CN" , "Karol Bucek" ] ,
1011 [ "UID" , "kares" ] ,
1112 [ "emailAddress" , "jruby@kares-x.org" ] ,
1213 [ "serialNumber" , "1234567890" ] ,
13- [ "street" , "Edelenyska " ] ,
14+ [ "street" , "Edelenska " ] ,
1415 [ '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" ] ,
1819 ]
1920 name = OpenSSL ::X509 ::Name . new
2021 dn . each { |attr | name . add_entry ( *attr ) }
@@ -27,20 +28,29 @@ def test_to_a_to_s
2728 [ "UID" , "kares" , 12 ] ,
2829 [ "emailAddress" , "jruby@kares-x.org" , 22 ] ,
2930 [ "serialNumber" , "1234567890" , 19 ] ,
30- [ "street" , "Edelenyska " , 12 ] ,
31+ [ "street" , "Edelenska " , 12 ] ,
3132 [ '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 ] ,
3536 ]
3637
3738 assert_equal exp_to_a . size , ary . size
3839 exp_to_a . each_with_index do |el , i |
3940 assert_equal el , ary [ i ]
4041 end
4142
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/emailAddress=jruby@kares-x.org/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/emailAddress=jruby@kares-x.org/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,emailAddress=jruby@kares-x.org,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,emailAddress=jruby@kares-x.org,UID=kares,CN=Karol Bucek,DC=jruby,DC=org" ,
53+ name . to_utf8
4454 end
4555
4656 def test_raise_on_invalid_field_name
@@ -76,7 +86,6 @@ def test_hash_multiple_spaces_mixed_case
7686 end
7787
7888 def test_hash_long_name
79- puts 'test_hash_long_name'
8089 name = OpenSSL ::X509 ::Name . new [ [ 'CN' , 'a' * 255 ] , [ 'DC' , 'example' ] ]
8190 assert_equal 214469118 , name . hash
8291 end
0 commit comments