// 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/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) } } }