@@ -18,6 +18,10 @@ const BlockService = require('ipfs-block-service')
18
18
const Block = require ( 'ipfs-block' )
19
19
const CID = require ( 'cids' )
20
20
const bs58 = require ( 'bs58' )
21
+ const loadFixture = require ( 'aegir/fixtures' )
22
+
23
+ const testBlockNamedLinks = loadFixture ( __dirname , 'data/test-block-named-links' )
24
+ const testBlockUnnamedLinks = loadFixture ( __dirname , 'data/test-block-unnamed-links' )
21
25
22
26
module . exports = ( repo ) => {
23
27
describe ( 'DAGNode' , ( ) => {
@@ -44,11 +48,11 @@ module.exports = (repo) => {
44
48
45
49
it ( 'create a node with links' , ( done ) => {
46
50
const l1 = [ {
47
- Name : 'some link' ,
51
+ Name : 'some other link' ,
48
52
Hash : 'QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39V' ,
49
53
Size : 8
50
54
} , {
51
- Name : 'some other link' ,
55
+ Name : 'some link' ,
52
56
Hash : 'QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39U' ,
53
57
Size : 10
54
58
} ]
@@ -73,14 +77,30 @@ module.exports = (repo) => {
73
77
DAGNode . create ( someData , l2 , ( err , node ) => {
74
78
expect ( err ) . to . not . exist
75
79
node2 = node
76
- expect ( node2 . links ) . to . eql ( l2 )
80
+ expect ( node2 . links ) . to . eql ( [ l2 [ 1 ] , l2 [ 0 ] ] )
77
81
cb ( )
78
82
} )
79
83
}
80
84
] , ( err ) => {
81
85
expect ( err ) . to . not . exist
82
86
expect ( node1 . toJSON ( ) ) . to . eql ( node2 . toJSON ( ) )
83
87
expect ( node1 . serialized ) . to . eql ( node2 . serialized )
88
+
89
+ // check sorting
90
+ expect ( node1 . links . map ( ( l ) => l . name ) ) . to . be . eql ( [
91
+ 'some link' ,
92
+ 'some other link'
93
+ ] )
94
+ done ( )
95
+ } )
96
+ } )
97
+
98
+ it ( 'create with empty link name' , ( done ) => {
99
+ DAGNode . create ( new Buffer ( 'hello' ) , [
100
+ new DAGLink ( '' , 10 , 'QmXg9Pp2ytZ14xgmQjYEiHjVjMFXzCVVEcRTWJBmLgR39U' )
101
+ ] , ( err , node ) => {
102
+ expect ( err ) . to . not . exist
103
+ expect ( node . links [ 0 ] . name ) . to . be . eql ( '' )
84
104
done ( )
85
105
} )
86
106
} )
@@ -134,7 +154,7 @@ module.exports = (repo) => {
134
154
. to . eql ( node2 . multihash )
135
155
expect ( node1b . links [ 0 ] . size )
136
156
. to . eql ( node2 . size )
137
- expect ( node1b . links [ 0 ] . name ) . to . not . exist
157
+ expect ( node1b . links [ 0 ] . name ) . to . be . eql ( '' )
138
158
cb ( )
139
159
} )
140
160
}
@@ -170,7 +190,7 @@ module.exports = (repo) => {
170
190
. to . eql ( node2 . multihash )
171
191
expect ( node1b . links [ 0 ] . size )
172
192
. to . eql ( node2 . size )
173
- expect ( node1b . links [ 0 ] . name ) . to . not . exist
193
+ expect ( node1b . links [ 0 ] . name ) . to . be . eql ( '' )
174
194
cb ( )
175
195
} )
176
196
}
@@ -206,7 +226,7 @@ module.exports = (repo) => {
206
226
. to . eql ( node2 . multihash )
207
227
expect ( node1b . links [ 0 ] . size )
208
228
. to . eql ( node2 . size )
209
- expect ( node1b . links [ 0 ] . name ) . to . not . exist
229
+ expect ( node1b . links [ 0 ] . name ) . to . be . eql ( '' )
210
230
cb ( )
211
231
} )
212
232
}
@@ -391,7 +411,7 @@ module.exports = (repo) => {
391
411
} )
392
412
} )
393
413
394
- it ( 'read a go-ipfs marshalled node and assert it gets read correctly ' , ( done ) => {
414
+ it ( 'deserialize go-ipfs block from ipldResolver ' , ( done ) => {
395
415
const bs = new BlockService ( repo )
396
416
397
417
const cidStr = 'QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG'
@@ -408,6 +428,91 @@ module.exports = (repo) => {
408
428
} )
409
429
} )
410
430
431
+ it ( 'deserialize go-ipfs block with unnamed links' , ( done ) => {
432
+ const buf = testBlockUnnamedLinks
433
+
434
+ const expectedLinks = [
435
+ {
436
+ 'name' : '' ,
437
+ 'multihash' : 'QmSbCgdsX12C4KDw3PDmpBN9iCzS87a5DjgSCoW9esqzXk' ,
438
+ 'size' : 45623854
439
+ } ,
440
+ {
441
+ 'name' : '' ,
442
+ 'multihash' : 'Qma4GxWNhywSvWFzPKtEswPGqeZ9mLs2Kt76JuBq9g3fi2' ,
443
+ 'size' : 45623854
444
+ } ,
445
+ {
446
+ 'name' : '' ,
447
+ 'multihash' : 'QmQfyxyys7a1e3mpz9XsntSsTGc8VgpjPj5BF1a1CGdGNc' ,
448
+ 'size' : 45623854
449
+ } ,
450
+ {
451
+ 'name' : '' ,
452
+ 'multihash' : 'QmSh2wTTZT4N8fuSeCFw7wterzdqbE93j1XDhfN3vQHzDV' ,
453
+ 'size' : 45623854
454
+ } ,
455
+ {
456
+ 'name' : '' ,
457
+ 'multihash' : 'QmVXsSVjwxMsCwKRCUxEkGb4f4B98gXVy3ih3v4otvcURK' ,
458
+ 'size' : 45623854
459
+ } ,
460
+ {
461
+ 'name' : '' ,
462
+ 'multihash' : 'QmZjhH97MEYwQXzCqSQbdjGDhXWuwW4RyikR24pNqytWLj' ,
463
+ 'size' : 45623854
464
+ } ,
465
+ {
466
+ 'name' : '' ,
467
+ 'multihash' : 'QmRs6U5YirCqC7taTynz3x2GNaHJZ3jDvMVAzaiXppwmNJ' ,
468
+ 'size' : 32538395
469
+ }
470
+ ]
471
+
472
+ dagPB . util . deserialize ( buf , ( err , node ) => {
473
+ expect ( err ) . to . not . exist
474
+ const nodeJSON = node . toJSON ( )
475
+ expect ( nodeJSON . links ) . to . eql ( expectedLinks )
476
+ expect ( nodeJSON . multihash ) . to . eql ( 'QmQqy2SiEkKgr2cw5UbQ93TtLKEMsD8TdcWggR8q9JabjX' )
477
+ done ( )
478
+ } )
479
+ } )
480
+
481
+ it ( 'deserialize go-ipfs block with named links' , ( done ) => {
482
+ const buf = testBlockNamedLinks
483
+
484
+ const expectedLinks = [
485
+ {
486
+ 'name' : 'audio_only.m4a' ,
487
+ 'multihash' : 'QmaUAwAQJNtvUdJB42qNbTTgDpzPYD1qdsKNtctM5i7DGB' ,
488
+ 'size' : 23319629
489
+ } ,
490
+ {
491
+ 'name' : 'chat.txt' ,
492
+ 'multihash' : 'QmNVrxbB25cKTRuKg2DuhUmBVEK9NmCwWEHtsHPV6YutHw' ,
493
+ 'size' : 996
494
+ } ,
495
+ {
496
+ 'name' : 'playback.m3u' ,
497
+ 'multihash' : 'QmUcjKzDLXBPmB6BKHeKSh6ZoFZjss4XDhMRdLYRVuvVfu' ,
498
+ 'size' : 116
499
+ } ,
500
+ {
501
+ 'name' : 'zoom_0.mp4' ,
502
+ 'multihash' : 'QmQqy2SiEkKgr2cw5UbQ93TtLKEMsD8TdcWggR8q9JabjX' ,
503
+ 'size' : 306281879
504
+ }
505
+ ]
506
+
507
+ dagPB . util . deserialize ( buf , ( err , node ) => {
508
+ expect ( err ) . to . not . exist
509
+ const nodeJSON = node . toJSON ( )
510
+ expect ( nodeJSON . links ) . to . eql ( expectedLinks )
511
+ expect ( nodeJSON . multihash ) . to . eql ( 'QmbSAC58x1tsuPBAoarwGuTQAgghKvdbKSBC8yp5gKCj5M' )
512
+ done ( )
513
+ } )
514
+ } )
515
+
411
516
it ( 'dagNode.toJSON with empty Node' , ( done ) => {
412
517
DAGNode . create ( new Buffer ( 0 ) , ( err , node ) => {
413
518
expect ( err ) . to . not . exist
0 commit comments