github.com/wgh-/mattermost-server@v4.8.0-rc2+incompatible/model/authorize_test.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package model
     5  
     6  import (
     7  	"strings"
     8  	"testing"
     9  )
    10  
    11  func TestAuthJson(t *testing.T) {
    12  	a1 := AuthData{}
    13  	a1.ClientId = NewId()
    14  	a1.UserId = NewId()
    15  	a1.Code = NewId()
    16  
    17  	json := a1.ToJson()
    18  	ra1 := AuthDataFromJson(strings.NewReader(json))
    19  
    20  	if a1.Code != ra1.Code {
    21  		t.Fatal("codes didn't match")
    22  	}
    23  
    24  	a2 := AuthorizeRequest{}
    25  	a2.ClientId = NewId()
    26  	a2.Scope = NewId()
    27  
    28  	json = a2.ToJson()
    29  	ra2 := AuthorizeRequestFromJson(strings.NewReader(json))
    30  
    31  	if a2.ClientId != ra2.ClientId {
    32  		t.Fatal("client ids didn't match")
    33  	}
    34  }
    35  
    36  func TestAuthPreSave(t *testing.T) {
    37  	a1 := AuthData{}
    38  	a1.ClientId = NewId()
    39  	a1.UserId = NewId()
    40  	a1.Code = NewId()
    41  	a1.PreSave()
    42  	a1.IsExpired()
    43  }
    44  
    45  func TestAuthIsValid(t *testing.T) {
    46  
    47  	ad := AuthData{}
    48  
    49  	if err := ad.IsValid(); err == nil {
    50  		t.Fatal()
    51  	}
    52  
    53  	ad.ClientId = NewRandomString(28)
    54  	if err := ad.IsValid(); err == nil {
    55  		t.Fatal("Should have failed Client Id")
    56  	}
    57  
    58  	ad.ClientId = NewId()
    59  	if err := ad.IsValid(); err == nil {
    60  		t.Fatal()
    61  	}
    62  
    63  	ad.UserId = NewRandomString(28)
    64  	if err := ad.IsValid(); err == nil {
    65  		t.Fatal("Should have failed User Id")
    66  	}
    67  
    68  	ad.UserId = NewId()
    69  	if err := ad.IsValid(); err == nil {
    70  		t.Fatal()
    71  	}
    72  
    73  	ad.Code = NewRandomString(129)
    74  	if err := ad.IsValid(); err == nil {
    75  		t.Fatal("Should have failed Code to long")
    76  	}
    77  
    78  	ad.Code = ""
    79  	if err := ad.IsValid(); err == nil {
    80  		t.Fatal("Should have failed Code not set")
    81  	}
    82  
    83  	ad.Code = NewId()
    84  	if err := ad.IsValid(); err == nil {
    85  		t.Fatal()
    86  	}
    87  
    88  	ad.ExpiresIn = 0
    89  	if err := ad.IsValid(); err == nil {
    90  		t.Fatal("Should have failed invalid ExpiresIn")
    91  	}
    92  
    93  	ad.ExpiresIn = 1
    94  	if err := ad.IsValid(); err == nil {
    95  		t.Fatal()
    96  	}
    97  
    98  	ad.CreateAt = 0
    99  	if err := ad.IsValid(); err == nil {
   100  		t.Fatal("Should have failed Invalid Create At")
   101  	}
   102  
   103  	ad.CreateAt = 1
   104  	if err := ad.IsValid(); err == nil {
   105  		t.Fatal()
   106  	}
   107  
   108  	ad.State = NewRandomString(129)
   109  	if err := ad.IsValid(); err == nil {
   110  		t.Fatal("Should have failed invalid State")
   111  	}
   112  
   113  	ad.State = NewRandomString(128)
   114  	if err := ad.IsValid(); err == nil {
   115  		t.Fatal(err)
   116  	}
   117  
   118  	ad.Scope = NewRandomString(1025)
   119  	if err := ad.IsValid(); err == nil {
   120  		t.Fatal("Should have failed invalid Scope")
   121  	}
   122  
   123  	ad.Scope = NewRandomString(128)
   124  	if err := ad.IsValid(); err == nil {
   125  		t.Fatal()
   126  	}
   127  
   128  	ad.RedirectUri = ""
   129  	if err := ad.IsValid(); err == nil {
   130  		t.Fatal("Should have failed Redirect URI not set")
   131  	}
   132  
   133  	ad.RedirectUri = NewRandomString(28)
   134  	if err := ad.IsValid(); err == nil {
   135  		t.Fatal("Should have failed invalid URL")
   136  	}
   137  
   138  	ad.RedirectUri = NewRandomString(257)
   139  	if err := ad.IsValid(); err == nil {
   140  		t.Fatal("Should have failed invalid URL")
   141  	}
   142  
   143  	ad.RedirectUri = "http://example.com"
   144  	if err := ad.IsValid(); err != nil {
   145  		t.Fatal(err)
   146  	}
   147  }