t0272-urlstore.sh 1.89 KB
Newer Older
Kevin Atkinson's avatar
Kevin Atkinson committed
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
#!/usr/bin/env bash
#
# Copyright (c) 2017 Jeromy Johnson
# MIT Licensed; see the LICENSE file in this repository.
#

test_description="Test out the urlstore functionality"

. lib/test-lib.sh

test_init_ipfs

test_expect_success "enable urlstore" '
  ipfs config --json Experimental.UrlstoreEnabled true
'

test_expect_success "create some random files" '
  random 2222     7 > file1 &&
  random 50000000 7 > file2 
'

test_expect_success "add files using trickle dag format without raw leaves" '
  HASH1a=$(ipfs add -q --trickle --raw-leaves=false file1) &&
  HASH2a=$(ipfs add -q --trickle --raw-leaves=false file2)
'
test_launch_ipfs_daemon --offline

test_expect_success "make sure files can be retrived via the gateway" '
  curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual &&
  test_cmp file1 file1.actual &&
  curl http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual &&
  test_cmp file2 file2.actual 
'

test_expect_success "add files using gateway address via url store" '
  HASH1=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a) &&
  HASH2=$(ipfs urlstore add http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a)
'

test_expect_success "make sure hashes are different" '
  echo $HASH1a $HASH1
  echo $HASH2a $HASH2
'

test_expect_success "get files via urlstore" '
  ipfs get $HASH1 -o file1.actual &&
  test_cmp file1 file1.actual &&
  ipfs get $HASH2 -o file2.actual &&
  test_cmp file2 file2.actual
'

test_expect_success "remove original hashes from local gateway" '
  ipfs pin rm $HASH1a $HASH2a &&
  ipfs repo gc
'

test_expect_success "gatway no longer has files" '
  test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH1a -o file1.actual
  test_must_fail curl -f http://127.0.0.1:$GWAY_PORT/ipfs/$HASH2a -o file2.actual
'

test_expect_success "files can not be retrieved via the urlstore" '
  test_must_fail ipfs get $HASH1
  test_must_fail ipfs get $HASH2
'

test_kill_ipfs_daemon

test_done