70 lines
2.0 KiB
Go
70 lines
2.0 KiB
Go
|
|
package service
|
||
|
|
|
||
|
|
import (
|
||
|
|
"net/url"
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/1024XEngineer/xinfra/server/internal/config"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestWayenLoginUsesDedicatedOAuthLoginURL(t *testing.T) {
|
||
|
|
service := NewWayenService(config.Config{
|
||
|
|
WayenOAuthLoginURL: "http://218.11.5.223:32000/login/oauth2/oauth2",
|
||
|
|
OAuthRedirectURI: "http://218.11.5.223:30008/login/oauth2/oauth2",
|
||
|
|
WayenTargetURL: "http://218.11.5.223:32000/",
|
||
|
|
WayenOAuthRef: "/portal/namespace/1/app",
|
||
|
|
}, nil)
|
||
|
|
|
||
|
|
result, err := service.Login("eastsales@qiniu.com", "eastsales@qiniu.com")
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("Login() error = %v", err)
|
||
|
|
}
|
||
|
|
parsed, err := url.Parse(result.TargetURL)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("invalid target url: %v", err)
|
||
|
|
}
|
||
|
|
if parsed.Host != "218.11.5.223:32000" {
|
||
|
|
t.Fatalf("target host = %q, want Wayne frontend 32000", parsed.Host)
|
||
|
|
}
|
||
|
|
if parsed.Path != "/login/oauth2/oauth2" {
|
||
|
|
t.Fatalf("target path = %q", parsed.Path)
|
||
|
|
}
|
||
|
|
|
||
|
|
next := parsed.Query().Get("next")
|
||
|
|
if next == "" {
|
||
|
|
t.Fatal("next is empty")
|
||
|
|
}
|
||
|
|
parsedNext, err := url.Parse(next)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("invalid next url: %v", err)
|
||
|
|
}
|
||
|
|
if parsedNext.Host != "218.11.5.223:32000" {
|
||
|
|
t.Fatalf("next host = %q, want Wayne frontend 32000", parsedNext.Host)
|
||
|
|
}
|
||
|
|
if parsedNext.Path != "/sign-in" {
|
||
|
|
t.Fatalf("next path = %q, want /sign-in", parsedNext.Path)
|
||
|
|
}
|
||
|
|
if parsedNext.Query().Get("ref") != "/portal/namespace/1/app" {
|
||
|
|
t.Fatalf("next ref = %q", parsedNext.Query().Get("ref"))
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestWayenLoginFallsBackToOAuthRedirectURI(t *testing.T) {
|
||
|
|
service := NewWayenService(config.Config{
|
||
|
|
OAuthRedirectURI: "http://218.11.5.223:32000/login/oauth2/oauth2",
|
||
|
|
WayenTargetURL: "http://218.11.5.223:32000/",
|
||
|
|
}, nil)
|
||
|
|
|
||
|
|
result, err := service.Login("eastsales@qiniu.com", "eastsales@qiniu.com")
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("Login() error = %v", err)
|
||
|
|
}
|
||
|
|
parsed, err := url.Parse(result.TargetURL)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("invalid target url: %v", err)
|
||
|
|
}
|
||
|
|
if parsed.Host != "218.11.5.223:32000" {
|
||
|
|
t.Fatalf("target host = %q, want fallback redirect host", parsed.Host)
|
||
|
|
}
|
||
|
|
}
|