(t *testing.T)
| 914 | } |
| 915 | |
| 916 | func TestContextPostFormMultipart(t *testing.T) { |
| 917 | c, _ := CreateTestContext(httptest.NewRecorder()) |
| 918 | c.Request = createMultipartRequest() |
| 919 | |
| 920 | var obj struct { |
| 921 | Foo string `form:"foo"` |
| 922 | Bar string `form:"bar"` |
| 923 | BarAsInt int `form:"bar"` |
| 924 | Array []string `form:"array"` |
| 925 | ID string `form:"id"` |
| 926 | TimeLocal time.Time `form:"time_local" time_format:"02/01/2006 15:04"` |
| 927 | TimeUTC time.Time `form:"time_utc" time_format:"02/01/2006 15:04" time_utc:"1"` |
| 928 | TimeLocation time.Time `form:"time_location" time_format:"02/01/2006 15:04" time_location:"Asia/Tokyo"` |
| 929 | BlankTime time.Time `form:"blank_time" time_format:"02/01/2006 15:04"` |
| 930 | } |
| 931 | require.NoError(t, c.Bind(&obj)) |
| 932 | assert.Equal(t, "bar", obj.Foo) |
| 933 | assert.Equal(t, "10", obj.Bar) |
| 934 | assert.Equal(t, 10, obj.BarAsInt) |
| 935 | assert.Equal(t, []string{"first", "second"}, obj.Array) |
| 936 | assert.Empty(t, obj.ID) |
| 937 | assert.Equal(t, "31/12/2016 14:55", obj.TimeLocal.Format("02/01/2006 15:04")) |
| 938 | assert.Equal(t, time.Local, obj.TimeLocal.Location()) |
| 939 | assert.Equal(t, "31/12/2016 14:55", obj.TimeUTC.Format("02/01/2006 15:04")) |
| 940 | assert.Equal(t, time.UTC, obj.TimeUTC.Location()) |
| 941 | loc, _ := time.LoadLocation("Asia/Tokyo") |
| 942 | assert.Equal(t, "31/12/2016 14:55", obj.TimeLocation.Format("02/01/2006 15:04")) |
| 943 | assert.Equal(t, loc, obj.TimeLocation.Location()) |
| 944 | assert.True(t, obj.BlankTime.IsZero()) |
| 945 | |
| 946 | value, ok := c.GetQuery("foo") |
| 947 | assert.False(t, ok) |
| 948 | assert.Empty(t, value) |
| 949 | assert.Empty(t, c.Query("bar")) |
| 950 | assert.Equal(t, "nothing", c.DefaultQuery("id", "nothing")) |
| 951 | |
| 952 | value, ok = c.GetPostForm("foo") |
| 953 | assert.True(t, ok) |
| 954 | assert.Equal(t, "bar", value) |
| 955 | assert.Equal(t, "bar", c.PostForm("foo")) |
| 956 | |
| 957 | value, ok = c.GetPostForm("array") |
| 958 | assert.True(t, ok) |
| 959 | assert.Equal(t, "first", value) |
| 960 | assert.Equal(t, "first", c.PostForm("array")) |
| 961 | |
| 962 | assert.Equal(t, "10", c.DefaultPostForm("bar", "nothing")) |
| 963 | |
| 964 | value, ok = c.GetPostForm("id") |
| 965 | assert.True(t, ok) |
| 966 | assert.Empty(t, value) |
| 967 | assert.Empty(t, c.PostForm("id")) |
| 968 | assert.Empty(t, c.DefaultPostForm("id", "nothing")) |
| 969 | |
| 970 | value, ok = c.GetPostForm("nokey") |
| 971 | assert.False(t, ok) |
| 972 | assert.Empty(t, value) |
| 973 | assert.Equal(t, "nothing", c.DefaultPostForm("nokey", "nothing")) |
nothing calls this directly
no test coverage detected