aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2017-09-03 18:59:33 +0900
committerGitHub <noreply@github.com>2017-09-03 18:59:33 +0900
commita91c6b054288aabeea441f57117f83c70b50abde (patch)
treed70bc4f625b415fb32cb39b070d53df09074abe3 /test
parente96d9c02c4d4788083360fa49d3afcba9ffef289 (diff)
parent3b6cdf121cf541c39df217b1e9068cabf537e475 (diff)
downloadruby-openssl-a91c6b054288aabeea441f57117f83c70b50abde.tar.gz
Merge pull request #143 from rhenium/ky/x509name-to-utf-8
Add X509::Name#to_utf8 and #inspect
Diffstat (limited to 'test')
-rw-r--r--test/test_x509name.rb39
1 files changed, 38 insertions, 1 deletions
diff --git a/test/test_x509name.rb b/test/test_x509name.rb
index 2f77f20b..ce370415 100644
--- a/test/test_x509name.rb
+++ b/test/test_x509name.rb
@@ -1,4 +1,4 @@
-# coding: US-ASCII
+# coding: ASCII-8BIT
# frozen_string_literal: false
require_relative 'utils'
@@ -356,6 +356,43 @@ class OpenSSL::TestX509Name < OpenSSL::TestCase
assert_equal("CN=unya,OU=b+OU=a,O=ruby-lang", dn.dup.to_s(OpenSSL::X509::Name::RFC2253))
end
+ def test_to_s
+ dn = [
+ ["DC", "org"],
+ ["DC", "ruby-lang"],
+ ["CN", "フー, バー"],
+ ]
+ name = OpenSSL::X509::Name.new
+ dn.each { |x| name.add_entry(*x) }
+
+ assert_equal "/DC=org/DC=ruby-lang/" \
+ "CN=\\xE3\\x83\\x95\\xE3\\x83\\xBC, \\xE3\\x83\\x90\\xE3\\x83\\xBC",
+ name.to_s
+ # OpenSSL escapes characters with MSB by default
+ assert_equal \
+ "CN=\\E3\\83\\95\\E3\\83\\BC\\, \\E3\\83\\90\\E3\\83\\BC," \
+ "DC=ruby-lang,DC=org",
+ name.to_s(OpenSSL::X509::Name::RFC2253)
+ assert_equal "DC = org, DC = ruby-lang, " \
+ "CN = \"\\E3\\83\\95\\E3\\83\\BC, \\E3\\83\\90\\E3\\83\\BC\"",
+ name.to_s(OpenSSL::X509::Name::ONELINE)
+ end
+
+ def test_to_utf8
+ dn = [
+ ["DC", "org"],
+ ["DC", "ruby-lang"],
+ ["CN", "フー, バー"],
+ ]
+ name = OpenSSL::X509::Name.new
+ dn.each { |x| name.add_entry(*x) }
+
+ str = name.to_utf8
+ expected = "CN=フー\\, バー,DC=ruby-lang,DC=org".force_encoding("UTF-8")
+ assert_equal expected, str
+ assert_equal Encoding.find("UTF-8"), str.encoding
+ end
+
def test_equals2
n1 = OpenSSL::X509::Name.parse 'CN=a'
n2 = OpenSSL::X509::Name.parse 'CN=a'