123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- // Copyright 2015 go-swagger maintainers
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- package spec
- import (
- "testing"
- )
- func TestSerialization_AuthSerialization(t *testing.T) {
- assertSerializeJSON(t, BasicAuth(), `{"type":"basic"}`)
- assertSerializeJSON(t, APIKeyAuth("api-key", "header"), `{"type":"apiKey","name":"api-key","in":"header"}`)
- assertSerializeJSON(
- t,
- OAuth2Implicit("http://foo.com/authorization"),
- `{"type":"oauth2","flow":"implicit","authorizationUrl":"http://foo.com/authorization"}`)
- assertSerializeJSON(
- t,
- OAuth2Password("http://foo.com/token"),
- `{"type":"oauth2","flow":"password","tokenUrl":"http://foo.com/token"}`)
- assertSerializeJSON(t,
- OAuth2Application("http://foo.com/token"),
- `{"type":"oauth2","flow":"application","tokenUrl":"http://foo.com/token"}`)
- assertSerializeJSON(
- t,
- OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token"),
- `{"type":"oauth2","flow":"accessCode","authorizationUrl":"http://foo.com/authorization",`+
- `"tokenUrl":"http://foo.com/token"}`)
- auth1 := OAuth2Implicit("http://foo.com/authorization")
- auth1.AddScope("email", "read your email")
- assertSerializeJSON(
- t,
- auth1,
- `{"type":"oauth2","flow":"implicit","authorizationUrl":"http://foo.com/authorization",`+
- `"scopes":{"email":"read your email"}}`)
- auth2 := OAuth2Password("http://foo.com/authorization")
- auth2.AddScope("email", "read your email")
- assertSerializeJSON(
- t,
- auth2,
- `{"type":"oauth2","flow":"password","tokenUrl":"http://foo.com/authorization",`+
- `"scopes":{"email":"read your email"}}`)
- auth3 := OAuth2Application("http://foo.com/token")
- auth3.AddScope("email", "read your email")
- assertSerializeJSON(
- t,
- auth3,
- `{"type":"oauth2","flow":"application","tokenUrl":"http://foo.com/token","scopes":{"email":"read your email"}}`)
- auth4 := OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token")
- auth4.AddScope("email", "read your email")
- assertSerializeJSON(
- t,
- auth4,
- `{"type":"oauth2","flow":"accessCode","authorizationUrl":"http://foo.com/authorization",`+
- `"tokenUrl":"http://foo.com/token","scopes":{"email":"read your email"}}`)
- }
- func TestSerialization_AuthDeserialization(t *testing.T) {
- assertParsesJSON(t, `{"type":"basic"}`, BasicAuth())
- assertParsesJSON(
- t,
- `{"in":"header","name":"api-key","type":"apiKey"}`,
- APIKeyAuth("api-key", "header"))
- assertParsesJSON(
- t,
- `{"authorizationUrl":"http://foo.com/authorization","flow":"implicit","type":"oauth2"}`,
- OAuth2Implicit("http://foo.com/authorization"))
- assertParsesJSON(
- t,
- `{"flow":"password","tokenUrl":"http://foo.com/token","type":"oauth2"}`,
- OAuth2Password("http://foo.com/token"))
- assertParsesJSON(
- t,
- `{"flow":"application","tokenUrl":"http://foo.com/token","type":"oauth2"}`,
- OAuth2Application("http://foo.com/token"))
- assertParsesJSON(
- t,
- `{"authorizationUrl":"http://foo.com/authorization","flow":"accessCode","tokenUrl":"http://foo.com/token",`+
- `"type":"oauth2"}`,
- OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token"))
- auth1 := OAuth2Implicit("http://foo.com/authorization")
- auth1.AddScope("email", "read your email")
- assertParsesJSON(t,
- `{"authorizationUrl":"http://foo.com/authorization","flow":"implicit","scopes":{"email":"read your email"},`+
- `"type":"oauth2"}`,
- auth1)
- auth2 := OAuth2Password("http://foo.com/token")
- auth2.AddScope("email", "read your email")
- assertParsesJSON(t,
- `{"flow":"password","scopes":{"email":"read your email"},"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
- auth2)
- auth3 := OAuth2Application("http://foo.com/token")
- auth3.AddScope("email", "read your email")
- assertParsesJSON(t,
- `{"flow":"application","scopes":{"email":"read your email"},"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
- auth3)
- auth4 := OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token")
- auth4.AddScope("email", "read your email")
- assertParsesJSON(
- t,
- `{"authorizationUrl":"http://foo.com/authorization","flow":"accessCode","scopes":{"email":"read your email"},`+
- `"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
- auth4)
- }
|