github.com/criteo/command-launcher@v0.0.0-20230407142452-fb616f546e98/internal/helper/paths_test.go (about)

     1  package helper
     2  
     3  import (
     4  	"runtime"
     5  	"testing"
     6  )
     7  
     8  func TestIsAbsolutePath(t *testing.T) {
     9  	type args struct {
    10  		pathname string
    11  	}
    12  	tests := []struct {
    13  		name string
    14  		args args
    15  		want bool
    16  	}{
    17  		{
    18  			name: "simple root",
    19  			args: args{pathname: "/"},
    20  			want: true,
    21  		},
    22  		{
    23  			name: "Simple drive path",
    24  			args: args{pathname: "e:\\"},
    25  			want: true,
    26  		},
    27  		{
    28  			name: "Windows pathname",
    29  			args: args{pathname: "g:\\a\\b\\c/d"},
    30  			want: true,
    31  		},
    32  		{
    33  			name: "relative path",
    34  			args: args{pathname: ".\\test"},
    35  			want: false,
    36  		},
    37  		{
    38  			name: "relative #2",
    39  			args: args{pathname: "../../.."},
    40  			want: false,
    41  		},
    42  	}
    43  	if runtime.GOOS == "windows" {
    44  		for _, tt := range tests {
    45  			t.Run(tt.name, func(t *testing.T) {
    46  				if got := IsAbsolutePath(tt.args.pathname); got != tt.want {
    47  					t.Errorf("IsAbsolutePath() = %v, want %v", got, tt.want)
    48  				}
    49  			})
    50  		}
    51  	}
    52  }