107. EPMO Open Source Coordination Office Redaction File Detail Report

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.

107.1 Files compared

# 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

107.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 402
Changed 2 16
Inserted 0 0
Removed 0 0

107.3 Comparison options

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

107.4 Active regular expressions

No regular expressions were active.

107.5 Comparison detail

  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()