// Copyright 2019 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package templates import ( "testing" "github.com/stretchr/testify/assert" ) func TestSubjectBodySeparator(t *testing.T) { test := func(input, subject, body string) { loc := mailSubjectSplit.FindIndex([]byte(input)) if loc == nil { assert.Empty(t, subject, "no subject found, but one expected") assert.Equal(t, body, input) } else { assert.Equal(t, subject, string(input[0:loc[0]])) assert.Equal(t, body, string(input[loc[1]:])) } } test("Simple\n---------------\nCase", "Simple\n", "\nCase") test("Only\nBody", "", "Only\nBody") test("Minimal\n---\nseparator", "Minimal\n", "\nseparator") test("False --- separator", "", "False --- separator") test("False\n--- separator", "", "False\n--- separator") test("False ---\nseparator", "", "False ---\nseparator") test("With extra spaces\n----- \t \nBody", "With extra spaces\n", "\nBody") test("With leading spaces\n -------\nOnly body", "", "With leading spaces\n -------\nOnly body") test("Multiple\n---\n-------\n---\nSeparators", "Multiple\n", "\n-------\n---\nSeparators") test("Insuficient\n--\nSeparators", "", "Insuficient\n--\nSeparators") }