mirror of
https://github.com/rclone/rclone.git
synced 2024-12-02 05:14:55 +01:00
158 lines
3.5 KiB
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)
|
||
|
}
|
||
|
}
|
||
|
}
|