gopass/tests/binary_test.go
Dominik Schulz dccfbeb011
Introduce typed MIME Secrets (#1415)
This commit introduces a new MIME-based secrets format that will
eventually replace any existing secret format.

Fixes #1310

RELEASE_NOTES=[BREAKING] New secrets format.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2020-06-11 16:46:05 +02:00

103 lines
2.1 KiB
Go

package tests
import (
"io/ioutil"
"os"
"path/filepath"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestBinaryCopy(t *testing.T) {
ts := newTester(t)
defer ts.teardown()
_, err := ts.run("fscopy")
assert.Error(t, err)
ts.initStore()
out, err := ts.run("fscopy")
assert.Error(t, err)
assert.Equal(t, "\nError: Usage: gopass fscopy from to\n", out)
fn := filepath.Join(ts.tempDir, "copy")
dat := []byte("foobar")
require.NoError(t, ioutil.WriteFile(fn, dat, 0644))
_, err = ts.run("fscopy " + fn + " foo/bar")
require.NoError(t, err)
assert.NoError(t, os.Remove(fn))
_, err = ts.run("fscopy foo/bar " + fn)
assert.NoError(t, err)
buf, err := ioutil.ReadFile(fn)
require.NoError(t, err)
assert.Equal(t, buf, dat)
_, err = ts.run("cat foo/bar")
assert.NoError(t, err)
}
func TestBinaryMove(t *testing.T) {
ts := newTester(t)
defer ts.teardown()
_, err := ts.run("fsmove")
assert.Error(t, err)
ts.initStore()
out, err := ts.run("fsmove")
assert.Error(t, err)
assert.Equal(t, "\nError: Usage: gopass fsmove from to\n", out)
fn := filepath.Join(ts.tempDir, "move")
dat := []byte("foobar")
require.NoError(t, ioutil.WriteFile(fn, dat, 0644))
_, err = ts.run("fsmove " + fn + " foo/bar")
assert.NoError(t, err)
assert.Error(t, os.Remove(fn))
_, err = ts.run("fsmove foo/bar " + fn)
assert.NoError(t, err)
buf, err := ioutil.ReadFile(fn)
require.NoError(t, err)
assert.Equal(t, buf, dat)
_, err = ts.run("cat foo/bar")
assert.Error(t, err)
}
func TestBinaryShasum(t *testing.T) {
ts := newTester(t)
defer ts.teardown()
_, err := ts.run("sha256")
assert.Error(t, err)
ts.initStore()
out, err := ts.run("sha256")
assert.Error(t, err)
assert.Equal(t, "\nError: Usage: gopass sha256 name\n", out)
fn := filepath.Join(ts.tempDir, "shasum")
dat := []byte("foobar")
require.NoError(t, ioutil.WriteFile(fn, dat, 0644))
_, err = ts.run("fsmove " + fn + " foo/bar")
assert.NoError(t, err)
out, err = ts.run("sha256 foo/bar")
assert.NoError(t, err)
assert.Equal(t, out, "c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2")
}