| // Copyright 2017 syzkaller project authors. All rights reserved. |
| // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. |
| |
| package email |
| |
| import ( |
| "fmt" |
| "testing" |
| ) |
| |
| func TestFormReply(t *testing.T) { |
| for i, test := range formReplyTests { |
| t.Run(fmt.Sprint(i), func(t *testing.T) { |
| result := FormReply(test.email, test.reply) |
| if test.result != result { |
| t.Logf("expect:\n%s", test.result) |
| t.Logf("got:\n%s", result) |
| t.Fail() |
| } |
| }) |
| } |
| } |
| |
| var formReplyTests = []struct { |
| email string |
| reply string |
| result string |
| }{ |
| { |
| email: `line1 |
| line2 |
| #syz foo |
| line3 |
| `, |
| reply: "this is reply", |
| result: `> line1 |
| > line2 |
| > #syz foo |
| |
| this is reply |
| |
| > line3 |
| `, |
| }, |
| { |
| email: `> line1 |
| > line2 |
| #syz foo |
| line3 |
| `, |
| reply: "this is reply\n", |
| result: `>> line1 |
| >> line2 |
| > #syz foo |
| |
| this is reply |
| |
| > line3 |
| `, |
| }, |
| { |
| email: `line1 |
| line2 |
| #syz foo`, |
| reply: "this is reply 1\nthis is reply 2", |
| result: `> line1 |
| > line2 |
| > #syz foo |
| |
| this is reply 1 |
| this is reply 2 |
| |
| `, |
| }, |
| { |
| email: `line1 |
| line2 |
| `, |
| reply: "this is reply", |
| result: `> line1 |
| > line2 |
| |
| this is reply |
| |
| `, |
| }, |
| } |