# unzip tests.

# Note: since "master key", Android uses libziparchive for all zip file
# handling, and that scans the whole central directory immediately. Not only
# lookups by name but also iteration is implemented using the resulting hash
# table, meaning that any test that makes assumptions about iteration order
# will fail on Android.

name: unzip -l
command: unzip -l $FILES/example.zip d1/d2/x.txt
after: [ ! -f d1/d2/x.txt ]
expected-stdout:
	Archive:  $FILES/example.zip
	  Length      Date    Time    Name
	---------  ---------- -----   ----
	     1024  2017-06-04 08:45   d1/d2/x.txt
	---------                     -------
	     1024                     1 file
---

name: unzip -lq
command: unzip -lq $FILES/example.zip d1/d2/x.txt
after: [ ! -f d1/d2/x.txt ]
expected-stdout:
	  Length      Date    Time    Name
	---------  ---------- -----   ----
	     1024  2017-06-04 08:45   d1/d2/x.txt
	---------                     -------
	     1024                     1 file
---

name: unzip -lv
command: unzip -lv $FILES/example.zip d1/d2/x.txt
after: [ ! -f d1/d2/file ]
expected-stdout:
	Archive:  $FILES/example.zip
	 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
	--------  ------  ------- ---- ---------- ----- --------  ----
	    1024  Defl:N       11  99% 2017-06-04 08:45 48d7f063  d1/d2/x.txt
	--------          -------  ---                            -------
	    1024               11  99%                            1 file
---

name: unzip -v
command: unzip -v $FILES/example.zip d1/d2/x.txt
after: [ ! -f d1/d2/file ]
expected-stdout:
	Archive:  $FILES/example.zip
	 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
	--------  ------  ------- ---- ---------- ----- --------  ----
	    1024  Defl:N       11  99% 2017-06-04 08:45 48d7f063  d1/d2/x.txt
	--------          -------  ---                            -------
	    1024               11  99%                            1 file
---

name: unzip one file
command: unzip -q $FILES/example.zip d1/d2/a.txt && cat d1/d2/a.txt
after: [ ! -f d1/d2/b.txt ]
expected-stdout:
	a
---

name: unzip all files
command: unzip -q $FILES/example.zip
after: [ -f d1/d2/a.txt ]
after: [ -f d1/d2/b.txt ]
after: [ -f d1/d2/c.txt ]
after: [ -f d1/d2/empty.txt ]
after: [ -f d1/d2/x.txt ]
after: [ -d d1/d2/dir ]
expected-stdout:
---

name: unzip -o
before: mkdir -p d1/d2
before: echo b > d1/d2/a.txt
command: unzip -q -o $FILES/example.zip d1/d2/a.txt && cat d1/d2/a.txt
expected-stdout:
	a
---

name: unzip -n
before: mkdir -p d1/d2
before: echo b > d1/d2/a.txt
command: unzip -q -n $FILES/example.zip d1/d2/a.txt && cat d1/d2/a.txt
expected-stdout:
	b
---

# The reference implementation will create *one* level of missing directories,
# so this succeeds.
name: unzip -d shallow non-existent
command: unzip -q -d will-be-created $FILES/example.zip d1/d2/a.txt
after: [ -d will-be-created ]
after: [ -f will-be-created/d1/d2/a.txt ]
---

# The reference implementation will *only* create one level of missing
# directories, so this fails.
name: unzip -d deep non-existent
command: unzip -q -d oh-no/will-not-be-created $FILES/example.zip d1/d2/a.txt 2> stderr ; echo $? > status
after: [ ! -d oh-no ]
after: [ ! -d oh-no/will-not-be-created ]
after: [ ! -f oh-no/will-not-be-created/d1/d2/a.txt ]
after: grep -q "oh-no/will-not-be-created" stderr
after: grep -q "No such file or directory" stderr
# The reference implementation has *lots* of non-zero exit values, but we stick to 0 and 1.
after: [ $(cat status) -gt 0 ]
---

name: unzip -d exists
before: mkdir dir
command: unzip -q -d dir $FILES/example.zip d1/d2/a.txt && cat dir/d1/d2/a.txt
after: [ ! -f d1/d2/a.txt ]
expected-stdout:
	a
---

name: unzip -p
command: unzip -p $FILES/example.zip d1/d2/a.txt
after: [ ! -f d1/d2/a.txt ]
expected-stdout:
	a
---

name: unzip -x FILE...
# Note: the RI ignores -x DIR for some reason, but it's not obvious we should.
command: unzip -q $FILES/example.zip -x d1/d2/a.txt d1/d2/b.txt d1/d2/empty.txt d1/d2/x.txt && cat d1/d2/c.txt
after: [ ! -f d1/d2/a.txt ]
after: [ ! -f d1/d2/b.txt ]
after: [ ! -f d1/d2/empty.txt ]
after: [ ! -f d1/d2/x.txt ]
after: [ -d d1/d2/dir ]
expected-stdout:
	ccc
---

name: unzip FILE -x FILE...
command: unzip -q $FILES/example.zip d1/d2/a.txt d1/d2/b.txt -x d1/d2/a.txt && cat d1/d2/b.txt
after: [ ! -f d1/d2/a.txt ]
after: [ -f d1/d2/b.txt ]
after: [ ! -f d1/d2/c.txt ]
after: [ ! -f d1/d2/empty.txt ]
after: [ ! -f d1/d2/x.txt ]
after: [ ! -d d1/d2/dir ]
expected-stdout:
	bb
---

name: unzip -j
# Note: the RI outputs a bunch of trailing whitespace for some reason.
command: unzip -j $FILES/example.zip d1/d2/x.txt | sed 's/ *$//'
after: [ ! -f d1/d2/x.txt ]
after: [ -f x.txt ]
expected-stdout:
	Archive:  $FILES/example.zip
	  inflating: x.txt
---

name: unzip -t one
command: unzip -t $FILES/example.zip d1/d2/x.txt
after: [ ! -d d1 ]
expected-stdout:
	Archive:  $FILES/example.zip
	    testing: d1/d2/x.txt              OK
	No errors detected in $FILES/example.zip for the 1 file tested.
---

name: unzip -tq all
command: unzip -tq $FILES/example.zip
after: [ ! -f d1/d2/x.txt ]
expected-stdout:
	No errors detected in compressed data of $FILES/example.zip.
---

name: unzip -tq one
command: unzip -tq $FILES/example.zip d1/d2/x.txt
after: [ ! -f d1/d2/x.txt ]
expected-stdout:
	No errors detected in $FILES/example.zip for the 1 file tested.

---

name: unzip -tq two
command: unzip -tq $FILES/example.zip d1/d2/x.txt d1/d2/b.txt
after: [ ! -f d1/d2/x.txt ]
expected-stdout:
	No errors detected in $FILES/example.zip for the 2 files tested.

---

name: unzip -t one bad
command: unzip -t $FILES/bad_crc.zip a.txt
after: [ ! -f a.txt ]
expected-stdout:
	Archive:  $FILES/bad_crc.zip
	    testing: a.txt                    bad CRC 950821c5  (should be 950821e5)
	At least one error was detected in $FILES/bad_crc.zip.
expected-exit-status: 2

#---
#
# TODO: test requires file iteration order.
#name: unzip -tq all bad
#command: unzip -tq $FILES/bad_crc.zip
#after: [ ! -f a.txt ]
#after: [ ! -f b.txt ]
#expected-stdout:
#	a.txt                   bad CRC 950821c5  (should be 950821e5)
#	b.txt                   bad CRC 5912b84d  (should be 5912b84e)
#	At least one error was detected in $FILES/bad_crc.zip.
#expected-exit-status: 2

---

name: unzip -tq one bad
command: unzip -tq $FILES/bad_crc.zip a.txt
after: [ ! -f a.txt ]
expected-stdout:
	a.txt                   bad CRC 950821c5  (should be 950821e5)
	At least one error was detected in $FILES/bad_crc.zip.
expected-exit-status: 2

#---
#
# TODO: test requires file iteration order.
#name: unzip -tq two bad
#command: unzip -tq $FILES/bad_crc.zip a.txt b.txt
#after: [ ! -f a.txt ]
#after: [ ! -f b.txt ]
#expected-stdout:
#	a.txt                   bad CRC 950821c5  (should be 950821e5)
#	b.txt                   bad CRC 5912b84d  (should be 5912b84e)
#	At least one error was detected in $FILES/bad_crc.zip.
#expected-exit-status: 2

---
