52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
package akamai
 | 
						|
 | 
						|
import (
 | 
						|
	"bytes"
 | 
						|
	"fmt"
 | 
						|
	"net/http"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/cactus/go-statsd-client/statsd"
 | 
						|
	"github.com/letsencrypt/boulder/Godeps/_workspace/src/github.com/jmhodges/clock"
 | 
						|
 | 
						|
	"github.com/letsencrypt/boulder/test"
 | 
						|
)
 | 
						|
 | 
						|
func TestConstructAuthHeader(t *testing.T) {
 | 
						|
	stats, _ := statsd.NewNoopClient(nil)
 | 
						|
	cpc, err := NewCachePurgeClient(
 | 
						|
		"https://akaa-baseurl-xxxxxxxxxxx-xxxxxxxxxxxxx.luna.akamaiapis.net",
 | 
						|
		"akab-client-token-xxx-xxxxxxxxxxxxxxxx",
 | 
						|
		"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
 | 
						|
		"akab-access-token-xxx-xxxxxxxxxxxxxxxx",
 | 
						|
		0,
 | 
						|
		time.Second,
 | 
						|
		nil,
 | 
						|
		stats,
 | 
						|
	)
 | 
						|
	test.AssertNotError(t, err, "Failed to create cache purge client")
 | 
						|
	fc := clock.NewFake()
 | 
						|
	cpc.clk = fc
 | 
						|
	wantedTimestamp, err := time.Parse(timestampFormat, "20140321T19:34:21+0000")
 | 
						|
	test.AssertNotError(t, err, "Failed to parse timestamp")
 | 
						|
	fc.Add(wantedTimestamp.Sub(fc.Now()))
 | 
						|
 | 
						|
	req, err := http.NewRequest(
 | 
						|
		"POST",
 | 
						|
		fmt.Sprintf("%s%s", cpc.apiEndpoint, purgePath),
 | 
						|
		bytes.NewBuffer([]byte{0}),
 | 
						|
	)
 | 
						|
	test.AssertNotError(t, err, "Failed to create request")
 | 
						|
 | 
						|
	expectedHeader := "EG1-HMAC-SHA256 client_token=akab-client-token-xxx-xxxxxxxxxxxxxxxx;access_token=akab-access-token-xxx-xxxxxxxxxxxxxxxx;timestamp=20140321T19:34:21+0000;nonce=nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;signature=hXm4iCxtpN22m4cbZb4lVLW5rhX8Ca82vCFqXzSTPe4="
 | 
						|
	authHeader, err := cpc.constructAuthHeader(
 | 
						|
		req,
 | 
						|
		[]byte("datadatadatadatadatadatadatadata"),
 | 
						|
		"/testapi/v1/t3",
 | 
						|
		"nonce-xx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
 | 
						|
	)
 | 
						|
	test.AssertNotError(t, err, "Failed to create authorization header")
 | 
						|
	test.AssertEquals(t, authHeader, expectedHeader)
 | 
						|
}
 |