aboutsummaryrefslogblamecommitdiffstats
path: root/widgets/msgviewer_test.go
blob: f6d01edbdd097d4ae120f00538d50d365c222688 (plain) (tree)



































































                                                                                                                              
package widgets

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestFormatMessageNoFilename(t *testing.T) {
	assert.Equal(t, "mime/type", formatMessagePart("mime/type", "", 24))
	assert.Equal(t, "m/type", formatMessagePart("m/type", "", 24))
	assert.Equal(t, "2", formatMessagePart("2", "", 24))
	assert.Equal(t, "2", formatMessagePart("2", "", 20))
}

func TestFormatMessageNoFilenameNotEnoguhSpace(t *testing.T) {
	assert.Equal(t, "mime/type", formatMessagePart("mime/type", "", 24))
	assert.Equal(t, "mime/type", formatMessagePart("mime/type", "", 9))
	assert.Equal(t, "mime/ty…", formatMessagePart("mime/type", "", 8))
	assert.Equal(t, "mime/…", formatMessagePart("mime/type", "", 6))
	assert.Equal(t, "m…", formatMessagePart("mime/type", "", 2))
	assert.Equal(t, "…", formatMessagePart("mime/type", "", 1))

	assert.Equal(t, "", formatMessagePart("mime/type", "", 0))
	assert.Equal(t, "", formatMessagePart("mime/type", "", -1))
	assert.Equal(t, "", formatMessagePart("mime/type", "", -10))
}

func TestFormatMessagePartSimpleCases(t *testing.T) {
	assert.Equal(t, "filename.doc (mime/type)", formatMessagePart("mime/type", "filename.doc", 24))
	assert.Equal(t, "имяфайла.док (mime/type)", formatMessagePart("mime/type", "имяфайла.док", 24))
	assert.Equal(t, "file.doc        (m/type)", formatMessagePart("m/type", "file.doc", 24))
	assert.Equal(t, "1                    (2)", formatMessagePart("2", "1", 24))
	assert.Equal(t, "1                (2)", formatMessagePart("2", "1", 20))
	assert.Equal(t, "1 (2)", formatMessagePart("2", "1", 5))
}

func TestFormatMessagePartNotEnoughSpaceForMime(t *testing.T) {
	assert.Equal(t, "filename.doc       (mime/type)", formatMessagePart("mime/type", "filename.doc", 30))
	assert.Equal(t, "filename.doc  (mime/type)", formatMessagePart("mime/type", "filename.doc", 25))
	assert.Equal(t, "filename.doc (mime/type)", formatMessagePart("mime/type", "filename.doc", 24))
	assert.Equal(t, "filename.doc (mime/ty…)", formatMessagePart("mime/type", "filename.doc", 23))
	assert.Equal(t, "имяфайла.док (mime/ty…)", formatMessagePart("mime/type", "имяфайла.док", 23))
	assert.Equal(t, "filename.doc (m…)", formatMessagePart("mime/type", "filename.doc", 17))
	assert.Equal(t, "filename.doc (…)", formatMessagePart("mime/type", "filename.doc", 16))
	assert.Equal(t, "имяфайла.док (…)", formatMessagePart("mime/type", "имяфайла.док", 16))
	assert.Equal(t, "filename.doc", formatMessagePart("mime/type", "filename.doc", 15))
	assert.Equal(t, "filename.doc", formatMessagePart("mime/type", "filename.doc", 14))
	assert.Equal(t, "filename.doc", formatMessagePart("mime/type", "filename.doc", 13))
	assert.Equal(t, "filename.doc", formatMessagePart("mime/type", "filename.doc", 12))
	assert.Equal(t, "имяфайла.док", formatMessagePart("mime/type", "имяфайла.док", 12))
}

func TestFormatMessagePartNotEnoughSpaceForFilename(t *testing.T) {
	assert.Equal(t, "filename.d…", formatMessagePart("mime/type", "filename.doc", 11))
	assert.Equal(t, "filename…", formatMessagePart("mime/type", "filename.doc", 9))
	assert.Equal(t, "f…", formatMessagePart("mime/type", "filename.doc", 2))
	assert.Equal(t, "…", formatMessagePart("mime/type", "filename.doc", 1))

	assert.Equal(t, "", formatMessagePart("mime/type", "filename.doc", 0))
	assert.Equal(t, "", formatMessagePart("mime/type", "filename.doc", -1))
	assert.Equal(t, "", formatMessagePart("mime/type", "filename.doc", -10))

	assert.Equal(t, "имяфайла.д…", formatMessagePart("mime/type", "имяфайла.док", 11))
	assert.Equal(t, "имяфайла…", formatMessagePart("mime/type", "имяфайла.док", 9))
	assert.Equal(t, "и…", formatMessagePart("mime/type", "имяфайла.док", 2))
	assert.Equal(t, "…", formatMessagePart("mime/type", "имяфайла.док", 1))
}