]> diplodocus.org Git - nmh/blobdiff - test/mhshow/test-subpart
uip/folder.c: Rewrite plural test to common form.
[nmh] / test / mhshow / test-subpart
index 28bca944ff9be57c7b61ec410fee4d97150c4e05..2a799772cd840f4c994a61d273acb874fd340277 100755 (executable)
@@ -20,6 +20,24 @@ setup_test
 expected=$MH_TEST_DIR/$$.expected
 actual=$MH_TEST_DIR/$$.actual
 
+mhn_defaults="$MH_INST_DIR${nmhetcdir}/mhn.defaults"
+
+if grep mhfixmsg-format-text/html "${mhn_defaults}" >/dev/null; then
+  can_reformat_texthtml=1
+  if grep 'mhfixmsg-format-text/html.*w3m' "${mhn_defaults}" \
+    >/dev/null; then
+    #### w3m uses $HOME/.w3m/, and creates it if it doesn't exist.  To
+    #### support testing with non-writeable $HOME, and to not leave
+    #### relics from this test if it is writeable but doesn't already
+    #### have a .w3m, and to not depend on whatever is in that if it
+    #### does already exist, overwrite $HOME if using w3m.
+    HOME="$MHTMPDIR"; export HOME
+  fi
+else
+  echo "$0: skipping html checks because no text browser was found"
+  can_reformat_texthtml=0
+fi
+
 # Write message with a text/plain subpart.
 msgfile=`mhpath new`
 msgnum=`basename $msgfile`
@@ -57,6 +75,7 @@ This is the text/plain part.
 EOF
 
 # check it
+start_test 'text/plain part'
 run_prog mhshow -part 1.1 -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : part 1.1
 
@@ -75,7 +94,7 @@ Content-type: multipart/alternative;
  boundary="BoundaryAlternative1"
 
 --BoundaryAlternative1
-Content-type: text/plain; charset=ISO-8859-1; format=flowed
+Content-type: text/plain; charset=US-ASCII; format=flowed
 Content-transfer-encoding: 8bit
 
 This is the body text/plain part.
@@ -108,15 +127,20 @@ This is the final text/plain signature part.
 EOF
 
 # Write the expected output.
-cat > $expected <<EOF
+if [ $can_reformat_texthtml -eq 1 ]; then
+  cat > $expected <<EOF
 [ Message inbox:11 ]
 [ part 1.1.1 - text/html -   111B  ]
 This is the text/html body part.
 EOF
 
-# check it
-run_prog mhshow -part 1.1.1 -form mhl.null $msgnum > $actual 2>&1
-check "$expected" "$actual" : part 1.1.1
+  # check it
+  start_test 'text/html part'
+  # The sed command removes blank lines and leading space that lynx inserts.
+  run_prog mhshow -part 1.1.1 -form mhl.null $msgnum |
+      sed '/^$/D; s/^ *//;' > $actual 2>&1
+  check "$expected" "$actual" : part 1.1.1
+fi
 
 # Write the expected output.
 cat > $expected <<EOF
@@ -126,6 +150,7 @@ This is the body text/plain part.
 EOF
 
 # check it
+start_test 'text/plain alternative part'
 run_prog mhshow -part 1.2 -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : part 1.2
 
@@ -137,6 +162,7 @@ This is the body text/plain part.
 EOF
 
 # check it
+start_test 'conflicting text/plain, part 1 switches'
 run_prog mhshow -prefer text/plain -part 1 -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : part conflicting text/plain, part 1 switches
 
@@ -149,6 +175,7 @@ This is the final text/plain signature part.
 EOF
 
 # check it
+start_test 'final text/plain part'
 run_prog mhshow -part 2 -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : part 2
 
@@ -163,6 +190,7 @@ This is the final text/plain signature part.
 EOF
 
 # check it
+start_test 'all text/plain parts'
 run_prog mhshow -type text/plain -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : type text/plain
 
@@ -176,7 +204,10 @@ _______________________________________________
 This is the final text/plain signature part.
 EOF
 
+start_test 'prefer text/plain'
 run_prog mhshow -prefer text/plain -form mhl.null $msgnum > $actual 2>&1
 check "$expected" "$actual" : prefer text/plain
 
+
+finish_test
 exit $failed