LEFT | RIGHT |
1 // Copyright 2013 Canonical Ltd. | 1 // Copyright 2013 Canonical Ltd. |
2 // Licensed under the AGPLv3, see LICENCE file for details. | 2 // Licensed under the AGPLv3, see LICENCE file for details. |
3 | 3 |
4 package utils_test | 4 package utils_test |
5 | 5 |
6 import ( | 6 import ( |
7 "os" | 7 "os" |
8 "os/user" | 8 "os/user" |
9 "path/filepath" | 9 "path/filepath" |
10 | 10 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 err := utils.MkdirForUser(dir, 0755) | 89 err := utils.MkdirForUser(dir, 0755) |
90 c.Assert(err, gc.IsNil) | 90 c.Assert(err, gc.IsNil) |
91 c.Assert(dir, jc.IsDirectory) | 91 c.Assert(dir, jc.IsDirectory) |
92 } | 92 } |
93 | 93 |
94 func (s *sudoSuite) TestMkDirForUserWithError(c *gc.C) { | 94 func (s *sudoSuite) TestMkDirForUserWithError(c *gc.C) { |
95 s.setupBadSudoUid() | 95 s.setupBadSudoUid() |
96 dir := filepath.Join(c.MkDir(), "new-dir") | 96 dir := filepath.Join(c.MkDir(), "new-dir") |
97 err := utils.MkdirForUser(dir, 0755) | 97 err := utils.MkdirForUser(dir, 0755) |
98 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) | 98 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) |
99 » c.Assert(dir, jc.DoesNotExist) | 99 » // The directory is still there. |
| 100 » c.Assert(dir, jc.IsDirectory) |
100 } | 101 } |
101 | 102 |
102 func (s *sudoSuite) TestMkDirAllForUserAsUser(c *gc.C) { | 103 func (s *sudoSuite) TestMkDirAllForUserAsUser(c *gc.C) { |
103 dir := filepath.Join(c.MkDir(), "new-dir", "and-another") | 104 dir := filepath.Join(c.MkDir(), "new-dir", "and-another") |
104 err := utils.MkdirAllForUser(dir, 0755) | 105 err := utils.MkdirAllForUser(dir, 0755) |
105 c.Assert(err, gc.IsNil) | 106 c.Assert(err, gc.IsNil) |
106 c.Assert(dir, jc.IsDirectory) | 107 c.Assert(dir, jc.IsDirectory) |
107 } | 108 } |
108 | 109 |
109 func (s *sudoSuite) TestMkDirAllForUserRoot(c *gc.C) { | 110 func (s *sudoSuite) TestMkDirAllForUserRoot(c *gc.C) { |
110 s.setupGoodSudoUid(c) | 111 s.setupGoodSudoUid(c) |
111 | 112 |
112 dir := filepath.Join(c.MkDir(), "new-dir", "and-another") | 113 dir := filepath.Join(c.MkDir(), "new-dir", "and-another") |
113 err := utils.MkdirAllForUser(dir, 0755) | 114 err := utils.MkdirAllForUser(dir, 0755) |
114 c.Assert(err, gc.IsNil) | 115 c.Assert(err, gc.IsNil) |
115 c.Assert(dir, jc.IsDirectory) | 116 c.Assert(dir, jc.IsDirectory) |
116 } | 117 } |
117 | 118 |
118 func (s *sudoSuite) TestMkDirAllForUserWithError(c *gc.C) { | 119 func (s *sudoSuite) TestMkDirAllForUserWithError(c *gc.C) { |
119 s.setupBadSudoUid() | 120 s.setupBadSudoUid() |
120 | 121 |
121 base := c.MkDir() | 122 base := c.MkDir() |
122 dir := filepath.Join(base, "new-dir", "and-another") | 123 dir := filepath.Join(base, "new-dir", "and-another") |
123 err := utils.MkdirAllForUser(dir, 0755) | 124 err := utils.MkdirAllForUser(dir, 0755) |
124 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) | 125 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) |
125 » c.Assert(dir, jc.DoesNotExist) | 126 » // The directory is still there. |
126 » c.Assert(filepath.Dir(dir), jc.DoesNotExist) | 127 » c.Assert(dir, jc.IsDirectory) |
127 } | 128 } |
128 | 129 |
129 func (s *sudoSuite) TestChownToUserNotRoot(c *gc.C) { | 130 func (s *sudoSuite) TestChownToUserNotRoot(c *gc.C) { |
130 // Just in case someone runs the suite as root, we don't want to fail. | 131 // Just in case someone runs the suite as root, we don't want to fail. |
131 s.PatchValue(&utils.CheckIfRoot, func() bool { return false }) | 132 s.PatchValue(&utils.CheckIfRoot, func() bool { return false }) |
132 | 133 |
133 nonExistant := filepath.Join(c.MkDir(), "non-existant") | 134 nonExistant := filepath.Join(c.MkDir(), "non-existant") |
134 err := utils.ChownToUser(nonExistant) | 135 err := utils.ChownToUser(nonExistant) |
135 c.Assert(err, gc.IsNil) | 136 c.Assert(err, gc.IsNil) |
136 } | 137 } |
137 | 138 |
138 func (s *sudoSuite) TestChownToUserBadUid(c *gc.C) { | 139 func (s *sudoSuite) TestChownToUserBadUid(c *gc.C) { |
139 s.setupBadSudoUid() | 140 s.setupBadSudoUid() |
140 err := utils.ChownToUser(c.MkDir()) | 141 err := utils.ChownToUser(c.MkDir()) |
141 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) | 142 c.Assert(err, gc.ErrorMatches, `invalid value "omg" for SUDO_UID`) |
142 } | 143 } |
143 | 144 |
144 func (s *sudoSuite) TestChownToUser(c *gc.C) { | 145 func (s *sudoSuite) TestChownToUser(c *gc.C) { |
145 s.setupGoodSudoUid(c) | 146 s.setupGoodSudoUid(c) |
146 err := utils.ChownToUser(c.MkDir(), c.MkDir()) | 147 err := utils.ChownToUser(c.MkDir(), c.MkDir()) |
147 c.Assert(err, gc.IsNil) | 148 c.Assert(err, gc.IsNil) |
148 } | 149 } |
LEFT | RIGHT |