...

Source file src/github.com/ory/fosite/request_test.go

Documentation: github.com/ory/fosite

     1  /*
     2   * Copyright © 2015-2018 Aeneas Rekkas <aeneas+oss@aeneas.io>
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *
     8   *     http://www.apache.org/licenses/LICENSE-2.0
     9   *
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   *
    16   * @author		Aeneas Rekkas <aeneas+oss@aeneas.io>
    17   * @copyright 	2015-2018 Aeneas Rekkas <aeneas+oss@aeneas.io>
    18   * @license 	Apache-2.0
    19   *
    20   */
    21  
    22  package fosite_test
    23  
    24  import (
    25  	"net/url"
    26  	"testing"
    27  	"time"
    28  
    29  	"github.com/stretchr/testify/assert"
    30  
    31  	. "github.com/ory/fosite"
    32  )
    33  
    34  func TestRequest(t *testing.T) {
    35  	r := &Request{
    36  		RequestedAt:       time.Now().UTC(),
    37  		Client:            &DefaultClient{},
    38  		RequestedScope:    Arguments{"scope"},
    39  		GrantedScope:      Arguments{"scope"},
    40  		RequestedAudience: Arguments{"scope"},
    41  		GrantedAudience:   Arguments{"scope"},
    42  		Form:              url.Values{"foo": []string{"bar"}},
    43  		Session:           new(DefaultSession),
    44  	}
    45  
    46  	assert.Equal(t, r.RequestedAt, r.GetRequestedAt())
    47  	assert.Equal(t, r.Client, r.GetClient())
    48  	assert.Equal(t, r.GrantedScope, r.GetGrantedScopes())
    49  	assert.Equal(t, r.RequestedScope, r.GetRequestedScopes())
    50  	assert.Equal(t, r.Form, r.GetRequestForm())
    51  	assert.Equal(t, r.Session, r.GetSession())
    52  }
    53  
    54  func TestMergeRequest(t *testing.T) {
    55  	a := &Request{
    56  		ID:                "123",
    57  		RequestedAt:       time.Now().UTC(),
    58  		Client:            &DefaultClient{ID: "123"},
    59  		RequestedScope:    Arguments{"scope-3", "scope-4"},
    60  		RequestedAudience: Arguments{"aud-3", "aud-4"},
    61  		GrantedScope:      []string{"scope-1", "scope-2"},
    62  		GrantedAudience:   []string{"aud-1", "aud-2"},
    63  		Form:              url.Values{"foo": []string{"fasdf"}},
    64  		Session:           new(DefaultSession),
    65  	}
    66  	b := &Request{
    67  		RequestedAt:    time.Now().UTC(),
    68  		Client:         &DefaultClient{},
    69  		RequestedScope: Arguments{},
    70  		GrantedScope:   []string{},
    71  		Form:           url.Values{},
    72  		Session:        new(DefaultSession),
    73  	}
    74  
    75  	b.Merge(a)
    76  	assert.EqualValues(t, a.RequestedAt, b.RequestedAt)
    77  	assert.EqualValues(t, a.Client, b.Client)
    78  	assert.EqualValues(t, a.RequestedScope, b.RequestedScope)
    79  	assert.EqualValues(t, a.RequestedAudience, b.RequestedAudience)
    80  	assert.EqualValues(t, a.GrantedScope, b.GrantedScope)
    81  	assert.EqualValues(t, a.GrantedAudience, b.GrantedAudience)
    82  	assert.EqualValues(t, a.Form, b.Form)
    83  	assert.EqualValues(t, a.Session, b.Session)
    84  	assert.EqualValues(t, a.ID, b.ID)
    85  }
    86  
    87  func TestSanitizeRequest(t *testing.T) {
    88  	a := &Request{
    89  		RequestedAt:    time.Now().UTC(),
    90  		Client:         &DefaultClient{ID: "123"},
    91  		RequestedScope: Arguments{"asdff"},
    92  		GrantedScope:   []string{"asdf"},
    93  		Form: url.Values{
    94  			"foo": []string{"fasdf"},
    95  			"bar": []string{"fasdf", "faaaa"},
    96  			"baz": []string{"fasdf"},
    97  		},
    98  		Session: new(DefaultSession),
    99  	}
   100  
   101  	b := a.Sanitize([]string{"bar", "baz"})
   102  	assert.NotEqual(t, a.Form.Encode(), b.GetRequestForm().Encode())
   103  
   104  	assert.Empty(t, b.GetRequestForm().Get("foo"))
   105  	assert.Equal(t, "fasdf", b.GetRequestForm().Get("bar"))
   106  	assert.Equal(t, []string{"fasdf", "faaaa"}, b.GetRequestForm()["bar"])
   107  	assert.Equal(t, "fasdf", b.GetRequestForm().Get("baz"))
   108  
   109  	assert.Equal(t, "fasdf", a.GetRequestForm().Get("foo"))
   110  	assert.Equal(t, "fasdf", a.GetRequestForm().Get("bar"))
   111  	assert.Equal(t, []string{"fasdf", "faaaa"}, a.GetRequestForm()["bar"])
   112  	assert.Equal(t, "fasdf", a.GetRequestForm().Get("baz"))
   113  }
   114  
   115  func TestIdentifyRequest(t *testing.T) {
   116  	a := &Request{
   117  		RequestedAt:    time.Now().UTC(),
   118  		Client:         &DefaultClient{},
   119  		RequestedScope: Arguments{},
   120  		GrantedScope:   []string{},
   121  		Form:           url.Values{"foo": []string{"bar"}},
   122  		Session:        new(DefaultSession),
   123  	}
   124  
   125  	b := a.Sanitize([]string{})
   126  	b.GetID()
   127  	assert.Equal(t, a.ID, b.GetID())
   128  }
   129  

View as plain text