1
// Copyright 2013 Canonical Ltd.
2
// Licensed under the AGPLv3, see LICENCE file for details.
8
. "launchpad.net/gocheck"
9
"launchpad.net/juju-core/testing/checkers"
13
type CertFileSuite struct{}
15
var _ = Suite(new(CertFileSuite))
17
func (CertFileSuite) TestPathReturnsFullPath(c *C) {
18
certFile := tempCertFile{tempDir: "/tmp/dir", filename: "file"}
19
c.Check(certFile.Path(), Equals, "/tmp/dir/file")
22
func (CertFileSuite) TestNewTempCertFileCreatesFile(c *C) {
23
certData := []byte("content")
24
certFile, err := newTempCertFile(certData)
26
defer certFile.Delete()
28
storedData, err := ioutil.ReadFile(certFile.Path())
31
c.Check(storedData, DeepEquals, certData)
34
func (CertFileSuite) TestNewTempCertFileRestrictsAccessToFile(c *C) {
35
certFile, err := newTempCertFile([]byte("content"))
37
defer certFile.Delete()
38
info, err := os.Stat(certFile.Path())
40
c.Check(info.Mode().Perm(), Equals, os.FileMode(0600))
43
func (CertFileSuite) TestNewTempCertFileRestrictsAccessToDir(c *C) {
44
certFile, err := newTempCertFile([]byte("content"))
46
defer certFile.Delete()
47
info, err := os.Stat(certFile.tempDir)
49
c.Check(info.Mode().Perm(), Equals, os.FileMode(0700))
52
func (CertFileSuite) TestDeleteRemovesFile(c *C) {
53
certFile, err := newTempCertFile([]byte("content"))
56
_, err = os.Open(certFile.Path())
57
c.Assert(err, checkers.Satisfies, os.IsNotExist)
60
func (CertFileSuite) TestDeleteIsIdempotent(c *C) {
61
certFile, err := newTempCertFile([]byte("content"))
65
_, err = os.Open(certFile.Path())
66
c.Assert(err, checkers.Satisfies, os.IsNotExist)