I want to ensure that any changes don't ultimately break the behavior
of email-print-mime-structure.

Signed-off-by: Daniel Kahn Gillmor <d...@fifthhorseman.net>
---
 Makefile                                      |  3 +++
 debian/control                                |  2 ++
 tests/email-print-mime-structure.sh           |  8 ++++++
 .../alternative.eml                           | 18 +++++++++++++
 .../alternative.out                           |  3 +++
 .../email-print-mime-structure/attachment.eml | 26 +++++++++++++++++++
 .../email-print-mime-structure/attachment.out |  5 ++++
 tests/email-print-mime-structure/simple.eml   |  9 +++++++
 tests/email-print-mime-structure/simple.out   |  1 +
 9 files changed, 75 insertions(+)
 create mode 100755 tests/email-print-mime-structure.sh
 create mode 100644 tests/email-print-mime-structure/alternative.eml
 create mode 100644 tests/email-print-mime-structure/alternative.out
 create mode 100644 tests/email-print-mime-structure/attachment.eml
 create mode 100644 tests/email-print-mime-structure/attachment.out
 create mode 100644 tests/email-print-mime-structure/simple.eml
 create mode 100644 tests/email-print-mime-structure/simple.out

diff --git a/Makefile b/Makefile
index cd8f592..de2a784 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,9 @@ COMPLETIONS=completions/bash/email-print-mime-structure
 
 all: $(MANPAGES) $(COMPLETIONS)
 
+check:
+       ./tests/email-print-mime-structure.sh
+
 clean:
        rm -f $(MANPAGES)
        rm -rf completions
diff --git a/debian/control b/debian/control
index 72b57c3..bf49458 100644
--- a/debian/control
+++ b/debian/control
@@ -7,7 +7,9 @@ Build-Depends:
  bash-completion,
  debhelper (>= 10),
  dh-elpa,
+ diffutils <!nocheck>,
  perl,
+ python3 <!nocheck>,
  python3-argcomplete,
 Vcs-Git: https://git.spwhitton.name/mailscripts
 Vcs-Browser: https://git.spwhitton.name/mailscripts
diff --git a/tests/email-print-mime-structure.sh 
b/tests/email-print-mime-structure.sh
new file mode 100755
index 0000000..5efa2ca
--- /dev/null
+++ b/tests/email-print-mime-structure.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+for eml in tests/email-print-mime-structure/*.eml; do
+    printf "Testing %s\n" "${eml##*/}"
+    diff -u "${eml%%.eml}.out" <(./email-print-mime-structure < "$eml")
+done
diff --git a/tests/email-print-mime-structure/alternative.eml 
b/tests/email-print-mime-structure/alternative.eml
new file mode 100644
index 0000000..9b7723d
--- /dev/null
+++ b/tests/email-print-mime-structure/alternative.eml
@@ -0,0 +1,18 @@
+Date: Sun, 24 Nov 2019 21:13:45 -0500
+Subject: test message
+Message-ID: <alternative@mailscripts.example>
+From: Alice <alice@mailscripts.example>
+To: Bob <bob@mailscripts.example>
+Content-Type: multipart/alternative; boundary="abc123"
+
+--abc123
+Content-Type: text/plain
+
+This is a simple message
+
+--abc123
+Content-Type: text/html
+
+<html><head></head><body><p>This is a simple message</p></body></html>
+
+--abc123--
diff --git a/tests/email-print-mime-structure/alternative.out 
b/tests/email-print-mime-structure/alternative.out
new file mode 100644
index 0000000..1c0165a
--- /dev/null
+++ b/tests/email-print-mime-structure/alternative.out
@@ -0,0 +1,3 @@
+└┬╴multipart/alternative 414 bytes
+ ├─╴text/plain 26 bytes
+ └─╴text/html 72 bytes
diff --git a/tests/email-print-mime-structure/attachment.eml 
b/tests/email-print-mime-structure/attachment.eml
new file mode 100644
index 0000000..31baa7c
--- /dev/null
+++ b/tests/email-print-mime-structure/attachment.eml
@@ -0,0 +1,26 @@
+Date: Sun, 24 Nov 2019 21:13:45 -0500
+Subject: test message
+Message-ID: <attachment@mailscripts.example>
+From: Alice <alice@mailscripts.example>
+To: Bob <bob@mailscripts.example>
+Content-Type: multipart/mixed; boundary="xyz"
+
+--xyz
+Content-Type: multipart/alternative; boundary="abc123"
+
+--abc123
+Content-Type: text/plain
+
+This is a simple message
+
+--abc123
+Content-Type: text/html
+
+<html><head></head><body><p>This is a simple message</p></body></html>
+
+--abc123--
+--xyz
+Content-Type: text/plain
+Content-Disposition: attachment; filename="test.txt"
+
+This is a simple attachment file.
diff --git a/tests/email-print-mime-structure/attachment.out 
b/tests/email-print-mime-structure/attachment.out
new file mode 100644
index 0000000..f2ca543
--- /dev/null
+++ b/tests/email-print-mime-structure/attachment.out
@@ -0,0 +1,5 @@
+└┬╴multipart/mixed 594 bytes
+ ├┬╴multipart/alternative 234 bytes
+ │├─╴text/plain 26 bytes
+ │└─╴text/html 72 bytes
+ └─╴text/plain attachment [test.txt] 33 bytes
diff --git a/tests/email-print-mime-structure/simple.eml 
b/tests/email-print-mime-structure/simple.eml
new file mode 100644
index 0000000..36facec
--- /dev/null
+++ b/tests/email-print-mime-structure/simple.eml
@@ -0,0 +1,9 @@
+Date: Sun, 24 Nov 2019 21:13:45 -0500
+Subject: test message
+Message-ID: <simple@mailscripts.example>
+From: Alice <alice@mailscripts.example>
+To: Bob <bob@mailscripts.example>
+
+This is a simple message
+
+
diff --git a/tests/email-print-mime-structure/simple.out 
b/tests/email-print-mime-structure/simple.out
new file mode 100644
index 0000000..7ac3514
--- /dev/null
+++ b/tests/email-print-mime-structure/simple.out
@@ -0,0 +1 @@
+└─╴text/plain 30 bytes
-- 
2.24.0

Reply via email to