func (s *sanitizeDesktopFileSuite) TestSanitizeDesktopActionsOk(c *C) { snap := &snap.Info{} desktopContent := []byte(`[Desktop Action is-ok]`) e := wrappers.SanitizeDesktopFile(snap, "foo.desktop", desktopContent) c.Assert(string(e), Equals, `[Desktop Action is-ok]`) }
func (s *sanitizeDesktopFileSuite) TestSanitizeIgnoreNotWhitelisted(c *C) { snap := &snap.Info{SideInfo: snap.SideInfo{RealName: "foo", Revision: snap.R(12)}} desktopContent := []byte(`[Desktop Entry] Name=foo UnknownKey=baz nonsense Icon=${SNAP}/meep # the empty line above is fine`) e := wrappers.SanitizeDesktopFile(snap, "foo.desktop", desktopContent) c.Assert(string(e), Equals, fmt.Sprintf(`[Desktop Entry] Name=foo Icon=%s/foo/12/meep # the empty line above is fine`, dirs.SnapMountDir)) }
// we do not support TryExec (even if its a valid line), this test ensures // we do not accidentally enable it func (s *sanitizeDesktopFileSuite) TestSanitizeFiltersTryExecIgnored(c *C) { snap, err := snap.InfoFromSnapYaml([]byte(` name: snap version: 1.0 apps: app: command: cmd `)) c.Assert(err, IsNil) desktopContent := []byte(`[Desktop Entry] Name=foo TryExec=snap.app %U `) e := wrappers.SanitizeDesktopFile(snap, "foo.desktop", desktopContent) c.Assert(string(e), Equals, `[Desktop Entry] Name=foo`) }
func (s *sanitizeDesktopFileSuite) TestSanitizeFiltersExecOk(c *C) { snap, err := snap.InfoFromSnapYaml([]byte(` name: snap version: 1.0 apps: app: command: cmd `)) c.Assert(err, IsNil) desktopContent := []byte(`[Desktop Entry] Name=foo Exec=snap.app %U `) e := wrappers.SanitizeDesktopFile(snap, "foo.desktop", desktopContent) c.Assert(string(e), Equals, fmt.Sprintf(`[Desktop Entry] Name=foo Exec=env BAMF_DESKTOP_FILE_HINT=foo.desktop %s/bin/snap.app %%U`, dirs.SnapMountDir)) }
func (s *sanitizeDesktopFileSuite) TestSanitizeWorthWithI18n(c *C) { snap := &snap.Info{} desktopContent := []byte(`[Desktop Entry] Name=foo GenericName=bar GenericName[de]=einsehrlangeszusammengesetzteswort GenericName[tlh_TLH]=Qapla' GenericName[ca@valencia]=Hola! Invalid=key Invalid[i18n]=key `) e := wrappers.SanitizeDesktopFile(snap, "foo.desktop", desktopContent) c.Assert(string(e), Equals, `[Desktop Entry] Name=foo GenericName=bar GenericName[de]=einsehrlangeszusammengesetzteswort GenericName[tlh_TLH]=Qapla' GenericName[ca@valencia]=Hola!`) }