@@ -107,7 +107,7 @@ func TestGitHubProviderOverrides(t *testing.T) {
107 assert.Equal(t, "profile", p.Data().Scope)
107 assert.Equal(t, "profile", p.Data().Scope)
110−func TestGitHubProviderGetEmailAddress(t *testing.T) {
110+func TestGitHubProvider_getEmail(t *testing.T) {
111 b := testGitHubBackend(map[string][]string{
111 b := testGitHubBackend(map[string][]string{
112 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
112 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -117,14 +117,14 @@ func TestGitHubProviderGetEmailAddress(t *testing.T) {
117 p := testGitHubProvider(bURL.Host)
117 p := testGitHubProvider(bURL.Host)
119 session := CreateAuthorizedSession()
119 session := CreateAuthorizedSession()
120− email, err := p.GetEmailAddress(context.Background(), session)
120+ err := p.getEmail(context.Background(), session)
121− assert.Equal(t, nil, err)
121+ assert.NoError(t, err)
122− assert.Equal(t, "michael.bland@gsa.gov", email)
122+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
125−func TestGitHubProviderGetEmailAddressNotVerified(t *testing.T) {
125+func TestGitHubProvider_getEmailNotVerified(t *testing.T) {
126 b := testGitHubBackend(map[string][]string{
126 b := testGitHubBackend(map[string][]string{
127− "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
127+ "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": false, "primary": true} ]`},
129 defer b.Close()
129 defer b.Close()
@@ -132,12 +132,12 @@ func TestGitHubProviderGetEmailAddressNotVerified(t *testing.T) {
132 p := testGitHubProvider(bURL.Host)
132 p := testGitHubProvider(bURL.Host)
134 session := CreateAuthorizedSession()
134 session := CreateAuthorizedSession()
135− email, err := p.GetEmailAddress(context.Background(), session)
135+ err := p.getEmail(context.Background(), session)
136− assert.Equal(t, nil, err)
136+ assert.NoError(t, err)
137− assert.Empty(t, "", email)
137+ assert.Empty(t, session.Email)
140−func TestGitHubProviderGetEmailAddressWithOrg(t *testing.T) {
140+func TestGitHubProvider_getEmailWithOrg(t *testing.T) {
141 b := testGitHubBackend(map[string][]string{
141 b := testGitHubBackend(map[string][]string{
142 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
142 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
143 "/user/orgs": {
143 "/user/orgs": {
@@ -153,12 +153,12 @@ func TestGitHubProviderGetEmailAddressWithOrg(t *testing.T) {
153 p.Org = "testorg1"
153 p.Org = "testorg1"
155 session := CreateAuthorizedSession()
155 session := CreateAuthorizedSession()
156− email, err := p.GetEmailAddress(context.Background(), session)
156+ err := p.getEmail(context.Background(), session)
157− assert.Equal(t, nil, err)
157+ assert.NoError(t, err)
158− assert.Equal(t, "michael.bland@gsa.gov", email)
158+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
161−func TestGitHubProviderGetEmailAddressWithWriteAccessToPublicRepo(t *testing.T) {
161+func TestGitHubProvider_getEmailWithWriteAccessToPublicRepo(t *testing.T) {
162 b := testGitHubBackend(map[string][]string{
162 b := testGitHubBackend(map[string][]string{
163 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": true}, "private": false}`},
163 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": true}, "private": false}`},
164 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
164 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -170,12 +170,12 @@ func TestGitHubProviderGetEmailAddressWithWriteAccessToPublicRepo(t *testing.T)
170 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
170 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
172 session := CreateAuthorizedSession()
172 session := CreateAuthorizedSession()
173− email, err := p.GetEmailAddress(context.Background(), session)
173+ err := p.getEmail(context.Background(), session)
174− assert.Equal(t, nil, err)
174+ assert.NoError(t, err)
175− assert.Equal(t, "michael.bland@gsa.gov", email)
175+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
178−func TestGitHubProviderGetEmailAddressWithReadOnlyAccessToPrivateRepo(t *testing.T) {
178+func TestGitHubProvider_getEmailWithReadOnlyAccessToPrivateRepo(t *testing.T) {
179 b := testGitHubBackend(map[string][]string{
179 b := testGitHubBackend(map[string][]string{
180 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": false}, "private": true}`},
180 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": false}, "private": true}`},
181 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
181 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -187,12 +187,12 @@ func TestGitHubProviderGetEmailAddressWithReadOnlyAccessToPrivateRepo(t *testing
187 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
187 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
189 session := CreateAuthorizedSession()
189 session := CreateAuthorizedSession()
190− email, err := p.GetEmailAddress(context.Background(), session)
190+ err := p.getEmail(context.Background(), session)
191− assert.Equal(t, nil, err)
191+ assert.NoError(t, err)
192− assert.Equal(t, "michael.bland@gsa.gov", email)
192+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
195−func TestGitHubProviderGetEmailAddressWithWriteAccessToPrivateRepo(t *testing.T) {
195+func TestGitHubProvider_getEmailWithWriteAccessToPrivateRepo(t *testing.T) {
196 b := testGitHubBackend(map[string][]string{
196 b := testGitHubBackend(map[string][]string{
197 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": true}, "private": true}`},
197 "/repo/oauth2-proxy/oauth2-proxy": {`{"permissions": {"pull": true, "push": true}, "private": true}`},
198 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
198 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -204,14 +204,14 @@ func TestGitHubProviderGetEmailAddressWithWriteAccessToPrivateRepo(t *testing.T)
204 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
204 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
206 session := CreateAuthorizedSession()
206 session := CreateAuthorizedSession()
207− email, err := p.GetEmailAddress(context.Background(), session)
207+ err := p.getEmail(context.Background(), session)
208− assert.Equal(t, nil, err)
208+ assert.NoError(t, err)
209− assert.Equal(t, "michael.bland@gsa.gov", email)
209+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
212−func TestGitHubProviderGetEmailAddressWithNoAccessToPrivateRepo(t *testing.T) {
212+func TestGitHubProvider_getEmailWithNoAccessToPrivateRepo(t *testing.T) {
213 b := testGitHubBackend(map[string][]string{
213 b := testGitHubBackend(map[string][]string{
214− "/repo/oauth2-proxy/oauth2-proxy": {},
214+ "/repo/oauth2-proxy/oauth2-proxy": {`{}`},
216 defer b.Close()
216 defer b.Close()
@@ -220,12 +220,12 @@ func TestGitHubProviderGetEmailAddressWithNoAccessToPrivateRepo(t *testing.T) {
220 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
220 p.SetRepo("oauth2-proxy/oauth2-proxy", "")
222 session := CreateAuthorizedSession()
222 session := CreateAuthorizedSession()
223− email, err := p.GetEmailAddress(context.Background(), session)
223+ err := p.getEmail(context.Background(), session)
224− assert.NotEqual(t, nil, err)
224+ assert.NoError(t, err)
225− assert.Equal(t, "", email)
225+ assert.Empty(t, session.Email)
228−func TestGitHubProviderGetEmailAddressWithToken(t *testing.T) {
228+func TestGitHubProvider_getEmailWithToken(t *testing.T) {
229 b := testGitHubBackend(map[string][]string{
229 b := testGitHubBackend(map[string][]string{
230 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
230 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -236,14 +236,14 @@ func TestGitHubProviderGetEmailAddressWithToken(t *testing.T) {
236 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
236 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
238 session := CreateAuthorizedSession()
238 session := CreateAuthorizedSession()
239− email, err := p.GetEmailAddress(context.Background(), session)
239+ err := p.getEmail(context.Background(), session)
240− assert.Equal(t, nil, err)
240+ assert.NoError(t, err)
241− assert.Equal(t, "michael.bland@gsa.gov", email)
241+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
244// Note that trying to trigger the "failed building request" case is not
244// Note that trying to trigger the "failed building request" case is not
245// practical, since the only way it can fail is if the URL fails to parse.
245// practical, since the only way it can fail is if the URL fails to parse.
246−func TestGitHubProviderGetEmailAddressFailedRequest(t *testing.T) {
246+func TestGitHubProvider_getEmailFailedRequest(t *testing.T) {
247 b := testGitHubBackend(map[string][]string{})
247 b := testGitHubBackend(map[string][]string{})
248 defer b.Close()
248 defer b.Close()
@@ -254,12 +254,12 @@ func TestGitHubProviderGetEmailAddressFailedRequest(t *testing.T) {
254 // token. Alternatively, we could allow the parsing of the payload as
254 // token. Alternatively, we could allow the parsing of the payload as
255 // JSON to fail.
255 // JSON to fail.
256 session := &sessions.SessionState{AccessToken: "unexpected_access_token"}
256 session := &sessions.SessionState{AccessToken: "unexpected_access_token"}
257− email, err := p.GetEmailAddress(context.Background(), session)
257+ err := p.getEmail(context.Background(), session)
258− assert.NotEqual(t, nil, err)
258+ assert.Error(t, err)
259− assert.Equal(t, "", email)
259+ assert.Empty(t, session.Email)
262−func TestGitHubProviderGetEmailAddressEmailNotPresentInPayload(t *testing.T) {
262+func TestGitHubProvider_getEmailNotPresentInPayload(t *testing.T) {
263 b := testGitHubBackend(map[string][]string{
263 b := testGitHubBackend(map[string][]string{
264 "/user/emails": {`{"foo": "bar"}`},
264 "/user/emails": {`{"foo": "bar"}`},
@@ -269,12 +269,12 @@ func TestGitHubProviderGetEmailAddressEmailNotPresentInPayload(t *testing.T) {
269 p := testGitHubProvider(bURL.Host)
269 p := testGitHubProvider(bURL.Host)
271 session := CreateAuthorizedSession()
271 session := CreateAuthorizedSession()
272− email, err := p.GetEmailAddress(context.Background(), session)
272+ err := p.getEmail(context.Background(), session)
273− assert.NotEqual(t, nil, err)
273+ assert.Error(t, err)
274− assert.Equal(t, "", email)
274+ assert.Empty(t, session.Email)
277−func TestGitHubProviderGetUserName(t *testing.T) {
277+func TestGitHubProvider_getUser(t *testing.T) {
278 b := testGitHubBackend(map[string][]string{
278 b := testGitHubBackend(map[string][]string{
279 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
279 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
@@ -284,12 +284,12 @@ func TestGitHubProviderGetUserName(t *testing.T) {
284 p := testGitHubProvider(bURL.Host)
284 p := testGitHubProvider(bURL.Host)
286 session := CreateAuthorizedSession()
286 session := CreateAuthorizedSession()
287− email, err := p.GetUserName(context.Background(), session)
287+ err := p.getUser(context.Background(), session)
288− assert.Equal(t, nil, err)
288+ assert.NoError(t, err)
289− assert.Equal(t, "mbland", email)
289+ assert.Equal(t, "mbland", session.User)
292−func TestGitHubProviderGetUserNameWithRepoAndToken(t *testing.T) {
292+func TestGitHubProvider_getUserWithRepoAndToken(t *testing.T) {
293 b := testGitHubBackend(map[string][]string{
293 b := testGitHubBackend(map[string][]string{
294 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
294 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
295 "/repos/oauth2-proxy/oauth2-proxy/collaborators/mbland": {""},
295 "/repos/oauth2-proxy/oauth2-proxy/collaborators/mbland": {""},
@@ -301,12 +301,12 @@ func TestGitHubProviderGetUserNameWithRepoAndToken(t *testing.T) {
301 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
301 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
303 session := CreateAuthorizedSession()
303 session := CreateAuthorizedSession()
304− email, err := p.GetUserName(context.Background(), session)
304+ err := p.getUser(context.Background(), session)
305− assert.Equal(t, nil, err)
305+ assert.NoError(t, err)
306− assert.Equal(t, "mbland", email)
306+ assert.Equal(t, "mbland", session.User)
309−func TestGitHubProviderGetUserNameWithRepoAndTokenWithoutPushAccess(t *testing.T) {
309+func TestGitHubProvider_getUserWithRepoAndTokenWithoutPushAccess(t *testing.T) {
310 b := testGitHubBackend(map[string][]string{})
310 b := testGitHubBackend(map[string][]string{})
311 defer b.Close()
311 defer b.Close()
@@ -315,12 +315,12 @@ func TestGitHubProviderGetUserNameWithRepoAndTokenWithoutPushAccess(t *testing.T
315 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
315 p.SetRepo("oauth2-proxy/oauth2-proxy", "token")
317 session := CreateAuthorizedSession()
317 session := CreateAuthorizedSession()
318− email, err := p.GetUserName(context.Background(), session)
318+ err := p.getUser(context.Background(), session)
319− assert.NotEqual(t, nil, err)
319+ assert.Error(t, err)
320− assert.Equal(t, "", email)
320+ assert.Empty(t, session.User)
323−func TestGitHubProviderGetEmailAddressWithUsername(t *testing.T) {
323+func TestGitHubProvider_getEmailWithUsername(t *testing.T) {
324 b := testGitHubBackend(map[string][]string{
324 b := testGitHubBackend(map[string][]string{
325 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
325 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
326 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
326 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -332,12 +332,12 @@ func TestGitHubProviderGetEmailAddressWithUsername(t *testing.T) {
332 p.SetUsers([]string{"mbland", "octocat"})
332 p.SetUsers([]string{"mbland", "octocat"})
334 session := CreateAuthorizedSession()
334 session := CreateAuthorizedSession()
335− email, err := p.GetEmailAddress(context.Background(), session)
335+ err := p.getEmail(context.Background(), session)
336− assert.Equal(t, nil, err)
336+ assert.NoError(t, err)
337− assert.Equal(t, "michael.bland@gsa.gov", email)
337+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
340−func TestGitHubProviderGetEmailAddressWithNotAllowedUsername(t *testing.T) {
340+func TestGitHubProvider_getEmailWithNotAllowedUsername(t *testing.T) {
341 b := testGitHubBackend(map[string][]string{
341 b := testGitHubBackend(map[string][]string{
342 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
342 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
343 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
343 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -349,12 +349,12 @@ func TestGitHubProviderGetEmailAddressWithNotAllowedUsername(t *testing.T) {
349 p.SetUsers([]string{"octocat"})
349 p.SetUsers([]string{"octocat"})
351 session := CreateAuthorizedSession()
351 session := CreateAuthorizedSession()
352− email, err := p.GetEmailAddress(context.Background(), session)
352+ err := p.getEmail(context.Background(), session)
353− assert.NotEqual(t, nil, err)
353+ assert.Error(t, err)
354− assert.Equal(t, "", email)
354+ assert.Empty(t, session.Email)
357−func TestGitHubProviderGetEmailAddressWithUsernameAndNotBelongToOrg(t *testing.T) {
357+func TestGitHubProvider_getEmailWithUsernameAndNotBelongToOrg(t *testing.T) {
358 b := testGitHubBackend(map[string][]string{
358 b := testGitHubBackend(map[string][]string{
359 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
359 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
360 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
360 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
@@ -371,16 +371,16 @@ func TestGitHubProviderGetEmailAddressWithUsernameAndNotBelongToOrg(t *testing.T
371 p.SetUsers([]string{"mbland"})
371 p.SetUsers([]string{"mbland"})
373 session := CreateAuthorizedSession()
373 session := CreateAuthorizedSession()
374− email, err := p.GetEmailAddress(context.Background(), session)
374+ err := p.getEmail(context.Background(), session)
375− assert.Equal(t, nil, err)
375+ assert.NoError(t, err)
376− assert.Equal(t, "michael.bland@gsa.gov", email)
376+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)
379−func TestGitHubProviderGetEmailAddressWithUsernameAndNoAccessToPrivateRepo(t *testing.T) {
379+func TestGitHubProvider_getEmailWithUsernameAndNoAccessToPrivateRepo(t *testing.T) {
380 b := testGitHubBackend(map[string][]string{
380 b := testGitHubBackend(map[string][]string{
381 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
381 "/user": {`{"email": "michael.bland@gsa.gov", "login": "mbland"}`},
382 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
382 "/user/emails": {`[ {"email": "michael.bland@gsa.gov", "verified": true, "primary": true} ]`},
383− "/repo/oauth2-proxy/oauth2-proxy": {},
383+ "/repo/oauth2-proxy/oauth2-proxy": {`{}`},
385 defer b.Close()
385 defer b.Close()
@@ -390,7 +390,7 @@ func TestGitHubProviderGetEmailAddressWithUsernameAndNoAccessToPrivateRepo(t *te
390 p.SetUsers([]string{"mbland"})
390 p.SetUsers([]string{"mbland"})
392 session := CreateAuthorizedSession()
392 session := CreateAuthorizedSession()
393− email, err := p.GetEmailAddress(context.Background(), session)
393+ err := p.getEmail(context.Background(), session)
394− assert.Equal(t, nil, err)
394+ assert.NoError(t, err)
395− assert.Equal(t, "michael.bland@gsa.gov", email)
395+ assert.Equal(t, "michael.bland@gsa.gov", session.Email)