mirror of
https://gitlab.bertha.cloud/partitio/Nextcloud-Partitio/gonextcloud
synced 2024-11-29 05:06:25 +00:00
164 lines
3.5 KiB
Go
164 lines
3.5 KiB
Go
|
package grequests
|
||
|
|
||
|
import (
|
||
|
"net/url"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestBasicPutRequest(t *testing.T) {
|
||
|
resp, err := Put("http://httpbin.org/put", nil)
|
||
|
|
||
|
if err != nil {
|
||
|
t.Error("Unable to make request", resp.Error)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func TestBasicPutUploadRequest(t *testing.T) {
|
||
|
t.Skip("httpbin.org is broken, as of https://github.com/kennethreitz/httpbin/issues/340#issuecomment-330176449")
|
||
|
|
||
|
fd, err := FileUploadFromDisk("testdata/mypassword")
|
||
|
|
||
|
if err != nil {
|
||
|
t.Error("Unable to open file: ", err)
|
||
|
}
|
||
|
|
||
|
resp, _ := Put("http://httpbin.org/put",
|
||
|
&RequestOptions{
|
||
|
Files: fd,
|
||
|
Data: map[string]string{"One": "Two"},
|
||
|
})
|
||
|
|
||
|
if resp.Error != nil {
|
||
|
t.Error("Unable to make request", resp.Error)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func TestBasicPutUploadRequestInvalidURL(t *testing.T) {
|
||
|
fd, err := FileUploadFromDisk("testdata/mypassword")
|
||
|
|
||
|
if err != nil {
|
||
|
t.Error("Unable to open file: ", err)
|
||
|
}
|
||
|
|
||
|
_, err = Put("%../dir/",
|
||
|
&RequestOptions{
|
||
|
Files: fd,
|
||
|
Data: map[string]string{"One": "Two"},
|
||
|
})
|
||
|
|
||
|
if err == nil {
|
||
|
t.Fatal("Somehow able to make the request")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestSessionPutUploadRequestInvalidURL(t *testing.T) {
|
||
|
fd, err := FileUploadFromDisk("testdata/mypassword")
|
||
|
|
||
|
if err != nil {
|
||
|
t.Error("Unable to open file: ", err)
|
||
|
}
|
||
|
|
||
|
session := NewSession(nil)
|
||
|
|
||
|
_, err = session.Put("%../dir/",
|
||
|
&RequestOptions{
|
||
|
Files: fd,
|
||
|
Data: map[string]string{"One": "Two"},
|
||
|
})
|
||
|
|
||
|
if err == nil {
|
||
|
t.Fatal("Somehow able to make the request")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestPutSession(t *testing.T) {
|
||
|
session := NewSession(nil)
|
||
|
|
||
|
resp, err := session.Get("http://httpbin.org/cookies/set", &RequestOptions{Params: map[string]string{"one": "two"}})
|
||
|
|
||
|
if err != nil {
|
||
|
t.Fatal("Cannot set cookie: ", err)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
resp, err = session.Get("http://httpbin.org/cookies/set", &RequestOptions{Params: map[string]string{"two": "three"}})
|
||
|
|
||
|
if err != nil {
|
||
|
t.Fatal("Cannot set cookie: ", err)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
resp, err = session.Get("http://httpbin.org/cookies/set", &RequestOptions{Params: map[string]string{"three": "four"}})
|
||
|
|
||
|
if err != nil {
|
||
|
t.Fatal("Cannot set cookie: ", err)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
resp, err = session.Put("http://httpbin.org/put", &RequestOptions{Data: map[string]string{"one": "two"}})
|
||
|
|
||
|
if err != nil {
|
||
|
t.Fatal("Cannot set cookie: ", err)
|
||
|
}
|
||
|
|
||
|
if resp.Ok != true {
|
||
|
t.Error("Request did not return OK")
|
||
|
}
|
||
|
|
||
|
cookieURL, err := url.Parse("http://httpbin.org")
|
||
|
if err != nil {
|
||
|
t.Error("We (for some reason) cannot parse the cookie URL")
|
||
|
}
|
||
|
|
||
|
if len(session.HTTPClient.Jar.Cookies(cookieURL)) != 3 {
|
||
|
t.Error("Invalid number of cookies provided: ", session.HTTPClient.Jar.Cookies(cookieURL))
|
||
|
}
|
||
|
|
||
|
for _, cookie := range session.HTTPClient.Jar.Cookies(cookieURL) {
|
||
|
switch cookie.Name {
|
||
|
case "one":
|
||
|
if cookie.Value != "two" {
|
||
|
t.Error("Cookie value is not valid", cookie)
|
||
|
}
|
||
|
case "two":
|
||
|
if cookie.Value != "three" {
|
||
|
t.Error("Cookie value is not valid", cookie)
|
||
|
}
|
||
|
case "three":
|
||
|
if cookie.Value != "four" {
|
||
|
t.Error("Cookie value is not valid", cookie)
|
||
|
}
|
||
|
default:
|
||
|
t.Error("We should not have any other cookies: ", cookie)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
func TestPutInvalidURLSession(t *testing.T) {
|
||
|
session := NewSession(nil)
|
||
|
|
||
|
if _, err := session.Put("%../dir/", nil); err == nil {
|
||
|
t.Error("Some how the request was valid to make request ", err)
|
||
|
}
|
||
|
}
|