Produced by Araxis Merge on 10/2/2017 1:40:07 PM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | chef-repo.zip\chef-repo\project_cookbooks\mocks\files\default\node-mocks\nodeMockServices-1.3.0.52.zip\node_modules\express\node_modules\proxy-addr\node_modules\ipaddr.js\test | ipaddr.test.coffee | Fri Dec 6 21:52:06 2013 UTC |
| 2 | chef-repo.zip\chef-repo\project_cookbooks\mocks\files\default\node-mocks\nodeMockServices-1.3.0.52.zip\node_modules\express\node_modules\proxy-addr\node_modules\ipaddr.js\test | ipaddr.test.coffee | Mon Oct 2 15:49:10 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 3 | 402 |
| Changed | 2 | 16 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | ipaddr = r equire '.. /lib/ipadd r' | |
| 2 | ||
| 3 | module.exp orts = | |
| 4 | 'should define mai n classes' : (test) - > | |
| 5 | test.o k(ipaddr.I Pv4?, 'def ines IPv4 class') | |
| 6 | test.o k(ipaddr.I Pv6?, 'def ines IPv6 class') | |
| 7 | test.d one() | |
| 8 | ||
| 9 | 'can con struct IPv 4 from oct ets': (tes t) -> | |
| 10 | test.d oesNotThro w -> | |
| 11 | new ipaddr.IPv 4([192, 16 8, 1, 2]) | |
| 12 | test.d one() | |
| 13 | ||
| 14 | 'refuses to constr uct invali d IPv4': ( test) -> | |
| 15 | test.t hrows -> | |
| 16 | new ipaddr.IPv 4([300, 1, 2, 3]) | |
| 17 | test.t hrows -> | |
| 18 | new ipaddr.IPv 4([8, 8, 8 ]) | |
| 19 | test.d one() | |
| 20 | ||
| 21 | 'convert s IPv4 to string cor rectly': ( test) -> | |
| 22 | addr = new ipadd r.IPv4([19 2, 168, 1, 1]) | |
| 23 | test.e qual(addr. toString() , '192.168 .1.1') | |
| 24 | test.d one() | |
| 25 | ||
| 26 | 'returns correct k ind for IP v4': (test ) -> | |
| 27 | addr = new ipadd r.IPv4([1, 2, 3, 4]) | |
| 28 | test.e qual(addr. kind(), 'i pv4') | |
| 29 | test.d one() | |
| 30 | ||
| 31 | 'allows to access IPv4 octet s': (test) -> | |
| 32 | addr = new ipadd r.IPv4([42 , 0, 0, 0] ) | |
| 33 | test.e qual(addr. octets[0], 42) | |
| 34 | test.d one() | |
| 35 | ||
| 36 | 'checks IPv4 addre ss format' : (test) - > | |
| 37 | test.e qual(ipadd r.IPv4.isI Pv4('192.1 68.007.0xa '), true) | |
| 38 | test.e qual(ipadd r.IPv4.isI Pv4('1024. 0.0.1'), true) | |
| 39 | test.e qual(ipadd r.IPv4.isI Pv4('8.0xa .wtf.6'), false) | |
| 40 | test.d one() | |
| 41 | ||
| 42 | 'validat es IPv4 ad dresses': (test) -> | |
| 43 | test.e qual(ipadd r.IPv4.isV alid('192. 168.007.0x a'), true) | |
| 44 | test.e qual(ipadd r.IPv4.isV alid('1024 .0.0.1'), false ) | |
| 45 | test.e qual(ipadd r.IPv4.isV alid('8.0x a.wtf.6'), false ) | |
| 46 | test.d one() | |
| 47 | ||
| 48 | 'parses IPv4 in se veral weir d formats' : (test) - > | |
| 49 | test.d eepEqual(i paddr.IPv4 .parse('19 2.168.1.1' ).octets, [192, 168 , 1, 1]) | |
| 50 | test.d eepEqual(i paddr.IPv4 .parse('0x c0.168.1.1 ').octets, [192, 168 , 1, 1]) | |
| 51 | test.d eepEqual(i paddr.IPv4 .parse('19 2.0250.1.1 ').octets, [192, 168 , 1, 1]) | |
| 52 | test.d eepEqual(i paddr.IPv4 .parse('0x c0a80101') .octets, [192, 168 , 1, 1]) | |
| 53 | test.d eepEqual(i paddr.IPv4 .parse('03 0052000401 ').octets, [192, 168 , 1, 1]) | |
| 54 | test.d eepEqual(i paddr.IPv4 .parse('32 32235777') .octets, [192, 168 , 1, 1]) | |
| 55 | test.d one() | |
| 56 | ||
| 57 | 'barfs a t invalid IPv4': (te st) -> | |
| 58 | test.t hrows -> | |
| 59 | ipad dr.IPv4.pa rse('10.0. 0.wtf') | |
| 60 | test.d one() | |
| 61 | ||
| 62 | 'matches IPv4 CIDR correctly ': (test) -> | |
| 63 | addr = new ipadd r.IPv4([10 , 5, 0, 1] ) | |
| 64 | test.e qual(addr. match(ipad dr.IPv4.pa rse('0.0.0 .0'), 0), true) | |
| 65 | test.e qual(addr. match(ipad dr.IPv4.pa rse('11.0. 0.0'), 8), false) | |
| 66 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 8), true) | |
| 67 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 8), true) | |
| 68 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 8), tr ue) | |
| 69 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 16), t rue) | |
| 70 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 16), f alse) | |
| 71 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 15), t rue) | |
| 72 | test.equal (addr.matc h(ipaddr.I Pv4.parse( ' IP '), 32), f alse) | |
| 73 | test.e qual(addr. match(addr , 32), tru e) | |
| 74 | test.d one() | |
| 75 | ||
| 76 | 'detects reserved IPv4 netwo rks': (tes t) -> | |
| 77 | test.equal (ipaddr.IP v4.parse(' IP ').range() , 'private') | |
| 78 | test.e qual(ipadd r.IPv4.par se('192.16 8.2.1').ra nge(), 'private' ) | |
| 79 | test.e qual(ipadd r.IPv4.par se('224.10 0.0.1').ra nge(), 'multicas t') | |
| 80 | test.e qual(ipadd r.IPv4.par se('169.25 4.15.0').r ange(), 'linkLoca l') | |
| 81 | test.e qual(ipadd r.IPv4.par se('127.1. 1.1').rang e(), 'loopback ') | |
| 82 | test.e qual(ipadd r.IPv4.par se('255.25 5.255.255' ).range(), 'broadcas t') | |
| 83 | test.e qual(ipadd r.IPv4.par se('240.1. 2.3').rang e(), 'reserved ') | |
| 84 | test.e qual(ipadd r.IPv4.par se('8.8.8. 8').range( ), 'unicast' ) | |
| 85 | test.d one() | |
| 86 | ||
| 87 | 'can con struct IPv 6 from par ts': (test ) -> | |
| 88 | test.d oesNotThro w -> | |
| 89 | new ipaddr.IPv 6([0x2001, 0xdb8, 0x f53a, 0, 0 , 0, 0, 1] ) | |
| 90 | test.d one() | |
| 91 | ||
| 92 | 'refuses to constr uct invali d IPv6': ( test) -> | |
| 93 | test.t hrows -> | |
| 94 | new ipaddr.IPv 6([0xfffff , 0, 0, 0, 0, 0, 0, 1]) | |
| 95 | test.t hrows -> | |
| 96 | new ipaddr.IPv 6([0xfffff , 0, 0, 0, 0, 0, 1]) | |
| 97 | test.d one() | |
| 98 | ||
| 99 | 'convert s IPv6 to string cor rectly': ( test) -> | |
| 100 | addr = new ipadd r.IPv6([0x 2001, 0xdb 8, 0xf53a, 0, 0, 0, 0, 1]) | |
| 101 | test.e qual(addr. toNormaliz edString() , '2001:db 8:f53a:0:0 :0:0:1') | |
| 102 | test.e qual(addr. toString() , '2001:db 8:f53a::1' ) | |
| 103 | test.e qual(new i paddr.IPv6 ([0, 0, 0, 0, 0, 0, 0, 1]).toS tring(), ' ::1') | |
| 104 | test.e qual(new i paddr.IPv6 ([0x2001, 0xdb8, 0, 0, 0, 0, 0 , 0]).toSt ring(), '2 001:db8::' ) | |
| 105 | test.d one() | |
| 106 | ||
| 107 | 'returns correct k ind for IP v6': (test ) -> | |
| 108 | addr = new ipadd r.IPv6([0x 2001, 0xdb 8, 0xf53a, 0, 0, 0, 0, 1]) | |
| 109 | test.e qual(addr. kind(), 'i pv6') | |
| 110 | test.d one() | |
| 111 | ||
| 112 | 'allows to access IPv6 addre ss parts': (test) -> | |
| 113 | addr = new ipadd r.IPv6([0x 2001, 0xdb 8, 0xf53a, 0, 0, 42, 0, 1]) | |
| 114 | test.e qual(addr. parts[5], 42) | |
| 115 | test.d one() | |
| 116 | ||
| 117 | 'checks IPv6 addre ss format' : (test) - > | |
| 118 | test.e qual(ipadd r.IPv6.isI Pv6('2001: db8:F53A:: 1'), t rue) | |
| 119 | test.e qual(ipadd r.IPv6.isI Pv6('20000 1::1'), t rue) | |
| 120 | test.e qual(ipadd r.IPv6.isI Pv6('::fff f:192.168. 1.1'), t rue) | |
| 121 | test.e qual(ipadd r.IPv6.isI Pv6('::fff f:300.168. 1.1'), t rue) | |
| 122 | test.e qual(ipadd r.IPv6.isI Pv6('::fff f:300.168. 1.1:0'), f alse) | |
| 123 | test.e qual(ipadd r.IPv6.isI Pv6('fe80: :wtf'), f alse) | |
| 124 | test.d one() | |
| 125 | ||
| 126 | 'validat es IPv6 ad dresses': (test) -> | |
| 127 | test.e qual(ipadd r.IPv6.isV alid('2001 :db8:F53A: :1'), t rue) | |
| 128 | test.e qual(ipadd r.IPv6.isV alid('2000 01::1'), f alse) | |
| 129 | test.e qual(ipadd r.IPv6.isV alid('::ff ff:192.168 .1.1'), true) | |
| 130 | test.e qual(ipadd r.IPv6.isV alid('::ff ff:300.168 .1.1'), false) | |
| 131 | test.e qual(ipadd r.IPv6.isV alid('::ff ff:300.168 .1.1:0'), false) | |
| 132 | test.e qual(ipadd r.IPv6.isV alid('2001 :db8::F53A ::1'), f alse) | |
| 133 | test.e qual(ipadd r.IPv6.isV alid('fe80 ::wtf'), f alse) | |
| 134 | test.d one() | |
| 135 | ||
| 136 | 'parses IPv6 in di fferent fo rmats': (t est) -> | |
| 137 | test.d eepEqual(i paddr.IPv6 .parse('20 01:db8:F53 A:0:0:0:0: 1').parts, [0x2001, 0xdb8, 0xf 53a, 0, 0, 0, 0, 1]) | |
| 138 | test.d eepEqual(i paddr.IPv6 .parse('fe 80::10').p arts, [0xf e80, 0, 0, 0, 0, 0, 0, 0x10]) | |
| 139 | test.d eepEqual(i paddr.IPv6 .parse('20 01:db8:F53 A::').part s, [0x2001 , 0xdb8, 0 xf53a, 0, 0, 0, 0, 0 ]) | |
| 140 | test.d eepEqual(i paddr.IPv6 .parse(':: 1').parts, [0, 0, 0, 0, 0, 0, 0, 1]) | |
| 141 | test.d eepEqual(i paddr.IPv6 .parse(':: ').parts, [0, 0, 0, 0, 0, 0, 0 , 0]) | |
| 142 | test.d one() | |
| 143 | ||
| 144 | 'barfs a t invalid IPv6': (te st) -> | |
| 145 | test.t hrows -> | |
| 146 | ipad dr.IPv6.pa rse('fe80: :0::1') | |
| 147 | test.d one() | |
| 148 | ||
| 149 | 'matches IPv6 CIDR correctly ': (test) -> | |
| 150 | addr = ipaddr.IP v6.parse(' 2001:db8:f 53a::1') | |
| 151 | test.e qual(addr. match(ipad dr.IPv6.pa rse('::'), 0), true) | |
| 152 | test.e qual(addr. match(ipad dr.IPv6.pa rse('2001: db8:f53a:: 1:1'), 64) , true) | |
| 153 | test.e qual(addr. match(ipad dr.IPv6.pa rse('2001: db8:f53b:: 1:1'), 48) , false) | |
| 154 | test.e qual(addr. match(ipad dr.IPv6.pa rse('2001: db8:f531:: 1:1'), 44) , true) | |
| 155 | test.e qual(addr. match(ipad dr.IPv6.pa rse('2001: db8:f500:: 1'), 40), true) | |
| 156 | test.e qual(addr. match(ipad dr.IPv6.pa rse('2001: db9:f500:: 1'), 40), false) | |
| 157 | test.e qual(addr. match(addr , 128), tr ue) | |
| 158 | test.d one() | |
| 159 | ||
| 160 | 'convert s between IPv4-mappe d IPv6 add resses and IPv4 addr esses': (t est) -> | |
| 161 | addr = ipaddr.IP v4.parse(' 77.88.21.1 1') | |
| 162 | mapped = addr.to IPv4Mapped Address() | |
| 163 | test.d eepEqual(m apped.part s, [0, 0, 0, 0, 0, 0 xffff, 0x4 d58, 0x150 b]) | |
| 164 | test.d eepEqual(m apped.toIP v4Address( ).octets, addr.octet s) | |
| 165 | test.d one() | |
| 166 | ||
| 167 | 'refuses to conver t non-IPv4 -mapped IP v6 address to IPv4 a ddress': ( test) -> | |
| 168 | test.t hrows -> | |
| 169 | ipad dr.IPv6.pa rse('2001: db8::1').t oIPv4Addre ss() | |
| 170 | test.d one() | |
| 171 | ||
| 172 | 'detects reserved IPv6 netwo rks': (tes t) -> | |
| 173 | test.e qual(ipadd r.IPv6.par se('::').r ange(), 'unspecif ied') | |
| 174 | test.e qual(ipadd r.IPv6.par se('fe80:: 1234:5678: abcd:0123' ).range(), 'linkLoca l') | |
| 175 | test.e qual(ipadd r.IPv6.par se('ff00:: 1234').ran ge(), 'multicas t') | |
| 176 | test.e qual(ipadd r.IPv6.par se('::1'). range(), 'loopback ') | |
| 177 | test.e qual(ipadd r.IPv6.par se('fc00:: ').range() , 'uniqueLo cal') | |
| 178 | test.e qual(ipadd r.IPv6.par se('::ffff :192.168.1 .10').rang e(), 'ipv4Mapp ed') | |
| 179 | test.e qual(ipadd r.IPv6.par se('::ffff :0:192.168 .1.10').ra nge(), 'rfc6145' ) | |
| 180 | test.e qual(ipadd r.IPv6.par se('64:ff9 b::1234'). range(), 'rfc6052' ) | |
| 181 | test.e qual(ipadd r.IPv6.par se('2002:1 f63:45e8:: 1').range( ), '6to4') | |
| 182 | test.e qual(ipadd r.IPv6.par se('2001:: 4242').ran ge(), 'teredo') | |
| 183 | test.e qual(ipadd r.IPv6.par se('2001:d b8::3210') .range(), 'reserved ') | |
| 184 | test.e qual(ipadd r.IPv6.par se('2001:4 70:8:66::1 ').range() , 'unicast' ) | |
| 185 | test.d one() | |
| 186 | ||
| 187 | 'is able to determ ine IP add ress type' : (test) - > | |
| 188 | test.e qual(ipadd r.parse('8 .8.8.8').k ind(), 'ip v4') | |
| 189 | test.e qual(ipadd r.parse('2 001:db8:33 12::1').ki nd(), 'ipv 6') | |
| 190 | test.d one() | |
| 191 | ||
| 192 | 'throws an error i f tried to parse an invalid ad dress': (t est) -> | |
| 193 | test.t hrows -> | |
| 194 | ipad dr.parse(' ::some.non sense') | |
| 195 | test.d one() | |
| 196 | ||
| 197 | 'correct ly process es IPv4-ma pped addre sses': (te st) -> | |
| 198 | test.e qual(ipadd r.process( '8.8.8.8') .kind(), ' ipv4') | |
| 199 | test.e qual(ipadd r.process( '2001:db8: 3312::1'). kind(), 'i pv6') | |
| 200 | test.e qual(ipadd r.process( '::ffff:19 2.168.1.1' ).kind(), 'ipv4') | |
| 201 | test.d one() | |
| 202 | ||
| 203 | 'correct ly convert s IPv6 and IPv4 addr esses to b yte arrays ': (test) -> | |
| 204 | test.d eepEqual(i paddr.pars e('1.2.3.4 ').toByteA rray(), | |
| 205 | [0x1, 0x2, 0x3, 0x4] ); | |
| 206 | # Fuck yeah. The first byt e of Googl e's IPv6 a ddress is 42. 42! | |
| 207 | test.d eepEqual(i paddr.pars e('2a00:14 50:8007::6 8').toByte Array(), | |
| 208 | [42, 0x00, 0x14, 0x5 0, 0x80, 0 x07, 0x00, 0x00, 0x0 0, 0x00, 0 x00, 0x00, 0x00, 0x0 0, 0x00, 0 x68 ]) | |
| 209 | test.d one() |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.