| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package frontend |
| |
| import ( |
| "testing" |
| |
| "golang.org/x/pkgsite/internal/version" |
| ) |
| |
| func TestParseStdLibURLPath(t *testing.T) { |
| testCases := []struct { |
| name, url, wantPath, wantVersion string |
| }{ |
| { |
| name: "latest", |
| url: "/cmd/go", |
| wantPath: "cmd/go", |
| wantVersion: version.Latest, |
| }, |
| { |
| name: "package at version", |
| url: "/cmd/go@go1.13", |
| wantPath: "cmd/go", |
| wantVersion: "v1.13.0", |
| }, |
| { |
| name: "package at beta version", |
| url: "/cmd/go@go1.13beta1", |
| wantPath: "cmd/go", |
| wantVersion: "v1.13.0-beta.1", |
| }, |
| { |
| name: "std", |
| url: "/std@go1.13", |
| wantPath: "std", |
| wantVersion: "v1.13.0", |
| }, |
| } |
| |
| for _, test := range testCases { |
| t.Run(test.name, func(t *testing.T) { |
| got, err := parseStdLibURLPath(test.url) |
| if err != nil { |
| t.Fatalf("parseStdLibURLPath(%q): %v)", test.url, err) |
| } |
| if test.wantVersion != got.requestedVersion || test.wantPath != got.fullPath { |
| t.Fatalf("parseStdLibURLPath(%q): %q, %q, %v; want = %q, %q", |
| test.url, got.fullPath, got.requestedVersion, err, test.wantPath, test.wantVersion) |
| } |
| }) |
| } |
| } |