diff vendor/pear/net_idna2/tests/Net_IDNA2Test.php @ 0:1e000243b222

vanilla 1.3.3 distro, I hope
author Charlie Root
date Thu, 04 Jan 2018 15:50:29 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/pear/net_idna2/tests/Net_IDNA2Test.php	Thu Jan 04 15:50:29 2018 -0500
@@ -0,0 +1,67 @@
+<?php
+require_once 'Net/IDNA2.php';
+
+class Net_IDNA2Test extends PHPUnit_Framework_TestCase
+{
+    /**
+     * Initialise tests
+     *
+     * @return void
+     */
+    public function setUp()
+    {
+        $this->idn = new Net_IDNA2();
+    }
+
+    /**
+     * Test if a complete URL consisting also of port-number etc. will be decoded just fine, test 1
+     *
+     * @return void
+     */
+    public function testShouldDecodePortNumbersFragmentsAndUrisCorrectly1()
+    {
+        $result = $this->idn->decode('http://www.xn--ml-6kctd8d6a.org:8080/test.php?arg1=1&arg2=2#fragment');
+        $this->assertSame("http://www.\xD0\xB5\xD1\x85\xD0\xB0m\xD1\x80l\xD0\xB5.org:8080/test.php?arg1=1&arg2=2#fragment", $result);
+    }
+
+    /**
+     * Test if a complete URL consisting also of port-number etc. will be decoded just fine, test 2
+     *
+     * @return void
+     */
+    public function testShouldDecodePortNumbersFragmentsAndUrisCorrectly2()
+    {
+        $result = $this->idn->decode('http://xn--tst-qla.example.com:8080/test.php?arg1=1&arg2=2#fragment');
+        $this->assertSame("http://täst.example.com:8080/test.php?arg1=1&arg2=2#fragment", $result);
+    }
+
+    /**
+     * Test encoding of German letter Eszett according to the original standard (IDNA2003)
+     *
+     * @return void
+     */
+    public function testEncodingForGermanEszettUsingIDNA2003()
+    {
+        // make sure to use 2003-encoding
+        $this->idn->setParams('version', '2003');
+        $result = $this->idn->encode('http://www.straße.example.com/');
+
+        $this->assertSame("http://www.strasse.example.com/", $result);
+    }
+
+    /**
+     * Test encoding of German letter Eszett according to the "new" standard (IDNA2005/IDNAbis)
+     *
+     * @return void
+     */
+    public function testEncodingForGermanEszettUsingIDNA2008()
+    {
+        // make sure to use 2008-encoding
+        $this->idn->setParams('version', '2008');
+        $result = $this->idn->encode('http://www.straße.example.com/');
+        // switch back for other testcases
+        $this->idn->setParams('version', '2003');
+
+        $this->assertSame("http://www.xn--strae-oqa.example.com/", $result);
+    }
+}