1206 lines
24 KiB
TOML
1206 lines
24 KiB
TOML
format = 1
|
|
|
|
# This is an original, data-only description of observable behavior. It is not
|
|
# copied upstream source or test code. Dynamic values are fixed through the
|
|
# clock and random-stream fields so Rust implementations can execute the same
|
|
# cases without invoking pass, gpg, git, oathtool, or qrencode.
|
|
|
|
[[case]]
|
|
id = "init-root"
|
|
area = "init"
|
|
argv = ["init", "ALICE"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:.gpg-id"
|
|
recipients = ["alice"]
|
|
commit = "Set GPG id to ALICE."
|
|
|
|
[[case]]
|
|
id = "init-path-short-multiple"
|
|
area = "init"
|
|
argv = ["init", "-p", "team", "ALICE", "BOB"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:team/.gpg-id-and-selectively-reencrypt"
|
|
recipients = ["alice", "bob"]
|
|
commit = "Set GPG id to ALICE, BOB (team)."
|
|
|
|
[[case]]
|
|
id = "init-path-long"
|
|
area = "init"
|
|
argv = ["init", "--path", "team", "BOB"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:team/.gpg-id-and-selectively-reencrypt"
|
|
recipients = ["bob"]
|
|
commit = "Set GPG id to BOB (team)."
|
|
|
|
[[case]]
|
|
id = "init-remove"
|
|
area = "init"
|
|
argv = ["init", "--path", "team", ""]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "remove:team/.gpg-id-and-selectively-reencrypt"
|
|
recipients = ["alice"]
|
|
commit = "Deinitialize team recipient policy."
|
|
|
|
[[case]]
|
|
id = "init-traversal"
|
|
area = "init"
|
|
argv = ["init", "-p", "../escape", "ALICE"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject:sneaky-path"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "default-list"
|
|
area = "show"
|
|
argv = []
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "tree:root"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-entry"
|
|
area = "show"
|
|
argv = ["show", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:entire-plaintext"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-implicit"
|
|
area = "show"
|
|
argv = ["email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:entire-plaintext"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-clip-short-default-line"
|
|
area = "show"
|
|
argv = ["show", "-c", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "clipboard:line-1-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-clip-long-line"
|
|
area = "show"
|
|
argv = ["show", "--clip=2", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "clipboard:line-2-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-qrcode-short-line"
|
|
area = "show"
|
|
argv = ["show", "-q2", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "qrcode:line-2-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-qrcode-long-default-line"
|
|
area = "show"
|
|
argv = ["show", "--qrcode", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "qrcode:line-1-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-mutually-exclusive"
|
|
area = "show"
|
|
argv = ["show", "--clip", "--qrcode", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "usage-error:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "show-invalid-line"
|
|
area = "show"
|
|
argv = ["show", "--clip=99", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "not-found:line-no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "ls-alias"
|
|
area = "list"
|
|
argv = ["ls", "team"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "tree:team"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "list-alias"
|
|
area = "list"
|
|
argv = ["list", "team"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "tree:team"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "find"
|
|
area = "find"
|
|
argv = ["find", "service", "咖啡"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "tree:case-insensitive-matches"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "search-alias"
|
|
area = "find"
|
|
argv = ["search", "PERSONAL"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "tree:case-insensitive-matches"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "grep-basic"
|
|
area = "grep"
|
|
argv = ["grep", "alice@example\\.test"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:matching-entry-and-line"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "grep-ignore-case"
|
|
area = "grep"
|
|
argv = ["grep", "-i", "FIXTURE"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:matching-entries-and-lines"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "grep-invert-match"
|
|
area = "grep"
|
|
argv = ["grep", "-v", "fixture"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:nonmatching-lines"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "grep-unsupported-option"
|
|
area = "grep"
|
|
argv = ["grep", "--binary-files=text", "fixture"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "unsupported-option:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "insert-hidden-confirmed"
|
|
area = "insert"
|
|
argv = ["insert", "new/entry"]
|
|
stdin = "secret-confirmed:fixture-secret"
|
|
tty = true
|
|
status = 0
|
|
outcome = "write:new/entry.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for new/entry to store."
|
|
|
|
[[case]]
|
|
id = "insert-echo-short"
|
|
area = "insert"
|
|
argv = ["insert", "-e", "new/entry"]
|
|
stdin = "line:fixture-secret"
|
|
tty = true
|
|
status = 0
|
|
outcome = "write:new/entry.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for new/entry to store."
|
|
|
|
[[case]]
|
|
id = "insert-echo-long-force"
|
|
area = "insert"
|
|
argv = ["insert", "--echo", "--force", "email/personal"]
|
|
stdin = "line:replacement"
|
|
tty = true
|
|
status = 0
|
|
outcome = "overwrite:email/personal.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for email/personal to store."
|
|
|
|
[[case]]
|
|
id = "insert-multiline-short"
|
|
area = "insert"
|
|
argv = ["insert", "-m", "new/multiline"]
|
|
stdin = "bytes:first\\nsecond\\n"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:new/multiline.gpg-exact-bytes"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for new/multiline to store."
|
|
|
|
[[case]]
|
|
id = "insert-multiline-long"
|
|
area = "insert"
|
|
argv = ["insert", "--multiline", "new/multiline"]
|
|
stdin = "bytes:first\\nsecond\\n"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:new/multiline.gpg-exact-bytes"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for new/multiline to store."
|
|
|
|
[[case]]
|
|
id = "insert-confirmation-mismatch"
|
|
area = "insert"
|
|
argv = ["insert", "new/entry"]
|
|
stdin = "secret-mismatch:first,second"
|
|
tty = true
|
|
status = 1
|
|
outcome = "reject:mismatch-no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "insert-overwrite-decline"
|
|
area = "insert"
|
|
argv = ["insert", "email/personal"]
|
|
stdin = "decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "add-alias"
|
|
area = "insert"
|
|
argv = ["add", "-f", "new/entry"]
|
|
stdin = "line:fixture-secret"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:new/entry.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add given password for new/entry to store."
|
|
|
|
[[case]]
|
|
id = "edit-existing"
|
|
area = "edit"
|
|
argv = ["edit", "email/personal"]
|
|
stdin = "editor-replacement:expected/basic/email/personal-edited.txt"
|
|
tty = true
|
|
status = 0
|
|
outcome = "atomic-overwrite:email/personal.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Edit password for email/personal using fixture-editor."
|
|
|
|
[[case]]
|
|
id = "edit-unchanged"
|
|
area = "edit"
|
|
argv = ["edit", "email/personal"]
|
|
stdin = "editor-unchanged"
|
|
tty = true
|
|
status = 1
|
|
outcome = "unchanged:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "edit-editor-failure"
|
|
area = "edit"
|
|
argv = ["edit", "email/personal"]
|
|
stdin = "editor-exit:42"
|
|
tty = true
|
|
status = 1
|
|
outcome = "editor-failed:no-change-and-cleanup"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "generate-default"
|
|
area = "generate"
|
|
argv = ["generate", "generated/default"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:generated/default.gpg-and-stdout-password"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for generated/default."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-length"
|
|
area = "generate"
|
|
argv = ["generate", "generated/length", "32"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:generated/length.gpg-length-32"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for generated/length."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-no-symbols-short"
|
|
area = "generate"
|
|
argv = ["generate", "-n", "generated/alnum", "16"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:generated/alnum.gpg-alphanumeric"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for generated/alnum."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-no-symbols-long-clip"
|
|
area = "generate"
|
|
argv = ["generate", "--no-symbols", "--clip", "generated/clip", "16"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write-and-clipboard:no-secret-stdout"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for generated/clip."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-qrcode-short"
|
|
area = "generate"
|
|
argv = ["generate", "-q", "generated/qr", "16"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write-and-qrcode:no-secret-stdout"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for generated/qr."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-in-place-short"
|
|
area = "generate"
|
|
argv = ["generate", "-i", "email/personal", "20"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "replace-first-line-preserve-tail-exactly"
|
|
recipients = ["alice"]
|
|
commit = "Replace generated password for email/personal."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-in-place-long"
|
|
area = "generate"
|
|
argv = ["generate", "--in-place", "email/personal", "20"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "replace-first-line-preserve-tail-exactly"
|
|
recipients = ["alice"]
|
|
commit = "Replace generated password for email/personal."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-force-long"
|
|
area = "generate"
|
|
argv = ["generate", "--force", "email/personal", "20"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "overwrite:email/personal.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add generated password for email/personal."
|
|
random_stream = "00..ff-repeating"
|
|
|
|
[[case]]
|
|
id = "generate-zero"
|
|
area = "generate"
|
|
argv = ["generate", "new/entry", "0"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject:zero-length-no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "generate-decline-overwrite"
|
|
area = "generate"
|
|
argv = ["generate", "email/personal"]
|
|
stdin = "decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "rm-entry"
|
|
area = "remove"
|
|
argv = ["rm", "email/personal"]
|
|
stdin = "decision:yes"
|
|
tty = true
|
|
status = 0
|
|
outcome = "remove:email/personal.gpg-and-empty-directories"
|
|
recipients = []
|
|
commit = "Remove email/personal from store."
|
|
|
|
[[case]]
|
|
id = "remove-alias-force"
|
|
area = "remove"
|
|
argv = ["remove", "--force", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "remove:email/personal.gpg-and-empty-directories"
|
|
recipients = []
|
|
commit = "Remove email/personal from store."
|
|
|
|
[[case]]
|
|
id = "delete-alias"
|
|
area = "remove"
|
|
argv = ["delete", "-f", "email/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "remove:email/personal.gpg-and-empty-directories"
|
|
recipients = []
|
|
commit = "Remove email/personal from store."
|
|
|
|
[[case]]
|
|
id = "rm-directory-requires-recursive"
|
|
area = "remove"
|
|
argv = ["rm", "team/"]
|
|
stdin = "decision:yes"
|
|
tty = true
|
|
status = 1
|
|
outcome = "reject:recursive-required-no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "rm-directory-recursive-short"
|
|
area = "remove"
|
|
argv = ["rm", "-r", "team/"]
|
|
stdin = "decision:yes"
|
|
tty = true
|
|
status = 0
|
|
outcome = "remove-tree:team"
|
|
recipients = []
|
|
commit = "Remove team/ from store."
|
|
|
|
[[case]]
|
|
id = "rm-directory-recursive-long"
|
|
area = "remove"
|
|
argv = ["rm", "--recursive", "--force", "team/"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "remove-tree:team"
|
|
recipients = []
|
|
commit = "Remove team/ from store."
|
|
|
|
[[case]]
|
|
id = "rm-decline"
|
|
area = "remove"
|
|
argv = ["rm", "email/personal"]
|
|
stdin = "decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "mv-entry"
|
|
area = "move"
|
|
argv = ["mv", "email/personal", "archive/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "move-atomic-and-reencrypt-if-needed"
|
|
recipients = ["alice"]
|
|
commit = "Rename email/personal to archive/personal."
|
|
|
|
[[case]]
|
|
id = "rename-alias-force"
|
|
area = "move"
|
|
argv = ["rename", "--force", "email/personal", "team/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "move-atomic-and-reencrypt"
|
|
recipients = ["bob"]
|
|
commit = "Rename email/personal to team/personal."
|
|
|
|
[[case]]
|
|
id = "mv-collision-decline"
|
|
area = "move"
|
|
argv = ["mv", "email/personal", "team/service"]
|
|
stdin = "decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-partial-move"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "cp-entry"
|
|
area = "copy"
|
|
argv = ["cp", "email/personal", "archive/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "copy-source-preserved"
|
|
recipients = ["alice"]
|
|
commit = "Copy email/personal to archive/personal."
|
|
|
|
[[case]]
|
|
id = "copy-alias-force"
|
|
area = "copy"
|
|
argv = ["copy", "-f", "email/personal", "team/personal"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "copy-source-preserved-and-reencrypt"
|
|
recipients = ["bob"]
|
|
commit = "Copy email/personal to team/personal."
|
|
|
|
[[case]]
|
|
id = "git-init"
|
|
area = "git"
|
|
argv = ["git", "init"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "repository:init-with-gitattributes"
|
|
recipients = []
|
|
commit = "Add current contents of password store."
|
|
|
|
[[case]]
|
|
id = "git-status"
|
|
area = "git"
|
|
argv = ["git", "status"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:working-tree-status"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-log"
|
|
area = "git"
|
|
argv = ["git", "log"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:ordered-commit-log"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-diff"
|
|
area = "git"
|
|
argv = ["git", "diff"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:working-tree-diff"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-add"
|
|
area = "git"
|
|
argv = ["git", "add", ".gpg-id"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "index:stage-supported-path"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-commit"
|
|
area = "git"
|
|
argv = ["git", "commit", "-m", "fixture explicit commit"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "repository:new-commit"
|
|
recipients = []
|
|
commit = "fixture explicit commit"
|
|
|
|
[[case]]
|
|
id = "git-remote-list"
|
|
area = "git"
|
|
argv = ["git", "remote"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:configured-remotes"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-remote-add-https"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "https://example.test/store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "configure:https-remote"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-config-get"
|
|
area = "git"
|
|
argv = ["git", "config", "--get", "remote.origin.url"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:https-remote"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-config-set"
|
|
area = "git"
|
|
argv = ["git", "config", "remote.origin.url", "https://example.test/other.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "configure:https-remote"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-fetch"
|
|
area = "git"
|
|
argv = ["git", "fetch", "origin"]
|
|
stdin = "credential-ref:fixture-server/fixture-app"
|
|
tty = false
|
|
status = 0
|
|
outcome = "embedded-https-fetch"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-pull"
|
|
area = "git"
|
|
argv = ["git", "pull", "origin", "main"]
|
|
stdin = "credential-ref:fixture-server/fixture-app"
|
|
tty = false
|
|
status = 0
|
|
outcome = "embedded-https-fetch-and-merge"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-push"
|
|
area = "git"
|
|
argv = ["git", "push", "origin", "main"]
|
|
stdin = "credential-ref:fixture-server/fixture-app"
|
|
tty = false
|
|
status = 0
|
|
outcome = "embedded-https-push"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-ssh-scheme"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "ssh://example.test/store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-scp-syntax"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "git@example.test:store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-git-scheme"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "git://example.test/store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-file-scheme"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "file:///tmp/store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-local-path"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "../store.git"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-forbidden-helper-scheme"
|
|
area = "git"
|
|
argv = ["git", "remote", "add", "origin", "ext::helper command"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "reject-before-transport:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "git-unsupported-passthrough"
|
|
area = "git"
|
|
argv = ["git", "rebase", "main"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "unsupported-workflow:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-code-default"
|
|
area = "otp"
|
|
argv = ["otp", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:totp-code"
|
|
recipients = []
|
|
commit = ""
|
|
clock = "1970-01-01T00:00:59Z"
|
|
|
|
[[case]]
|
|
id = "otp-code-explicit-clip"
|
|
area = "otp"
|
|
argv = ["otp", "code", "--clip", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "clipboard:totp-code-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
clock = "1970-01-01T00:00:59Z"
|
|
|
|
[[case]]
|
|
id = "otp-show-alias-short-clip"
|
|
area = "otp"
|
|
argv = ["otp", "show", "-c", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "clipboard:totp-code-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
clock = "1970-01-01T00:00:59Z"
|
|
|
|
[[case]]
|
|
id = "otp-hotp-increment"
|
|
area = "otp"
|
|
argv = ["otp", "code", "otp/hotp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:hotp-code-and-atomic-counter-increment"
|
|
recipients = ["alice"]
|
|
commit = "Increment HOTP counter for otp/hotp."
|
|
|
|
[[case]]
|
|
id = "otp-insert-uri"
|
|
area = "otp"
|
|
argv = ["otp", "insert", "otp/new"]
|
|
stdin = "secret-confirmed:otpauth-uri"
|
|
tty = true
|
|
status = 0
|
|
outcome = "write:otp/new.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add OTP secret for otp/new to store."
|
|
|
|
[[case]]
|
|
id = "otp-add-alias-force-echo"
|
|
area = "otp"
|
|
argv = ["otp", "add", "--force", "--echo", "otp/new"]
|
|
stdin = "line:otpauth-uri"
|
|
tty = true
|
|
status = 0
|
|
outcome = "overwrite:otp/new.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add OTP secret for otp/new to store."
|
|
|
|
[[case]]
|
|
id = "otp-add-alias-short-options"
|
|
area = "otp"
|
|
argv = ["otp", "add", "-f", "-e", "otp/new"]
|
|
stdin = "line:otpauth-uri"
|
|
tty = true
|
|
status = 0
|
|
outcome = "overwrite:otp/new.gpg"
|
|
recipients = ["alice"]
|
|
commit = "Add OTP secret for otp/new to store."
|
|
|
|
[[case]]
|
|
id = "otp-insert-derived-path-secret-short-options"
|
|
area = "otp"
|
|
argv = ["otp", "insert", "-s", "-i", "Issuer", "-a", "account"]
|
|
stdin = "secret-confirmed:JBSWY3DPEHPK3PXP;decision:yes"
|
|
tty = true
|
|
status = 0
|
|
outcome = "write:Issuer/account.gpg-derived-uri"
|
|
recipients = ["alice"]
|
|
commit = "Add OTP secret for Issuer/account to store."
|
|
|
|
[[case]]
|
|
id = "otp-insert-derived-path-decline"
|
|
area = "otp"
|
|
argv = ["otp", "insert", "--secret", "--issuer", "Issuer"]
|
|
stdin = "line:JBSWY3DPEHPK3PXP;decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-insert-secret-long-options"
|
|
area = "otp"
|
|
argv = ["otp", "insert", "--secret", "--issuer", "Issuer", "--account", "account", "otp/new"]
|
|
stdin = "line:JBSWY3DPEHPK3PXP"
|
|
tty = false
|
|
status = 0
|
|
outcome = "write:otp/new.gpg-derived-uri"
|
|
recipients = ["alice"]
|
|
commit = "Add OTP secret for otp/new to store."
|
|
|
|
[[case]]
|
|
id = "otp-append"
|
|
area = "otp"
|
|
argv = ["otp", "append", "email/personal"]
|
|
stdin = "line:otpauth-uri"
|
|
tty = false
|
|
status = 0
|
|
outcome = "append-uri-preserve-existing-bytes"
|
|
recipients = ["alice"]
|
|
commit = "Append OTP secret for email/personal."
|
|
|
|
[[case]]
|
|
id = "otp-append-replace-decline"
|
|
area = "otp"
|
|
argv = ["otp", "append", "otp/totp"]
|
|
stdin = "decision:no"
|
|
tty = true
|
|
status = 1
|
|
outcome = "cancel:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-append-replace-force"
|
|
area = "otp"
|
|
argv = ["otp", "append", "-f", "otp/totp"]
|
|
stdin = "line:otpauth-uri"
|
|
tty = false
|
|
status = 0
|
|
outcome = "replace-first-uri-preserve-other-lines"
|
|
recipients = ["alice"]
|
|
commit = "Replace OTP secret for otp/totp."
|
|
|
|
[[case]]
|
|
id = "otp-append-secret-long-options"
|
|
area = "otp"
|
|
argv = ["otp", "append", "--force", "--echo", "--secret", "--issuer", "Issuer", "--account", "account", "otp/totp"]
|
|
stdin = "line:JBSWY3DPEHPK3PXP"
|
|
tty = true
|
|
status = 0
|
|
outcome = "replace-first-uri-preserve-other-lines"
|
|
recipients = ["alice"]
|
|
commit = "Replace OTP secret for otp/totp."
|
|
|
|
[[case]]
|
|
id = "otp-uri"
|
|
area = "otp"
|
|
argv = ["otp", "uri", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:uri"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-uri-clip"
|
|
area = "otp"
|
|
argv = ["otp", "uri", "--clip", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "clipboard:uri-no-secret-stdout"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-uri-qrcode-short"
|
|
area = "otp"
|
|
argv = ["otp", "uri", "-q", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "qrcode:uri"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-uri-qrcode-long"
|
|
area = "otp"
|
|
argv = ["otp", "uri", "--qrcode", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "qrcode:uri"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-uri-mutually-exclusive"
|
|
area = "otp"
|
|
argv = ["otp", "uri", "--clip", "--qrcode", "otp/totp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "usage-error:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-validate-valid"
|
|
area = "otp"
|
|
argv = ["otp", "validate", "otpauth://totp/account?secret=JBSWY3DPEHPK3PXP"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "valid:no-output"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-validate-missing-secret"
|
|
area = "otp"
|
|
argv = ["otp", "validate", "otpauth://totp/account?issuer=Fixture"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "invalid:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-validate-missing-hotp-counter"
|
|
area = "otp"
|
|
argv = ["otp", "validate", "otpauth://hotp/account?secret=JBSWY3DPEHPK3PXP"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "invalid:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-validate-malformed"
|
|
area = "otp"
|
|
argv = ["otp", "validate", "https://example.test/not-otp"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "invalid:no-change"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-help"
|
|
area = "otp"
|
|
argv = ["otp", "help"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:otp-help"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-help-long"
|
|
area = "otp"
|
|
argv = ["otp", "--help"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:otp-help"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-help-short"
|
|
area = "otp"
|
|
argv = ["otp", "-h"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:otp-help"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-version"
|
|
area = "otp"
|
|
argv = ["otp", "version"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:1.1.1"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "otp-version-long"
|
|
area = "otp"
|
|
argv = ["otp", "--version"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:1.1.1"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "help"
|
|
area = "meta"
|
|
argv = ["help"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:help"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "help-long"
|
|
area = "meta"
|
|
argv = ["--help"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:help"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "version"
|
|
area = "meta"
|
|
argv = ["version"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:version"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "version-long"
|
|
area = "meta"
|
|
argv = ["--version"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 0
|
|
outcome = "stdout:version"
|
|
recipients = []
|
|
commit = ""
|
|
|
|
[[case]]
|
|
id = "unknown-command-as-show"
|
|
area = "show"
|
|
argv = ["does-not-exist"]
|
|
stdin = "none"
|
|
tty = false
|
|
status = 1
|
|
outcome = "not-found:no-change"
|
|
recipients = []
|
|
commit = ""
|