mirror of
https://git.sr.ht/~rjarry/aerc
synced 2025-02-22 23:23:57 +01:00

When an email has multiple attachments with the same name, aerc currently only saves one of them. This patch adds a counter to them. the file has an extension, the counter is added before the extension. Signed-off-by: Moritz Poldrack <git@moritz.sh> Acked-by: Koni Marti <koni.marti@gmail.com>
24 lines
823 B
Go
24 lines
823 B
Go
package msgview
|
|
|
|
import "testing"
|
|
|
|
func TestGetCollisionlessFilename(t *testing.T) {
|
|
tests := []struct {
|
|
originalFilename string
|
|
expectedNewName string
|
|
existingFiles map[string]struct{}
|
|
}{
|
|
{"test", "test", map[string]struct{}{}},
|
|
{"test", "test", map[string]struct{}{"other-file": {}}},
|
|
{"test.txt", "test.txt", map[string]struct{}{"test.log": {}}},
|
|
{"test.txt", "test_1.txt", map[string]struct{}{"test.txt": {}}},
|
|
{"test.txt", "test_2.txt", map[string]struct{}{"test.txt": {}, "test_1.txt": {}}},
|
|
{"test.txt", "test_1.txt", map[string]struct{}{"test.txt": {}, "test_2.txt": {}}},
|
|
}
|
|
for _, tt := range tests {
|
|
actual := getCollisionlessFilename(tt.originalFilename, tt.existingFiles)
|
|
if actual != tt.expectedNewName {
|
|
t.Errorf("expected %s, actual %s", tt.expectedNewName, actual)
|
|
}
|
|
}
|
|
}
|