github.com/remind101/go-getter@v0.0.0-20180809191950-4bda8fa99001/detect_s3_test.go (about) 1 package getter 2 3 import ( 4 "testing" 5 ) 6 7 func TestS3Detector(t *testing.T) { 8 cases := []struct { 9 Input string 10 Output string 11 }{ 12 // Virtual hosted style 13 { 14 "bucket.s3.amazonaws.com/foo", 15 "s3::https://s3.amazonaws.com/bucket/foo", 16 }, 17 { 18 "bucket.s3.amazonaws.com/foo/bar", 19 "s3::https://s3.amazonaws.com/bucket/foo/bar", 20 }, 21 { 22 "bucket.s3.amazonaws.com/foo/bar.baz", 23 "s3::https://s3.amazonaws.com/bucket/foo/bar.baz", 24 }, 25 { 26 "bucket.s3-eu-west-1.amazonaws.com/foo", 27 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo", 28 }, 29 { 30 "bucket.s3-eu-west-1.amazonaws.com/foo/bar", 31 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo/bar", 32 }, 33 { 34 "bucket.s3-eu-west-1.amazonaws.com/foo/bar.baz", 35 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo/bar.baz", 36 }, 37 // Path style 38 { 39 "s3.amazonaws.com/bucket/foo", 40 "s3::https://s3.amazonaws.com/bucket/foo", 41 }, 42 { 43 "s3.amazonaws.com/bucket/foo/bar", 44 "s3::https://s3.amazonaws.com/bucket/foo/bar", 45 }, 46 { 47 "s3.amazonaws.com/bucket/foo/bar.baz", 48 "s3::https://s3.amazonaws.com/bucket/foo/bar.baz", 49 }, 50 { 51 "s3-eu-west-1.amazonaws.com/bucket/foo", 52 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo", 53 }, 54 { 55 "s3-eu-west-1.amazonaws.com/bucket/foo/bar", 56 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo/bar", 57 }, 58 { 59 "s3-eu-west-1.amazonaws.com/bucket/foo/bar.baz", 60 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo/bar.baz", 61 }, 62 // Misc tests 63 { 64 "s3-eu-west-1.amazonaws.com/bucket/foo/bar.baz?version=1234", 65 "s3::https://s3-eu-west-1.amazonaws.com/bucket/foo/bar.baz?version=1234", 66 }, 67 } 68 69 pwd := "/pwd" 70 f := new(S3Detector) 71 for i, tc := range cases { 72 output, ok, err := f.Detect(tc.Input, pwd) 73 if err != nil { 74 t.Fatalf("err: %s", err) 75 } 76 if !ok { 77 t.Fatal("not ok") 78 } 79 80 if output != tc.Output { 81 t.Fatalf("%d: bad: %#v", i, output) 82 } 83 } 84 }