aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-07-12 14:59:37 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-07-12 15:20:15 -0500
commite28d6c47eb73ab3d3297745873a25e0f6c0eae8e (patch)
tree0faab703ed6dac2c109dbf88868098cabebf9ac4 /tests
parent699616f4ed6ee7f2e92d87b038842864c517feaa (diff)
downloadcryptography-e28d6c47eb73ab3d3297745873a25e0f6c0eae8e.tar.gz
cryptography-e28d6c47eb73ab3d3297745873a25e0f6c0eae8e.tar.bz2
cryptography-e28d6c47eb73ab3d3297745873a25e0f6c0eae8e.zip
expand UniformResourceIdentiier to parse and internally IDNA encode
Diffstat (limited to 'tests')
-rw-r--r--tests/test_x509_ext.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/test_x509_ext.py b/tests/test_x509_ext.py
index 84a40995..7b135828 100644
--- a/tests/test_x509_ext.py
+++ b/tests/test_x509_ext.py
@@ -1105,6 +1105,38 @@ class TestRFC822Name(object):
assert gn._encoded == b"email@xn--eml-vla4c.com"
+class TestUniformResourceIdentifier(object):
+ def test_no_parsed_hostname(self):
+ gn = x509.UniformResourceIdentifier(u"singlelabel")
+ assert gn.value == u"singlelabel"
+
+ def test_with_port(self):
+ gn = x509.UniformResourceIdentifier(u"singlelabel:443/test")
+ assert gn.value == u"singlelabel:443/test"
+
+ def test_idna_no_port(self):
+ gn = x509.UniformResourceIdentifier(
+ u"http://\u043f\u044b\u043a\u0430.cryptography"
+ )
+ assert gn.value == u"http://\u043f\u044b\u043a\u0430.cryptography"
+ assert gn._encoded == b"http://xn--80ato2c.cryptography"
+
+ def test_idna_with_port(self):
+ gn = x509.UniformResourceIdentifier(
+ u"gopher://\u043f\u044b\u043a\u0430.cryptography:70/some/path"
+ )
+ assert gn.value == (
+ u"gopher://\u043f\u044b\u043a\u0430.cryptography:70/some/path"
+ )
+ assert gn._encoded == b"gopher://xn--80ato2c.cryptography:70/some/path"
+
+ def test_query_and_fragment(self):
+ gn = x509.UniformResourceIdentifier(
+ u"ldap://cryptography:90/path?query=true#somedata"
+ )
+ assert gn.value == u"ldap://cryptography:90/path?query=true#somedata"
+
+
class TestRegisteredID(object):
def test_not_oid(self):
with pytest.raises(TypeError):