summaryrefslogtreecommitdiff
path: root/net/pear-Net_IPv6/files/patch-tests_AllTests.php
blob: cfdf881b41b5a93aea0393aedca5cb13f40c22ec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
--- tests/AllTests.php.orig	2022-08-11 19:31:42 UTC
+++ tests/AllTests.php
@@ -19,6 +19,7 @@ require_once "Net/IPv6.php";
 // $Id: AllTests.php 340792 2016-10-29 14:56:52Z alexmerz $
 
 require_once "Net/IPv6.php";
+use PHPUnit\Framework\TestCase;
 
 /**
 * This testcases tests for several bugs and general topics
@@ -28,7 +29,7 @@ require_once "Net/IPv6.php";
 * @version $Id: AllTests.php 340792 2016-10-29 14:56:52Z alexmerz $
 * @access  public
 */
-class NetIPv6Test extends PHPUnit_Framework_TestCase {
+class AllTests extends TestCase {
 
     protected $ip;
 
@@ -39,7 +40,7 @@ class NetIPv6Test extends PHPUnit_Framework_TestCase {
         return $method;
     }
 
-    public function setUp() {
+    public function setUp(): void {
         $this->ip = new Net_IPv6();
     }
 
@@ -742,6 +743,109 @@ class NetIPv6Test extends PHPUnit_Framework_TestCase {
         $netmask = '::ffff/96';
         $testip = '0:0:0:0:0:ffff:c000:22f';
         $this->assertTrue(Net_IPv6::isInNetmask($testip, $netmask));
+    }
+
+    /**
+     * tests if checkIPv6 can handle addresses with zone
+     * @author Reid Linnemann <rlinnemann@netgate.com>
+     */
+    public function testCheckIPv6WithZone() {
+        $testip = 'fe80::de:ad:be:ef%zone.name';
+        $is = $this->ip->checkIPv6($testip);
+
+        $this->assertTrue($is);
+    }
+
+    /**
+     * tests if splitV64 can handle addresses with zone
+     * @author Reid Linnemann <rlinnemann@netgate.com>
+     */
+    public function testSplitV64WithZone() {
+        $testip = 'fe80::de:ad:be:ef%zone.name';
+        $zonelessip = 'fe80::de:ad:be:ef';
+        $items = $this->ip->SplitV64($testip, false);
+
+        $this->assertEquals(2, count($items));
+        $this->assertEmpty($items[1]);
+        $this->assertEquals($zonelessip, $items[0]);
+    }
+
+    /**
+     * tests zoned address compression
+     * @author Reid Linnemann
+     */
+    public function testCompressWithZone() {
+        $uncompressedip = 'fe80:0:0:0:de:ad:be:ef%zone.name';
+        $compressedip = 'fe80::de:ad:be:ef%zone.name';
+
+        $testip = $this->ip->compress($uncompressedip, false);
+
+        $this->assertEquals($compressedip, $testip);
+    }
+
+    /**
+     * tests zoned address compression with IPv4 part
+     * @author Reid Linnemann
+     */
+    public function testCompressWithIPv4AndZone() {
+        $uncompressedip = 'fe80:0:0:0:dead:beef:172.10.1.1%zone.name';
+        $compressedip = 'fe80::dead:beef:172.10.1.1%zone.name';
+
+        $testip = $this->ip->compress($uncompressedip, false);
+
+        $this->assertEquals($compressedip, $testip);
+    }
+
+    /**
+     * tests zoned address with prefix compression with IPv4 part
+     * @author Reid Linnemann
+     */
+    public function testCompressWithIPv4AndZoneAndPrefix() {
+        $uncompressedip = 'fe80:0:0:0:dead:beef:172.10.1.1%zone.name/64';
+        $compressedip = 'fe80::dead:beef:172.10.1.1%zone.name/64';
+
+        $testip = $this->ip->compress($uncompressedip, false);
+
+        $this->assertEquals($compressedip, $testip);
+    }
+
+    /**
+     * tests zoned address uncompression
+     * @author Reid Linnemann
+     */
+    public function testUncompressWithZone() {
+        $uncompressedip = 'fe80:0:0:0:de:ad:be:ef%zone.name';
+        $compressedip = 'fe80::de:ad:be:ef%zone.name';
+
+        $testip = $this->ip->uncompress($compressedip, false);
+
+        $this->assertEquals($uncompressedip, $testip);
+    }
+
+    /**
+     * tests zoned address uncompression with IPv4 part
+     * @author Reid Linnemann
+     */
+    public function testUncompressWithIPv4AndZone() {
+        $uncompressedip = 'fe80:0:0:0:dead:beef:172.10.1.1%zone.name';
+        $compressedip = 'fe80::dead:beef:172.10.1.1%zone.name';
+
+        $testip = $this->ip->uncompress($compressedip, false);
+
+        $this->assertEquals($uncompressedip, $testip);
+    }
+
+    /**
+     * tests zoned address with prefix uncompression with IPv4 part
+     * @author Reid Linnemann
+     */
+    public function testUncompressWithIPv4AndZoneAndPrefix() {
+        $uncompressedip = 'fe80:0:0:0:dead:beef:172.10.1.1%zone.name/64';
+        $compressedip = 'fe80::dead:beef:172.10.1.1%zone.name/64';
+
+        $testip = $this->ip->uncompress($compressedip, false);
+
+        $this->assertEquals($uncompressedip, $testip);
     }
 
-}
\ No newline at end of file
+}