package connector import ( "html/template" "net/url" "testing" "github.com/coreos/go-oidc/oidc" ) var ( ns url.URL lf oidc.LoginFunc templates *template.Template ) func init() { templates = template.New(LDAPLoginPageTemplateName) } func TestLDAPConnectorConfigValidTLS(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", UseTLS: true, UseSSL: false, } _, err := cc.Connector(ns, lf, templates) if err != nil { t.Fatal(err) } } func TestLDAPConnectorConfigInvalidSSLandTLS(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", UseTLS: true, UseSSL: true, } _, err := cc.Connector(ns, lf, templates) if err == nil { t.Fatal("Expected LDAPConnector initialization to fail when both TLS and SSL enabled.") } } func TestLDAPConnectorConfigValidSearchScope(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", SearchScope: "one", } _, err := cc.Connector(ns, lf, templates) if err != nil { t.Fatal(err) } } func TestLDAPConnectorConfigInvalidSearchScope(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", SearchScope: "three", } _, err := cc.Connector(ns, lf, templates) if err == nil { t.Fatal("Expected LDAPConnector initialization to fail when invalid value provided for SearchScope.") } } func TestLDAPConnectorConfigInvalidCertFileNoKeyFile(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", CertFile: "/tmp/ldap.crt", } _, err := cc.Connector(ns, lf, templates) if err == nil { t.Fatal("Expected LDAPConnector initialization to fail when CertFile specified without KeyFile.") } } func TestLDAPConnectorConfigValidCertFileAndKeyFile(t *testing.T) { cc := LDAPConnectorConfig{ ID: "ldap", Host: "example.com:636", CertFile: "/tmp/ldap.crt", KeyFile: "/tmp/ldap.key", } _, err := cc.Connector(ns, lf, templates) if err != nil { t.Fatal(err) } }