2019-03-13 04:14:30 -07:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os/user"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2020-10-07 08:14:26 -07:00
|
|
|
func setupSession(userInfoSeparator string, username string, hostname string, goos string) session {
|
2019-03-13 04:14:30 -07:00
|
|
|
env := new(MockedEnvironment)
|
|
|
|
user := user.User{
|
|
|
|
Username: username,
|
|
|
|
}
|
|
|
|
env.On("getCurrentUser", nil).Return(&user, nil)
|
|
|
|
env.On("getHostName", nil).Return(hostname, nil)
|
|
|
|
env.On("getRuntimeGOOS", nil).Return(goos)
|
|
|
|
props := &properties{
|
|
|
|
values: map[Property]interface{}{UserInfoSeparator: userInfoSeparator},
|
|
|
|
foreground: "#fff",
|
|
|
|
background: "#000",
|
|
|
|
}
|
|
|
|
s := session{
|
|
|
|
env: env,
|
|
|
|
props: props,
|
|
|
|
}
|
2020-10-07 08:14:26 -07:00
|
|
|
return s
|
|
|
|
}
|
|
|
|
|
|
|
|
func testUserInfoWriter(userInfoSeparator string, username string, hostname string, goos string) string {
|
|
|
|
s := setupSession(userInfoSeparator, username, hostname, goos)
|
2019-03-13 04:14:30 -07:00
|
|
|
return s.getFormattedText()
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWriteUserInfo(t *testing.T) {
|
|
|
|
want := "<#fff>bill</>@<#fff>surface</>"
|
|
|
|
got := testUserInfoWriter("@", "bill", "surface", "windows")
|
|
|
|
assert.EqualValues(t, want, got)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWriteUserInfoWindowsIncludingHostname(t *testing.T) {
|
|
|
|
want := "<#fff>bill</>@<#fff>surface</>"
|
|
|
|
got := testUserInfoWriter("@", "surface\\bill", "surface", "windows")
|
|
|
|
assert.EqualValues(t, want, got)
|
|
|
|
}
|
2020-10-07 08:14:26 -07:00
|
|
|
|
|
|
|
func TestWriteOnlyUsername(t *testing.T) {
|
|
|
|
s := setupSession("@", "surface\\bill", "surface", "windows")
|
|
|
|
s.props.values[DisplayHost] = false
|
|
|
|
|
|
|
|
want := "<#fff>bill</><#fff></>"
|
|
|
|
got := s.getFormattedText()
|
|
|
|
assert.EqualValues(t, want, got)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestWriteOnlyHostname(t *testing.T) {
|
|
|
|
s := setupSession("@", "surface\\bill", "surface", "windows")
|
|
|
|
s.props.values[DisplayUser] = false
|
|
|
|
|
|
|
|
want := "<#fff></><#fff>surface</>"
|
|
|
|
got := s.getFormattedText()
|
|
|
|
assert.EqualValues(t, want, got)
|
|
|
|
}
|