aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkg/util/fixWriter.go2
-rw-r--r--pkg/util/fixWriter_test.go47
2 files changed, 48 insertions, 1 deletions
diff --git a/pkg/util/fixWriter.go b/pkg/util/fixWriter.go
index 51637eb..d78b618 100644
--- a/pkg/util/fixWriter.go
+++ b/pkg/util/fixWriter.go
@@ -59,5 +59,5 @@ func (f fixWriter) Write(p []byte) (n int, err error) {
// Cyrus IMAP really cares about single \r and \n.
// Implement this fixer to change them into \r\n.
func FixWriter(w io.Writer) io.Writer {
- return &fixWriter{w}
+ return fixWriter{w}
}
diff --git a/pkg/util/fixWriter_test.go b/pkg/util/fixWriter_test.go
new file mode 100644
index 0000000..91961be
--- /dev/null
+++ b/pkg/util/fixWriter_test.go
@@ -0,0 +1,47 @@
+package util
+
+import (
+ "bytes"
+ "io"
+ "testing"
+)
+
+func TestFixWriter_Write(t *testing.T) {
+ tests := []struct {
+ before string
+ after string
+ }{
+ {"", ""},
+ {"foo", "foo"},
+ {"foo\r", "foo\r\n"},
+ {"foo\n", "foo\r\n"},
+ {"foo\r\n", "foo\r\n"},
+ {"\r", "\r\n"},
+ {"\n", "\r\n"},
+ {"\r\n", "\r\n"},
+ {"foo\rbar", "foo\r\nbar"},
+ {"foo\nbar", "foo\r\nbar"},
+ {"foo\r\nbar", "foo\r\nbar"},
+ {"\r\r", "\r\n\r\n"},
+ {"\n\n", "\r\n\r\n"},
+ {"\r\r\n", "\r\n\r\n"},
+ {"\n\r", "\r\n\r\n"},
+ {"\rbar", "\r\nbar"},
+ {"\nbar", "\r\nbar"},
+ {"\r\nbar", "\r\nbar"},
+ }
+ for _, tt := range tests {
+ t.Run(tt.before, func(t *testing.T) {
+ b := bytes.Buffer{}
+ w := FixWriter(&b)
+ if _, err := io.WriteString(w, tt.before); err != nil {
+ t.Errorf("Error: %v", err)
+ return
+ }
+ res := b.String()
+ if tt.after != res {
+ t.Errorf("Expected: %q, got: %q", tt.after, res)
+ }
+ })
+ }
+}
pan>/+13 2020-04-21HTML Template part of the mailRené 'Necoro' Neumann7-18/+199 2020-04-20Fixes and validationRené 'Necoro' Neumann6-28/+25 2020-04-20Fix vettingRené 'Necoro' Neumann1-1/+1 2020-04-20Started with mail creationRené 'Necoro' Neumann4-3/+126 2020-04-20FeeditemsRené 'Necoro' Neumann2-2/+14 2020-04-20GlobalOptionsRené 'Necoro' Neumann3-25/+79 2020-04-19RestructureRené 'Necoro' Neumann6-152/+177 2020-04-19Rename package 'parse' to 'feed'René 'Necoro' Neumann2-3/+3 2020-04-19SELECT is not necessary for most operations -- skip itRené 'Necoro' Neumann2-12/+1 2020-04-19Store path as array -- the delimiter is not always '.'René 'Necoro' Neumann3-36/+44 2020-04-19Split client part to client.goRené 'Necoro' Neumann2-125/+137 2020-04-19IMAP: Create foldersRené 'Necoro' Neumann1-4/+38 2020-04-19Improved IMAPRené 'Necoro' Neumann1-3/+88 2020-04-19Started IMAP connectionRené 'Necoro' Neumann4-0/+152 2020-04-19Use our own logger for debug for convenience sakeRené 'Necoro' Neumann1-2/+3 2020-04-19Fix debug logging m(René 'Necoro' Neumann1-2/+2 2020-04-19Rename util.go to log.go. Add verbose modeRené 'Necoro' Neumann4-24/+54 2020-04-19Clean go.modRené 'Necoro' Neumann2-3/+0 2020-04-19Do not print the parsedCfg anymoreRené 'Necoro' Neumann1-1/+1 2020-04-19Increase go-version to 1.14René 'Necoro' Neumann1-2/+2 2020-04-19CI: go vetRené 'Necoro' Neumann1-0/+3 2020-04-19Fetching and parsing the feedsRené 'Necoro' Neumann5-4/+113 2020-04-19Ignore all config*.ymlRené 'Necoro' Neumann1-1/+1