Refactor the multi-host salt install page.
[arvados.git] / services / keepstore / perms_test.go
index 43717b23720d8c71b32c126810f8e39dd41a0429..13223747063cd79850454088d5cb5ae08823f00b 100644 (file)
@@ -1,9 +1,15 @@
-package main
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+package keepstore
 
 import (
        "strconv"
-       "testing"
        "time"
+
+       "git.arvados.org/arvados.git/sdk/go/arvados"
+       check "gopkg.in/check.v1"
 )
 
 const (
@@ -17,51 +23,41 @@ const (
                "gokee3eamvjy8qq1fvy238838enjmy5wzy2md7yvsitp5vztft6j4q866efym7e6" +
                "vu5wm9fpnwjyxfldw3vbo01mgjs75rgo7qioh8z8ij7jpyp8508okhgbbex3ceei" +
                "786u5rw2a9gx743dj3fgq2irk"
-       knownSignatureTTL  = 1209600 * time.Second
+       knownSignatureTTL  = arvados.Duration(24 * 14 * time.Hour)
        knownSignature     = "89118b78732c33104a4d6231e8b5a5fa1e4301e3"
        knownTimestamp     = "7fffffff"
        knownSigHint       = "+A" + knownSignature + "@" + knownTimestamp
        knownSignedLocator = knownLocator + knownSigHint
 )
 
-func TestSignLocator(t *testing.T) {
-       defer func(b []byte) {
-               PermissionSecret = b
-       }(PermissionSecret)
-
+func (s *HandlerSuite) TestSignLocator(c *check.C) {
        tsInt, err := strconv.ParseInt(knownTimestamp, 16, 0)
        if err != nil {
-               t.Fatal(err)
+               c.Fatal(err)
        }
        t0 := time.Unix(tsInt, 0)
 
-       blobSignatureTTL = knownSignatureTTL
-
-       PermissionSecret = []byte(knownKey)
-       if x := SignLocator(knownLocator, knownToken, t0); x != knownSignedLocator {
-               t.Fatalf("Got %+q, expected %+q", x, knownSignedLocator)
+       s.cluster.Collections.BlobSigningTTL = knownSignatureTTL
+       s.cluster.Collections.BlobSigningKey = knownKey
+       if x := SignLocator(s.cluster, knownLocator, knownToken, t0); x != knownSignedLocator {
+               c.Fatalf("Got %+q, expected %+q", x, knownSignedLocator)
        }
 
-       PermissionSecret = []byte("arbitrarykey")
-       if x := SignLocator(knownLocator, knownToken, t0); x == knownSignedLocator {
-               t.Fatalf("Got same signature %+q, even though PermissionSecret changed", x)
+       s.cluster.Collections.BlobSigningKey = "arbitrarykey"
+       if x := SignLocator(s.cluster, knownLocator, knownToken, t0); x == knownSignedLocator {
+               c.Fatalf("Got same signature %+q, even though blobSigningKey changed", x)
        }
 }
 
-func TestVerifyLocator(t *testing.T) {
-       defer func(b []byte) {
-               PermissionSecret = b
-       }(PermissionSecret)
-
-       blobSignatureTTL = knownSignatureTTL
-
-       PermissionSecret = []byte(knownKey)
-       if err := VerifySignature(knownSignedLocator, knownToken); err != nil {
-               t.Fatal(err)
+func (s *HandlerSuite) TestVerifyLocator(c *check.C) {
+       s.cluster.Collections.BlobSigningTTL = knownSignatureTTL
+       s.cluster.Collections.BlobSigningKey = knownKey
+       if err := VerifySignature(s.cluster, knownSignedLocator, knownToken); err != nil {
+               c.Fatal(err)
        }
 
-       PermissionSecret = []byte("arbitrarykey")
-       if err := VerifySignature(knownSignedLocator, knownToken); err == nil {
-               t.Fatal("Verified signature even with wrong PermissionSecret")
+       s.cluster.Collections.BlobSigningKey = "arbitrarykey"
+       if err := VerifySignature(s.cluster, knownSignedLocator, knownToken); err == nil {
+               c.Fatal("Verified signature even with wrong blobSigningKey")
        }
 }