mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
package server |
|
|
|
import "testing" |
|
|
|
func TestRelativeURL(t *testing.T) { |
|
tests := []struct { |
|
name string |
|
serverPath string |
|
reqPath string |
|
assetPath string |
|
expected string |
|
}{ |
|
{ |
|
name: "server-root-req-one-level-asset-two-level", |
|
serverPath: "/", |
|
reqPath: "/auth", |
|
assetPath: "/theme/main.css", |
|
expected: "theme/main.css", |
|
}, |
|
{ |
|
name: "server-one-level-req-one-level-asset-two-level", |
|
serverPath: "/dex", |
|
reqPath: "/dex/auth", |
|
assetPath: "/theme/main.css", |
|
expected: "theme/main.css", |
|
}, |
|
{ |
|
name: "server-root-req-two-level-asset-three-level", |
|
serverPath: "/dex", |
|
reqPath: "/dex/auth/connector", |
|
assetPath: "assets/css/main.css", |
|
expected: "../assets/css/main.css", |
|
}, |
|
{ |
|
name: "external-url", |
|
serverPath: "/dex", |
|
reqPath: "/dex/auth/connector", |
|
assetPath: "https://kubernetes.io/images/favicon.png", |
|
expected: "https://kubernetes.io/images/favicon.png", |
|
}, |
|
} |
|
|
|
for _, test := range tests { |
|
t.Run(test.name, func(t *testing.T) { |
|
actual := relativeURL(test.serverPath, test.reqPath, test.assetPath) |
|
if actual != test.expected { |
|
t.Fatalf("Got '%s'. Expected '%s'", actual, test.expected) |
|
} |
|
}) |
|
} |
|
}
|
|
|