1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: Apache-2.0
13 check "gopkg.in/check.v1"
16 type spiedRequest struct {
19 params map[string]interface{}
22 type spyingClient struct {
27 func (sc *spyingClient) RequestAndDecode(dst interface{}, method, path string, body io.Reader, params interface{}) error {
28 var paramsCopy map[string]interface{}
30 json.NewEncoder(&buf).Encode(params)
31 json.NewDecoder(&buf).Decode(¶msCopy)
32 sc.calls = append(sc.calls, spiedRequest{
37 return sc.Client.RequestAndDecode(dst, method, path, body, params)
40 func (s *SiteFSSuite) TestHomeProject(c *check.C) {
41 f, err := s.fs.Open("/home")
42 c.Assert(err, check.IsNil)
43 fis, err := f.Readdir(-1)
44 c.Check(len(fis), check.Not(check.Equals), 0)
47 for _, fi := range fis {
48 c.Check(fi.Name(), check.Not(check.Equals), "")
49 if fi.Name() == "Unrestricted public data" {
53 c.Check(ok, check.Equals, true)
55 f, err = s.fs.Open("/home/Unrestricted public data/..")
56 c.Assert(err, check.IsNil)
58 c.Check(err, check.IsNil)
59 c.Check(fi.IsDir(), check.Equals, true)
60 c.Check(fi.Name(), check.Equals, "home")
62 f, err = s.fs.Open("/home/Unrestricted public data/Subproject in anonymous accessible project")
63 c.Check(err, check.IsNil)
65 c.Check(err, check.IsNil)
66 c.Check(fi.IsDir(), check.Equals, true)
68 for _, nx := range []string{
70 "/home/A Project/does not exist",
71 "/home/Unrestricted public data/does not exist",
74 f, err = s.fs.Open(nx)
75 c.Check(err, check.NotNil)
76 c.Check(os.IsNotExist(err), check.Equals, true)