1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // Copyright 2011 Google Inc. All rights reserved.
- // Use of this source code is governed by the Apache 2.0
- // license that can be found in the LICENSE file.
- package mail
- import (
- "testing"
- "github.com/golang/protobuf/proto"
- "google.golang.org/appengine/internal/aetesting"
- basepb "google.golang.org/appengine/internal/base"
- pb "google.golang.org/appengine/internal/mail"
- )
- func TestMessageConstruction(t *testing.T) {
- var got *pb.MailMessage
- c := aetesting.FakeSingleContext(t, "mail", "Send", func(in *pb.MailMessage, out *basepb.VoidProto) error {
- got = in
- return nil
- })
- msg := &Message{
- Sender: "dsymonds@example.com",
- To: []string{"nigeltao@example.com"},
- Body: "Hey, lunch time?",
- Attachments: []Attachment{
- // Regression test for a prod bug. The address of a range variable was used when
- // constructing the outgoing proto, so multiple attachments used the same name.
- {
- Name: "att1.txt",
- Data: []byte("data1"),
- ContentID: "<att1>",
- },
- {
- Name: "att2.txt",
- Data: []byte("data2"),
- },
- },
- }
- if err := Send(c, msg); err != nil {
- t.Fatalf("Send: %v", err)
- }
- want := &pb.MailMessage{
- Sender: proto.String("dsymonds@example.com"),
- To: []string{"nigeltao@example.com"},
- Subject: proto.String(""),
- TextBody: proto.String("Hey, lunch time?"),
- Attachment: []*pb.MailAttachment{
- {
- FileName: proto.String("att1.txt"),
- Data: []byte("data1"),
- ContentID: proto.String("<att1>"),
- },
- {
- FileName: proto.String("att2.txt"),
- Data: []byte("data2"),
- },
- },
- }
- if !proto.Equal(got, want) {
- t.Errorf("Bad proto for %+v\n got %v\nwant %v", msg, got, want)
- }
- }
|