mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
|
package utils
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestParseUserAgent(t *testing.T) {
|
||
|
tests := []struct {
|
||
|
in string
|
||
|
outOs string
|
||
|
outEditor string
|
||
|
outError error
|
||
|
}{
|
||
|
{
|
||
|
"wakatime/13.0.7 (Linux-4.15.0-96-generic-x86_64-with-glibc2.4) Python3.8.0.final.0 GoLand/2019.3.4 GoLand-wakatime/11.0.1",
|
||
|
"Linux",
|
||
|
"GoLand",
|
||
|
nil,
|
||
|
},
|
||
|
{
|
||
|
"wakatime/13.0.4 (Linux-5.4.64-x86_64-with-glibc2.2.5) Python3.7.6.final.0 emacs-wakatime/1.0.2",
|
||
|
"Linux",
|
||
|
"emacs",
|
||
|
nil,
|
||
|
},
|
||
|
{
|
||
|
"",
|
||
|
"",
|
||
|
"",
|
||
|
errors.New(""),
|
||
|
},
|
||
|
{
|
||
|
"wakatime/13.0.7 Python3.8.0.final.0 GoLand/2019.3.4 GoLand-wakatime/11.0.1",
|
||
|
"",
|
||
|
"",
|
||
|
errors.New(""),
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
if os, editor, err := ParseUserAgent(test.in); os != test.outOs || editor != test.outEditor || !checkErr(test.outError, err) {
|
||
|
t.Errorf("[%d] Unexpected result of parsing '%s'; got '%v', '%v', '%v'", i, test.in, os, editor, err)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func checkErr(expected, actual error) bool {
|
||
|
return (expected == nil && actual == nil) || (expected != nil && actual != nil)
|
||
|
}
|