Files
mailgoserver/internal/webui/webmail_shortcuts_test.go
T

39 lines
1.5 KiB
Go
Raw Normal View History

package webui
import (
"net/http"
"net/http/httptest"
"strconv"
"strings"
"testing"
)
// TestWebmailShortcutsPresentOnFolderAndMessageViews confirms the keyboard-shortcut
// script and the message-view button ids it hooks into are actually rendered, not
// just defined-but-never-invoked.
func TestWebmailShortcutsPresentOnFolderAndMessageViews(t *testing.T) {
app := newTestApp(t)
mux := app.Mux()
domains, _ := app.DB.ListDomains()
mailboxID := createTestMailboxWithPassword(t, app, "shortcuts@example.com", domains[0].ID, "shortcuts-password-1!")
cookie := webmailLoginSession(t, app, mailboxID)
uid := storeTestMessage(t, app, mailboxID, "INBOX", "someone@example.com", "hi", "body")
folderReq := httptest.NewRequest(http.MethodGet, MailboxPrefix+"/mail/INBOX", nil)
folderReq.AddCookie(cookie)
folderRec := httptest.NewRecorder()
mux.ServeHTTP(folderRec, folderReq)
if !strings.Contains(folderRec.Body.String(), "msg-row-selected") {
t.Fatalf("expected the shortcuts script rendered on the folder view, got: %s", folderRec.Body.String())
}
msgReq := httptest.NewRequest(http.MethodGet, MailboxPrefix+"/mail/INBOX/"+strconv.FormatInt(uid, 10), nil)
msgReq.AddCookie(cookie)
msgRec := httptest.NewRecorder()
mux.ServeHTTP(msgRec, msgReq)
msgBody := msgRec.Body.String()
if !strings.Contains(msgBody, `id="replyBtn"`) || !strings.Contains(msgBody, "msg-row-selected") {
t.Fatalf("expected both the reply button id and the shortcuts script on the message view, got: %s", msgBody)
}
}