Merge branch 'eliquious-fix-multiple-audience-bug'
diff --git a/jwt/claims_test.go b/jwt/claims_test.go
index e22cb07..c5edd70 100644
--- a/jwt/claims_test.go
+++ b/jwt/claims_test.go
@@ -1 +1,85 @@
-package jwt
+package jwt_test
+
+import (
+ "testing"
+
+ "github.com/SermoDigital/jose/crypto"
+ "github.com/SermoDigital/jose/jws"
+)
+
+func TestMultipleAudienceBug_AfterMarshal(t *testing.T) {
+
+ // Create JWS claims
+ claims := jws.Claims{}
+ claims.SetAudience("example.com", "api.example.com")
+
+ token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+ serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+ // Unmarshal JSON
+ newToken, _ := jws.ParseJWT(serializedToken)
+
+ c := newToken.Claims()
+
+ // Get Audience
+ aud, ok := c.Audience()
+ if !ok {
+
+ // Fails
+ t.Fail()
+ }
+
+ t.Logf("aud Value: %s", aud)
+ t.Logf("aud Type : %T", aud)
+}
+
+func TestMultipleAudienceFix_AfterMarshal(t *testing.T) {
+ // Create JWS claims
+ claims := jws.Claims{}
+ claims.SetAudience("example.com", "api.example.com")
+
+ token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+ serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+ // Unmarshal JSON
+ newToken, _ := jws.ParseJWT(serializedToken)
+
+ c := newToken.Claims()
+
+ // Get Audience
+ aud, ok := c.Audience()
+ if !ok {
+
+ // Fails
+ t.Fail()
+ }
+
+ t.Logf("aud len(): %d", len(aud))
+ t.Logf("aud Value: %s", aud)
+ t.Logf("aud Type : %T", aud)
+}
+
+func TestSingleAudienceFix_AfterMarshal(t *testing.T) {
+ // Create JWS claims
+ claims := jws.Claims{}
+ claims.SetAudience("example.com")
+
+ token := jws.NewJWT(claims, crypto.SigningMethodHS256)
+ serializedToken, _ := token.Serialize([]byte("abcdef"))
+
+ // Unmarshal JSON
+ newToken, _ := jws.ParseJWT(serializedToken)
+ c := newToken.Claims()
+
+ // Get Audience
+ aud, ok := c.Audience()
+ if !ok {
+
+ // Fails
+ t.Fail()
+ }
+
+ t.Logf("aud len(): %d", len(aud))
+ t.Logf("aud Value: %s", aud)
+ t.Logf("aud Type : %T", aud)
+}