github.com/gigforks/mattermost-server@v4.9.1-0.20180619094218-800d97fa55d0+incompatible/app/license_test.go (about)

     1  // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package app
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/mattermost/mattermost-server/model"
    10  )
    11  
    12  func TestLoadLicense(t *testing.T) {
    13  	th := Setup()
    14  	defer th.TearDown()
    15  
    16  	th.App.LoadLicense()
    17  	if th.App.License() != nil {
    18  		t.Fatal("shouldn't have a valid license")
    19  	}
    20  }
    21  
    22  func TestSaveLicense(t *testing.T) {
    23  	th := Setup()
    24  	defer th.TearDown()
    25  
    26  	b1 := []byte("junk")
    27  
    28  	if _, err := th.App.SaveLicense(b1); err == nil {
    29  		t.Fatal("shouldn't have saved license")
    30  	}
    31  }
    32  
    33  func TestRemoveLicense(t *testing.T) {
    34  	th := Setup()
    35  	defer th.TearDown()
    36  
    37  	if err := th.App.RemoveLicense(); err != nil {
    38  		t.Fatal("should have removed license")
    39  	}
    40  }
    41  
    42  func TestSetLicense(t *testing.T) {
    43  	th := Setup()
    44  	defer th.TearDown()
    45  
    46  	l1 := &model.License{}
    47  	l1.Features = &model.Features{}
    48  	l1.Customer = &model.Customer{}
    49  	l1.StartsAt = model.GetMillis() - 1000
    50  	l1.ExpiresAt = model.GetMillis() + 100000
    51  	if ok := th.App.SetLicense(l1); !ok {
    52  		t.Fatal("license should have worked")
    53  	}
    54  
    55  	l2 := &model.License{}
    56  	l2.Features = &model.Features{}
    57  	l2.Customer = &model.Customer{}
    58  	l2.StartsAt = model.GetMillis() - 1000
    59  	l2.ExpiresAt = model.GetMillis() - 100
    60  	if ok := th.App.SetLicense(l2); ok {
    61  		t.Fatal("license should have failed")
    62  	}
    63  
    64  	l3 := &model.License{}
    65  	l3.Features = &model.Features{}
    66  	l3.Customer = &model.Customer{}
    67  	l3.StartsAt = model.GetMillis() + 10000
    68  	l3.ExpiresAt = model.GetMillis() + 100000
    69  	if ok := th.App.SetLicense(l3); !ok {
    70  		t.Fatal("license should have passed")
    71  	}
    72  }
    73  
    74  func TestClientLicenseEtag(t *testing.T) {
    75  	th := Setup()
    76  	defer th.TearDown()
    77  
    78  	etag1 := th.App.GetClientLicenseEtag(false)
    79  
    80  	th.App.SetClientLicense(map[string]string{"SomeFeature": "true", "IsLicensed": "true"})
    81  
    82  	etag2 := th.App.GetClientLicenseEtag(false)
    83  	if etag1 == etag2 {
    84  		t.Fatal("etags should not match")
    85  	}
    86  
    87  	th.App.SetClientLicense(map[string]string{"SomeFeature": "true", "IsLicensed": "false"})
    88  
    89  	etag3 := th.App.GetClientLicenseEtag(false)
    90  	if etag2 == etag3 {
    91  		t.Fatal("etags should not match")
    92  	}
    93  }
    94  
    95  func TestGetSanitizedClientLicense(t *testing.T) {
    96  	th := Setup()
    97  	defer th.TearDown()
    98  
    99  	l1 := &model.License{}
   100  	l1.Features = &model.Features{}
   101  	l1.Customer = &model.Customer{}
   102  	l1.Customer.Name = "TestName"
   103  	l1.StartsAt = model.GetMillis() - 1000
   104  	l1.ExpiresAt = model.GetMillis() + 100000
   105  	th.App.SetLicense(l1)
   106  
   107  	m := th.App.GetSanitizedClientLicense()
   108  
   109  	if _, ok := m["Name"]; ok {
   110  		t.Fatal("should have been sanatized")
   111  	}
   112  }