| // 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 main_test | |
| import ( | |
| "reflect" | |
| "testing" | |
| devapp "golang.org/x/build/cmd/devapp" | |
| ) | |
| func TestParsePrefixedChangeTitle(t *testing.T) { | |
| tests := []struct { | |
| inRoot string | |
| in string | |
| wantPaths []string | |
| wantTitle string | |
| }{ | |
| { | |
| in: "import/path: Change title.", | |
| wantPaths: []string{"import/path"}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "import/path: Change title.", | |
| wantPaths: []string{"root/import/path"}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "[release-branch.go1.11] import/path: Change title.", | |
| wantPaths: []string{"root/import/path"}, wantTitle: "[release-branch.go1.11] Change title.", | |
| }, | |
| // Multiple comma-separated paths. | |
| { | |
| in: "path1, path2: Change title.", | |
| wantPaths: []string{"path1", "path2"}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "path1, path2: Change title.", | |
| wantPaths: []string{"root/path1", "root/path2"}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "[release-branch.go1.11] path1, path2: Change title.", | |
| wantPaths: []string{"root/path1", "root/path2"}, wantTitle: "[release-branch.go1.11] Change title.", | |
| }, | |
| // No path prefix. | |
| { | |
| in: "Change title.", | |
| wantPaths: []string{""}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "Change title.", | |
| wantPaths: []string{"root"}, wantTitle: "Change title.", | |
| }, | |
| { | |
| inRoot: "root", | |
| in: "[release-branch.go1.11] Change title.", | |
| wantPaths: []string{"root"}, wantTitle: "[release-branch.go1.11] Change title.", | |
| }, | |
| } | |
| for i, tc := range tests { | |
| gotPaths, gotTitle := devapp.ParsePrefixedChangeTitle(tc.inRoot, tc.in) | |
| if !reflect.DeepEqual(gotPaths, tc.wantPaths) { | |
| t.Errorf("%d: got paths: %q, want: %q", i, gotPaths, tc.wantPaths) | |
| } | |
| if gotTitle != tc.wantTitle { | |
| t.Errorf("%d: got title: %q, want: %q", i, gotTitle, tc.wantTitle) | |
| } | |
| } | |
| } |