123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- // Copyright 2020 The Gitea Authors. All rights reserved.
- // Copyright 2015 Kenneth Shaw
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
-
- package emoji
-
- import (
- "reflect"
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestDumpInfo(t *testing.T) {
- t.Logf("codes: %d", len(codeMap))
- t.Logf("aliases: %d", len(aliasMap))
- }
-
- func TestLookup(t *testing.T) {
- a := FromCode("\U0001f37a")
- b := FromCode("🍺")
- c := FromAlias(":beer:")
- d := FromAlias("beer")
-
- if !reflect.DeepEqual(a, b) {
- t.Errorf("a and b should equal")
- }
- if !reflect.DeepEqual(b, c) {
- t.Errorf("b and c should equal")
- }
- if !reflect.DeepEqual(c, d) {
- t.Errorf("c and d should equal")
- }
- if !reflect.DeepEqual(a, d) {
- t.Errorf("a and d should equal")
- }
-
- m := FromCode("\U0001f44d")
- n := FromAlias(":thumbsup:")
- o := FromAlias("+1")
-
- if !reflect.DeepEqual(m, n) {
- t.Errorf("m and n should equal")
- }
- if !reflect.DeepEqual(n, o) {
- t.Errorf("n and o should equal")
- }
- if !reflect.DeepEqual(m, o) {
- t.Errorf("m and o should equal")
- }
- }
-
- func TestReplacers(t *testing.T) {
- tests := []struct {
- f func(string) string
- v, exp string
- }{
- {ReplaceCodes, ":thumbsup: +1 for \U0001f37a! 🍺 \U0001f44d", ":thumbsup: +1 for :beer:! :beer: :+1:"},
- {ReplaceAliases, ":thumbsup: +1 :+1: :beer:", "\U0001f44d +1 \U0001f44d \U0001f37a"},
- }
-
- for i, x := range tests {
- s := x.f(x.v)
- if s != x.exp {
- t.Errorf("test %d `%s` expected `%s`, got: `%s`", i, x.v, x.exp, s)
- }
- }
- }
-
- func TestFindEmojiSubmatchIndex(t *testing.T) {
- type testcase struct {
- teststring string
- expected []int
- }
-
- testcases := []testcase{
- {
- "\U0001f44d",
- []int{0, len("\U0001f44d")},
- },
- {
- "\U0001f44d +1 \U0001f44d \U0001f37a",
- []int{0, 4},
- },
- {
- " \U0001f44d",
- []int{1, 1 + len("\U0001f44d")},
- },
- {
- string([]byte{'\u0001'}) + "\U0001f44d",
- []int{1, 1 + len("\U0001f44d")},
- },
- }
-
- for _, kase := range testcases {
- actual := FindEmojiSubmatchIndex(kase.teststring)
- assert.Equal(t, kase.expected, actual)
- }
- }
|