12
type IconSuite struct {
16
var _ = Suite(&IconSuite{})
18
func (s *IconSuite) SetUpTest(c *C) {
19
s.dataPath = c.MkDir()
20
os.Setenv("SNAP_APP_DATA_PATH", s.dataPath)
23
func (s *IconSuite) TestIconDir(c *C) {
24
iconDir, relativePath, err := IconDir()
26
c.Check(iconDir, Equals, filepath.Join(s.dataPath, "icons"))
27
c.Check(relativePath, Equals, "icons")
30
func (s *IconSuite) TestNoSnapAppDataPathCausesError(c *C) {
31
os.Setenv("SNAP_APP_DATA_PATH", "")
32
_, _, err := IconDir()
33
c.Assert(err, Equals, ErrDataPathNotSet)
36
func (s *IconSuite) TestIconDirCreateFails(c *C) {
37
fileAsDir := filepath.Join(s.dataPath, "badDataPath")
38
c.Assert(ioutil.WriteFile(fileAsDir, []byte{}, 0644), IsNil)
39
os.Setenv("SNAP_APP_DATA_PATH", fileAsDir)
40
_, _, err := IconDir()
41
c.Assert(err, Equals, ErrOnIconDataPathSet)
44
type IconPathSuite struct {
49
var _ = Suite(&IconPathSuite{})
51
func (s *IconPathSuite) SetUpTest(c *C) {
52
s.dataPath = c.MkDir()
53
os.Setenv("SNAP_APP_DATA_PATH", s.dataPath)
55
s.pkgIconPath = filepath.Join(c.MkDir(), "pkgIcon.png")
56
c.Assert(ioutil.WriteFile(s.pkgIconPath, []byte("png"), 07555), IsNil)
59
func (s *IconPathSuite) TestIconCopy(c *C) {
60
relativePath, err := localIconPath("mypackage.sergiusens", s.pkgIconPath)
62
iconBaseName := fmt.Sprintf("icons/mypackage.sergiusens_%s", filepath.Base(s.pkgIconPath))
63
c.Check(relativePath, Equals, filepath.Join("/", iconBaseName))
65
contents, err := ioutil.ReadFile(filepath.Join(s.dataPath, iconBaseName))
68
c.Assert(string(contents), Equals, "png")
71
func (s *IconPathSuite) TestIconCopyNoDataPath(c *C) {
72
os.Setenv("SNAP_APP_DATA_PATH", "")
73
_, err := localIconPath("mypackage.sergiusens", s.pkgIconPath)
74
c.Assert(err, Equals, ErrDataPathNotSet)
77
func (s *IconPathSuite) TestIconCopyNoIcon(c *C) {
78
_, err := localIconPath("mypackage.sergiusens", "somerandompath")
79
c.Assert(err, Equals, ErrIconNotExist)
82
func (s *IconPathSuite) TestIconCopyTargetIconExists(c *C) {
83
iconBaseName := fmt.Sprintf("icons/mypackage.sergiusens_%s", filepath.Base(s.pkgIconPath))
84
c.Assert(os.MkdirAll(filepath.Join(s.dataPath, "icons"), 0755), IsNil)
85
c.Assert(ioutil.WriteFile(filepath.Join(s.dataPath, iconBaseName), []byte{}, 0644), IsNil)
87
relativePath, err := localIconPath("mypackage.sergiusens", s.pkgIconPath)
89
c.Check(relativePath, Equals, filepath.Join("/", iconBaseName))