1// A facebook graph api client in go.
2// https://github.com/huandu/facebook/
3//
4// Copyright 2012, Huan Du
5// Licensed under the MIT license
6// https://github.com/huandu/facebook/blob/master/LICENSE
7
8package facebook
9
10import (
11	"bytes"
12	"strings"
13	"testing"
14)
15
16func TestBinaryParamsEncode(t *testing.T) {
17
18	buf := &bytes.Buffer{}
19	params := Params{}
20	params["attachment"] = FileAlias("image.jpg", "LICENSE")
21
22	contentTypeImage := "Content-Type: image/jpeg"
23	if mime, err := params.Encode(buf); err != nil || !strings.Contains(mime, _MIME_FORM_DATA) || !strings.Contains(buf.String(), contentTypeImage) {
24		t.Fatalf("wrong binary params encode result. expected content type is '%v'. actual is '%v'. [e:%v] [mime:%v]", contentTypeImage, buf.String(), err, mime)
25	}
26
27	// Fallback for unknown content types
28	// should be application/octet-stream
29	buf.Reset()
30	params = Params{"attachment": FileAlias("image.unknown", "LICENSE")}
31	contentTypeOctet := "Content-Type: application/octet-stream"
32	if mime, err := params.Encode(buf); err != nil || !strings.Contains(mime, _MIME_FORM_DATA) || !strings.Contains(buf.String(), contentTypeOctet) {
33		t.Fatalf("wrong binary params encode result. expected content type is '%v'. actual is '%v'. [e:%v] [mime:%v]", contentTypeOctet, buf.String(), err, mime)
34	}
35}
36