123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package main
- import (
- "fmt"
- "net/http"
- "reflect"
- "testing"
- )
- func TestGoProxyProtocolParser(t *testing.T) {
- t.Run(
- "Return another expected struct on request go-get for existing module",
- func(t *testing.T) {
- expected := &GoProxyRequest{
- URI: "idio.link/go/netaddr",
- Module: "idio.link/go/netaddr",
- ImportPath: "idio.link/go/netaddr",
- Host: "idio.link",
- RepoPath: "idio.link/netaddr",
- Repo: "netaddr",
- VersionMajor: "",
- Version: "",
- Op: GoProxyRequestNone,
- }
- module := "idio.link/go/netaddr"
- req, _ := http.NewRequest(
- "GET",
- fmt.Sprintf("https://%s?go-get=1", module),
- nil,
- )
- actual := new(GoProxyRequest)
- parseGoProxyPath(req, actual)
- if !reflect.DeepEqual(actual, expected) {
- t.Errorf("\nexpected:\n%#v\n\nactual:\n%#v", expected, actual)
- }
- },
- )
- t.Run(
- "Return expected struct on request go-get for existing module",
- func(t *testing.T) {
- expected := &GoProxyRequest{
- URI: "idio.link/go/netaddr/v2",
- Module: "idio.link/go/netaddr/v2",
- ImportPath: "idio.link/go/netaddr",
- Host: "idio.link",
- RepoPath: "idio.link/netaddr",
- Repo: "netaddr",
- VersionMajor: "v2",
- Version: "",
- Op: GoProxyRequestNone,
- }
- module := "idio.link/go/netaddr/v2"
- req, _ := http.NewRequest(
- "GET",
- fmt.Sprintf("https://%s?go-get=1", module),
- nil,
- )
- actual := new(GoProxyRequest)
- parseGoProxyPath(req, actual)
- if !reflect.DeepEqual(actual, expected) {
- t.Errorf("\nexpected:\n%#v\n\nactual:\n%#v", expected, actual)
- }
- },
- )
- t.Run(
- "Returns expected struct on request @latest for existing module",
- func(t *testing.T) {
- expected := &GoProxyRequest{
- URI: "idio.link/go/netaddr/v2/@latest",
- Module: "idio.link/go/netaddr/v2",
- ImportPath: "idio.link/go/netaddr",
- Host: "idio.link",
- RepoPath: "idio.link/netaddr",
- Repo: "netaddr",
- VersionMajor: "v2",
- Version: "",
- Op: GoProxyRequestLatest,
- }
- module := "idio.link/go/netaddr/v2"
- req, _ := http.NewRequest(
- "GET",
- fmt.Sprintf("https://%s/@latest", module),
- nil,
- )
- actual := new(GoProxyRequest)
- parseGoProxyPath(req, actual)
- if !reflect.DeepEqual(actual, expected) {
- t.Errorf("\nexpected:\n%#v\n\nactual:\n%#v", expected, actual)
- }
- },
- )
- t.Run(
- "Returns expected struct on request @v/$version.info for existing module",
- func(t *testing.T) {
- expected := &GoProxyRequest{
- URI: "idio.link/go/netaddr/v2/@v/v2.0.0.info",
- Module: "idio.link/go/netaddr/v2",
- ImportPath: "idio.link/go/netaddr",
- Host: "idio.link",
- RepoPath: "idio.link/netaddr",
- Repo: "netaddr",
- VersionMajor: "v2",
- Version: "v2.0.0",
- Extension: ".info",
- Op: GoProxyRequestInfo,
- }
- module := "idio.link/go/netaddr/v2"
- version := "v2.0.0"
- req, _ := http.NewRequest(
- "GET",
- fmt.Sprintf("https://%s/@v/%s.info", module, version),
- nil,
- )
- actual := new(GoProxyRequest)
- parseGoProxyPath(req, actual)
- if !reflect.DeepEqual(actual, expected) {
- t.Errorf("\nexpected:\n%#v\n\nactual:\n%#v", expected, actual)
- }
- },
- )
- }
|