1
0
Fork 0
mirror of https://git.sr.ht/~rjarry/aerc synced 2025-02-22 23:23:57 +01:00
aerc/commands/msgview/save_test.go
Moritz Poldrack 8ec2f0c1e5 save: fix saving of multiple files with the same name
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>
2023-06-17 23:19:24 +02:00

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)
}
}
}