1
mirror of https://github.com/rclone/rclone synced 2024-11-14 13:36:24 +01:00
rclone/vendor/github.com/ncw/go-acd/nodes_test.go

158 lines
3.5 KiB
Go

// Copyright (c) 2015 Serge Gebhardt. All rights reserved.
//
// Use of this source code is governed by the ISC
// license that can be found in the LICENSE file.
package acd
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestNode_getRoot(t *testing.T) {
r := *NewMockResponseOkString(`
{
"count":1,
"data":[
{
"isRoot":true,
"eTagResponse":"LMel82iwbNk",
"id":"3ohaT2SSQWOecmP0GSWv6g",
"kind":"FOLDER",
"version":156,
"labels":[
],
"createdDate":"2014-04-08T20:58:58.011Z",
"createdBy":"CloudDriveFiles",
"restricted":false,
"modifiedDate":"2015-05-03T16:12:35.394Z",
"isShared":false,
"parents":[
],
"status":"AVAILABLE"
}
]
}
`)
c := NewMockClient(r)
root, _, err := c.Nodes.GetRoot()
assert.NoError(t, err)
assert.Equal(t, "3ohaT2SSQWOecmP0GSWv6g", *root.Id)
assert.Nil(t, root.Name)
}
func TestNode_getNodes(t *testing.T) {
r := *NewMockResponseOkString(`
{
"count":2,
"nextToken":"kgkbpodpt6",
"data":[
{
"eTagResponse":"eodh1-sfNbMI",
"id":"eRkZ6YMuX5W3VqV3Ia7_lf",
"name":"fooNew.jpg",
"kind":"FILE",
"metadataVersion":1,
"modifiedDate":"2014-03-07T22:31:12.173Z",
"creationDate":"2014-03-07T22:31:12.173Z",
"labels":[
"PHOTO"
],
"description":"My Awesome Photo",
"createdBy":"ApplicationId1",
"parents":[
"foo1",
"123"
],
"status":"Available",
"restricted":false,
"size":56654,
"contentType":"image/jpeg",
"md5":"6df23dc03f9b54cc38a0fc1483df6e21",
"fileExtension":"jpeg",
"contentProperties":{
"image":{
"make":"SAMSUNG",
"model":"SAMSUNG-SGH-I747",
"exposureTime":"1/1780",
"dateTimeOriginal":"2012-08-25T14:23:24.000Z",
"flash":"No",
"focalLength":"37/10",
"dateTime":"2012-08-25T14:23:24.000Z",
"dateTimeDigitized":"2012-08-25T14:23:24.000Z",
"software":"I747UCALG1",
"orientation":"1",
"colorSpace":"sRGB",
"meteringMode":"CenterWeightedAverage",
"exposureProgram":"Aperture Priority",
"exposureMode":"Auto Exposure",
"whiteBalance":"Auto",
"sensingMethod":"One-chip color area",
"xResolution":"72",
"yResolution":"72",
"resolutionUnit":"Pixels/Inch"
}
}
},
{
"eTagResponse":"sdgrrtbbfdd",
"id":"fooo1",
"name":"foo.zip",
"kind":"FILE",
"metadataVersion":1,
"modifiedDate":"2014-03-07T22:31:12.173Z",
"creationDate":"2014-03-07T22:31:12.173Z",
"labels":[
"ZIP File"
],
"description":"All My Data",
"createdBy":"ApplicationId2",
"status":"Available",
"restricted":false,
"size":5665423,
"contentType":"application/octet-stream",
"md5":"6df23dc03f9b54cc38a0fc1483df6e23",
"fileExtension":"zip"
}
]
}
`)
c := NewMockClient(r)
opts := &NodeListOptions{}
nodes, _, err := c.Nodes.GetNodes(opts)
assert.NoError(t, err)
assert.Equal(t, "kgkbpodpt6", opts.StartToken)
assert.Equal(t, 2, len(nodes))
assert.Equal(t, "eRkZ6YMuX5W3VqV3Ia7_lf", *nodes[0].Id)
assert.Equal(t, "fooNew.jpg", *nodes[0].Name)
assert.Equal(t, "fooo1", *nodes[1].Id)
assert.Equal(t, "foo.zip", *nodes[1].Name)
}
func TestEscapeForFilter(t *testing.T) {
for _, test := range []struct {
in string
want string
}{
{"", ""},
{"potato", "potato"},
{`potato+sausage`, `potato\+sausage`},
{`+ - & | ! ( ) { } [ ] ^ ' " ~ * ? : \`, `\+\ \-\ \&\ \|\ \!\ \(\ \)\ \{\ \}\ \[\ \]\ \^\ \'\ \"\ \~\ \*\ \?\ \:\ \\`},
} {
got := EscapeForFilter(test.in)
if test.want != got {
t.Errorf("in(%q): want '%s' got '%s'", test.in, test.want, got)
}
}
}