Test IsValidRedirect method
This commit is contained in:
		
							parent
							
								
									2a1691a994
								
							
						
					
					
						commit
						768a6ce989
					
				|  | @ -93,6 +93,44 @@ func TestRobotsTxt(t *testing.T) { | ||||||
| 	assert.Equal(t, "User-agent: *\nDisallow: /", rw.Body.String()) | 	assert.Equal(t, "User-agent: *\nDisallow: /", rw.Body.String()) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func TestIsValidRedirect(t *testing.T) { | ||||||
|  | 	opts := NewOptions() | ||||||
|  | 	opts.ClientID = "bazquux" | ||||||
|  | 	opts.ClientSecret = "foobar" | ||||||
|  | 	opts.CookieSecret = "xyzzyplugh" | ||||||
|  | 	opts.WhitelistDomains = []string{"foo.bar"} | ||||||
|  | 	opts.Validate() | ||||||
|  | 
 | ||||||
|  | 	proxy := NewOAuthProxy(opts, func(string) bool { return true }) | ||||||
|  | 
 | ||||||
|  | 	noRD := proxy.IsValidRedirect("") | ||||||
|  | 	assert.Equal(t, false, noRD) | ||||||
|  | 
 | ||||||
|  | 	singleSlash := proxy.IsValidRedirect("/redirect") | ||||||
|  | 	assert.Equal(t, true, singleSlash) | ||||||
|  | 
 | ||||||
|  | 	doubleSlash := proxy.IsValidRedirect("//redirect") | ||||||
|  | 	assert.Equal(t, false, doubleSlash) | ||||||
|  | 
 | ||||||
|  | 	validHTTP := proxy.IsValidRedirect("http://baz.foo.bar/redirect") | ||||||
|  | 	assert.Equal(t, true, validHTTP) | ||||||
|  | 
 | ||||||
|  | 	validHTTPS := proxy.IsValidRedirect("https://baz.foo.bar/redirect") | ||||||
|  | 	assert.Equal(t, true, validHTTPS) | ||||||
|  | 
 | ||||||
|  | 	invalidHTTP1 := proxy.IsValidRedirect("http://foo.bar.evil.corp/redirect") | ||||||
|  | 	assert.Equal(t, false, invalidHTTP1) | ||||||
|  | 
 | ||||||
|  | 	invalidHTTPS1 := proxy.IsValidRedirect("https://foo.bar.evil.corp/redirect") | ||||||
|  | 	assert.Equal(t, false, invalidHTTPS1) | ||||||
|  | 
 | ||||||
|  | 	invalidHTTP2 := proxy.IsValidRedirect("http://evil.corp/redirect?rd=foo.bar") | ||||||
|  | 	assert.Equal(t, false, invalidHTTP2) | ||||||
|  | 
 | ||||||
|  | 	invalidHTTPS2 := proxy.IsValidRedirect("https://evil.corp/redirect?rd=foo.bar") | ||||||
|  | 	assert.Equal(t, false, invalidHTTPS2) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| type TestProvider struct { | type TestProvider struct { | ||||||
| 	*providers.ProviderData | 	*providers.ProviderData | ||||||
| 	EmailAddress string | 	EmailAddress string | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue