117 lines
2.8 KiB
Go
117 lines
2.8 KiB
Go
package pluginmgr
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestResolveSourceGitHub(t *testing.T) {
|
|
urls, name, err := resolveSource("user/cliamp-plugin-cool")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "cool" {
|
|
t.Fatalf("name = %q, want %q", name, "cool")
|
|
}
|
|
want := "https://raw.githubusercontent.com/user/cliamp-plugin-cool/HEAD/cool.lua"
|
|
if len(urls) != 1 || urls[0] != want {
|
|
t.Fatalf("urls = %v, want [%s]", urls, want)
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceGitHubWithTag(t *testing.T) {
|
|
urls, name, err := resolveSource("user/cliamp-plugin-cool@v1.0")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "cool" {
|
|
t.Fatalf("name = %q, want %q", name, "cool")
|
|
}
|
|
want := "https://raw.githubusercontent.com/user/cliamp-plugin-cool/v1.0/cool.lua"
|
|
if urls[0] != want {
|
|
t.Fatalf("url = %q, want %q", urls[0], want)
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceGitLab(t *testing.T) {
|
|
urls, name, err := resolveSource("gitlab:user/cliamp-plugin-vis")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "vis" {
|
|
t.Fatalf("name = %q, want %q", name, "vis")
|
|
}
|
|
want := "https://gitlab.com/user/cliamp-plugin-vis/-/raw/HEAD/vis.lua"
|
|
if urls[0] != want {
|
|
t.Fatalf("url = %q, want %q", urls[0], want)
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceCodeberg(t *testing.T) {
|
|
urls, name, err := resolveSource("codeberg:user/cliamp-plugin-eq")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "eq" {
|
|
t.Fatalf("name = %q, want %q", name, "eq")
|
|
}
|
|
want := "https://codeberg.org/user/cliamp-plugin-eq/raw/branch/main/eq.lua"
|
|
if urls[0] != want {
|
|
t.Fatalf("url = %q, want %q", urls[0], want)
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceCodebergWithTag(t *testing.T) {
|
|
urls, _, err := resolveSource("codeberg:user/cliamp-plugin-eq@v2")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
want := "https://codeberg.org/user/cliamp-plugin-eq/raw/tag/v2/eq.lua"
|
|
if urls[0] != want {
|
|
t.Fatalf("url = %q, want %q", urls[0], want)
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceRawURL(t *testing.T) {
|
|
urls, name, err := resolveSource("https://example.com/my-plugin.lua")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "my-plugin" {
|
|
t.Fatalf("name = %q, want %q", name, "my-plugin")
|
|
}
|
|
if urls[0] != "https://example.com/my-plugin.lua" {
|
|
t.Fatalf("url = %q", urls[0])
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceInvalid(t *testing.T) {
|
|
tests := []string{
|
|
"",
|
|
"justname",
|
|
"too/many/parts",
|
|
"/nope",
|
|
"bitbucket:user/repo",
|
|
}
|
|
|
|
for _, src := range tests {
|
|
_, _, err := resolveSource(src)
|
|
if err == nil {
|
|
t.Errorf("resolveSource(%q) should return error", src)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestResolveSourceNonPrefixedRepo(t *testing.T) {
|
|
urls, name, err := resolveSource("user/my-equalizer")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if name != "my-equalizer" {
|
|
t.Fatalf("name = %q, want %q", name, "my-equalizer")
|
|
}
|
|
want := "https://raw.githubusercontent.com/user/my-equalizer/HEAD/my-equalizer.lua"
|
|
if urls[0] != want {
|
|
t.Fatalf("url = %q, want %q", urls[0], want)
|
|
}
|
|
}
|