2020-04-28 21:05:39 +03:00
// 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"
2021-03-16 02:20:05 +03:00
"github.com/stretchr/testify/assert"
2020-04-28 21:05:39 +03:00
)
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 )
}
}
}
2021-03-16 02:20:05 +03:00
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 )
}
}