From e8bf65b7b6b923a5130229a2c6a432db204f4c37 Mon Sep 17 00:00:00 2001 From: Will Norris Date: Fri, 11 Apr 2014 09:16:18 -0700 Subject: [PATCH] add support for listing emoji --- github/misc.go | 20 +++++++++++++++++++- github/misc_test.go | 20 ++++++++++++++++++++ tests/integration/misc_test.go | 23 +++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 tests/integration/misc_test.go diff --git a/github/misc.go b/github/misc.go index 4b2b2a9..628372d 100644 --- a/github/misc.go +++ b/github/misc.go @@ -56,8 +56,26 @@ func (c *Client) Markdown(text string, opt *MarkdownOptions) (string, *Response, buf := new(bytes.Buffer) resp, err := c.Do(req, buf) if err != nil { - return "", resp, nil + return "", resp, err } return buf.String(), resp, nil } + +// ListEmojis returns the emojis available to use on GitHub. +// +// GitHub API docs: https://developer.github.com/v3/emojis/ +func (c *Client) ListEmojis() (map[string]string, *Response, error) { + req, err := c.NewRequest("GET", "/emojis", nil) + if err != nil { + return nil, nil, err + } + + var emoji map[string]string + resp, err := c.Do(req, &emoji) + if err != nil { + return nil, resp, err + } + + return emoji, resp, nil +} diff --git a/github/misc_test.go b/github/misc_test.go index d9ac1ce..a79568f 100644 --- a/github/misc_test.go +++ b/github/misc_test.go @@ -45,3 +45,23 @@ func TestMarkdown(t *testing.T) { t.Errorf("Markdown returned %+v, want %+v", md, want) } } + +func TestListEmojis(t *testing.T) { + setup() + defer teardown() + + mux.HandleFunc("/emojis", func(w http.ResponseWriter, r *http.Request) { + testMethod(t, r, "GET") + fmt.Fprint(w, `{"+1": "+1.png"}`) + }) + + emoji, _, err := client.ListEmojis() + if err != nil { + t.Errorf("ListEmojis returned error: %v", err) + } + + want := map[string]string{"+1": "+1.png"} + if !reflect.DeepEqual(want, emoji) { + t.Errorf("ListEmojis returned %+v, want %+v", emoji, want) + } +} diff --git a/tests/integration/misc_test.go b/tests/integration/misc_test.go new file mode 100644 index 0000000..14ee424 --- /dev/null +++ b/tests/integration/misc_test.go @@ -0,0 +1,23 @@ +// Copyright 2014 The go-github AUTHORS. All rights reserved. +// +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tests + +import "testing" + +func TestEmojis(t *testing.T) { + emoji, _, err := client.ListEmojis() + if err != nil { + t.Fatalf("ListEmojis returned error: %v", err) + } + + if len(emoji) == 0 { + t.Errorf("ListEmojis returned no emojis") + } + + if _, ok := emoji["+1"]; !ok { + t.Errorf("ListEmojis missing '+1' emoji") + } +}