...

Source file src/github.com/aws/smithy-go/transport/http/url_test.go

Documentation: github.com/aws/smithy-go/transport/http

     1  package http
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  )
     7  
     8  func TestJoinPath(t *testing.T) {
     9  	cases := []struct {
    10  		A, B   string
    11  		Expect string
    12  	}{
    13  		0: {
    14  			A: "", B: "/bar",
    15  			Expect: "/bar",
    16  		},
    17  		1: {
    18  			A: "/", B: "/bar",
    19  			Expect: "/bar",
    20  		},
    21  		2: {
    22  			A: "/foo/", B: "/bar",
    23  			Expect: "/foo/bar",
    24  		},
    25  		3: {
    26  			A: "foo/", B: "/bar",
    27  			Expect: "/foo/bar",
    28  		},
    29  		4: {
    30  			A: "/foo/", B: "bar",
    31  			Expect: "/foo/bar",
    32  		},
    33  		5: {
    34  			A: "foo", B: "/bar",
    35  			Expect: "/foo/bar",
    36  		},
    37  		6: {
    38  			A: "", B: "",
    39  			Expect: "/",
    40  		},
    41  		7: {
    42  			A: "foo", B: "",
    43  			Expect: "/foo",
    44  		},
    45  		8: {
    46  			A: "foo/", B: "",
    47  			Expect: "/foo/",
    48  		},
    49  		9: {
    50  			A: "foo//", B: "//bar",
    51  			Expect: "/foo///bar",
    52  		},
    53  	}
    54  
    55  	for i, c := range cases {
    56  		t.Run(fmt.Sprintf("%d:%s,%s:%s", i, c.A, c.B, c.Expect), func(t *testing.T) {
    57  			actual := JoinPath(c.A, c.B)
    58  			if e, a := c.Expect, actual; e != a {
    59  				t.Errorf("expect %v path, got %v", e, a)
    60  			}
    61  		})
    62  	}
    63  }
    64  
    65  func TestJoinRawQuery(t *testing.T) {
    66  	cases := []struct {
    67  		A, B   string
    68  		Expect string
    69  	}{
    70  		0: {
    71  			A: "", B: "bar",
    72  			Expect: "bar",
    73  		},
    74  		1: {
    75  			A: "foo", B: "bar",
    76  			Expect: "foo&bar",
    77  		},
    78  		2: {
    79  			A: "foo&", B: "bar",
    80  			Expect: "foo&bar",
    81  		},
    82  		3: {
    83  			A: "foo", B: "",
    84  			Expect: "foo",
    85  		},
    86  		4: {
    87  			A: "", B: "&bar",
    88  			Expect: "bar",
    89  		},
    90  		5: {
    91  			A: "foo&", B: "&bar",
    92  			Expect: "foo&bar",
    93  		},
    94  		6: {
    95  			A: "", B: "",
    96  			Expect: "",
    97  		},
    98  		7: {
    99  			A: "foo&baz", B: "bar",
   100  			Expect: "foo&baz&bar",
   101  		},
   102  		8: {
   103  			A: "foo", B: "baz&bar",
   104  			Expect: "foo&baz&bar",
   105  		},
   106  		9: {
   107  			A: "&foo&", B: "&baz&bar&",
   108  			Expect: "foo&baz&bar",
   109  		},
   110  		10: {
   111  			A: "&foo&&&", B: "&&&baz&&&bar&",
   112  			Expect: "foo&baz&&&bar",
   113  		},
   114  	}
   115  
   116  	for i, c := range cases {
   117  		t.Run(fmt.Sprintf("%d:%s,%s:%s", i, c.A, c.B, c.Expect), func(t *testing.T) {
   118  			actual := JoinRawQuery(c.A, c.B)
   119  			if e, a := c.Expect, actual; e != a {
   120  				t.Errorf("expect %v query, got %v", e, a)
   121  			}
   122  		})
   123  	}
   124  }
   125  

View as plain text