|
1 | 1 | package client |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "bytes" |
4 | 5 | "crypto/sha256" |
5 | 6 | "encoding/json" |
6 | 7 | "testing" |
| 8 | + "time" |
7 | 9 |
|
| 10 | + log "github.com/Sirupsen/logrus" |
8 | 11 | "github.com/docker/notary/client/changelist" |
9 | 12 | "github.com/docker/notary/tuf/data" |
10 | 13 | "github.com/docker/notary/tuf/testutils" |
@@ -968,3 +971,51 @@ func TestChangeTargetMetaFailsIfPrefixError(t *testing.T) { |
968 | 971 | require.Empty(t, repo.Targets[data.CanonicalTargetsRole].Signed.Targets) |
969 | 972 | require.Empty(t, repo.Targets["targets/level1"].Signed.Targets) |
970 | 973 | } |
| 974 | + |
| 975 | +func TestAllNearExpiry(t *testing.T) { |
| 976 | + repo, _, err := testutils.EmptyRepo("docker.com/notary") |
| 977 | + require.NoError(t, err) |
| 978 | + nearexpdate := time.Now().AddDate(0, 1, 0) |
| 979 | + repo.Root.Signed.SignedCommon.Expires = nearexpdate |
| 980 | + repo.Snapshot.Signed.SignedCommon.Expires = nearexpdate |
| 981 | + repo.Targets["targets"].Signed.Expires = nearexpdate |
| 982 | + _, err1 := repo.InitTargets("targets/exp") |
| 983 | + require.NoError(t, err1) |
| 984 | + repo.Targets["targets/exp"].Signed.Expires = nearexpdate |
| 985 | + //Reset levels to display warnings through logrus |
| 986 | + orgLevel := log.GetLevel() |
| 987 | + log.SetLevel(log.WarnLevel) |
| 988 | + defer log.SetLevel(orgLevel) |
| 989 | + b := bytes.NewBuffer(nil) |
| 990 | + log.SetOutput(b) |
| 991 | + warnRolesNearExpiry(repo) |
| 992 | + require.Contains(t, b.String(), "targets metadata is nearing expiry, you should re-sign the role metadata", "targets should show near expiry") |
| 993 | + require.Contains(t, b.String(), "targets/exp metadata is nearing expiry, you should re-sign the role metadata", "targets/exp should show near expiry") |
| 994 | + require.Contains(t, b.String(), "root is nearing expiry, you should re-sign the role metadata", "Root should show near expiry") |
| 995 | + require.Contains(t, b.String(), "snapshot is nearing expiry, you should re-sign the role metadata", "Snapshot should show near expiry") |
| 996 | + require.NotContains(t, b.String(), "timestamp", "there should be no logrus warnings pertaining to timestamp") |
| 997 | +} |
| 998 | + |
| 999 | +func TestAllNotNearExpiry(t *testing.T) { |
| 1000 | + repo, _, err := testutils.EmptyRepo("docker.com/notary") |
| 1001 | + require.NoError(t, err) |
| 1002 | + notnearexpdate := time.Now().AddDate(0, 10, 0) |
| 1003 | + repo.Root.Signed.SignedCommon.Expires = notnearexpdate |
| 1004 | + repo.Snapshot.Signed.SignedCommon.Expires = notnearexpdate |
| 1005 | + repo.Targets["targets"].Signed.Expires = notnearexpdate |
| 1006 | + _, err1 := repo.InitTargets("targets/noexp") |
| 1007 | + require.NoError(t, err1) |
| 1008 | + repo.Targets["targets/noexp"].Signed.Expires = notnearexpdate |
| 1009 | + //Reset levels to display warnings through logrus |
| 1010 | + orgLevel := log.GetLevel() |
| 1011 | + log.SetLevel(log.WarnLevel) |
| 1012 | + defer log.SetLevel(orgLevel) |
| 1013 | + a := bytes.NewBuffer(nil) |
| 1014 | + log.SetOutput(a) |
| 1015 | + warnRolesNearExpiry(repo) |
| 1016 | + require.NotContains(t, a.String(), "targets metadata is nearing expiry, you should re-sign the role metadata", "targets should not show near expiry") |
| 1017 | + require.NotContains(t, a.String(), "targets/noexp metadata is nearing expiry, you should re-sign the role metadata", "targets/noexp should not show near expiry") |
| 1018 | + require.NotContains(t, a.String(), "root is nearing expiry, you should re-sign the role metadata", "Root should not show near expiry") |
| 1019 | + require.NotContains(t, a.String(), "snapshot is nearing expiry, you should re-sign the role metadata", "Snapshot should not show near expiry") |
| 1020 | + require.NotContains(t, a.String(), "timestamp", "there should be no logrus warnings pertaining to timestamp") |
| 1021 | +} |
0 commit comments