56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
package providers
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net/url"
 | 
						|
	"testing"
 | 
						|
	"time"
 | 
						|
 | 
						|
	"github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
)
 | 
						|
 | 
						|
func TestRefresh(t *testing.T) {
 | 
						|
	p := &ProviderData{}
 | 
						|
 | 
						|
	expires := time.Now().Add(time.Duration(-11) * time.Minute)
 | 
						|
	refreshed, err := p.RefreshSessionIfNeeded(context.Background(), &sessions.SessionState{
 | 
						|
		ExpiresOn: &expires,
 | 
						|
	})
 | 
						|
	assert.Equal(t, false, refreshed)
 | 
						|
	assert.Equal(t, nil, err)
 | 
						|
}
 | 
						|
 | 
						|
func TestAcrValuesNotConfigured(t *testing.T) {
 | 
						|
	p := &ProviderData{
 | 
						|
		LoginURL: &url.URL{
 | 
						|
			Scheme: "http",
 | 
						|
			Host:   "my.test.idp",
 | 
						|
			Path:   "/oauth/authorize",
 | 
						|
		},
 | 
						|
	}
 | 
						|
 | 
						|
	result := p.GetLoginURL("https://my.test.app/oauth", "")
 | 
						|
	assert.NotContains(t, result, "acr_values")
 | 
						|
}
 | 
						|
 | 
						|
func TestAcrValuesConfigured(t *testing.T) {
 | 
						|
	p := &ProviderData{
 | 
						|
		LoginURL: &url.URL{
 | 
						|
			Scheme: "http",
 | 
						|
			Host:   "my.test.idp",
 | 
						|
			Path:   "/oauth/authorize",
 | 
						|
		},
 | 
						|
		AcrValues: "testValue",
 | 
						|
	}
 | 
						|
 | 
						|
	result := p.GetLoginURL("https://my.test.app/oauth", "")
 | 
						|
	assert.Contains(t, result, "acr_values=testValue")
 | 
						|
}
 | 
						|
 | 
						|
func TestEnrichSessionState(t *testing.T) {
 | 
						|
	p := &ProviderData{}
 | 
						|
	s := &sessions.SessionState{}
 | 
						|
	assert.NoError(t, p.EnrichSessionState(context.Background(), s))
 | 
						|
}
 |