github.com/graemephi/kahugo@v0.62.3-0.20211121071557-d78c0423784d/config/privacy/privacyConfig_test.go (about)

     1  // Copyright 2018 The Hugo Authors. All rights reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  // http://www.apache.org/licenses/LICENSE-2.0
     7  //
     8  // Unless required by applicable law or agreed to in writing, software
     9  // distributed under the License is distributed on an "AS IS" BASIS,
    10  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  package privacy
    15  
    16  import (
    17  	"testing"
    18  
    19  	qt "github.com/frankban/quicktest"
    20  	"github.com/gohugoio/hugo/config"
    21  )
    22  
    23  func TestDecodeConfigFromTOML(t *testing.T) {
    24  	c := qt.New(t)
    25  
    26  	tomlConfig := `
    27  
    28  someOtherValue = "foo"
    29  
    30  [privacy]
    31  [privacy.disqus]
    32  disable = true
    33  [privacy.googleAnalytics]
    34  disable = true
    35  respectDoNotTrack = true
    36  anonymizeIP = true
    37  useSessionStorage = true
    38  [privacy.instagram]
    39  disable = true
    40  simple = true
    41  [privacy.twitter]
    42  disable = true
    43  enableDNT = true
    44  simple = true
    45  [privacy.vimeo]
    46  disable = true
    47  enableDNT = true
    48  simple = true
    49  [privacy.youtube]
    50  disable = true
    51  privacyEnhanced = true
    52  simple = true
    53  `
    54  	cfg, err := config.FromConfigString(tomlConfig, "toml")
    55  	c.Assert(err, qt.IsNil)
    56  
    57  	pc, err := DecodeConfig(cfg)
    58  	c.Assert(err, qt.IsNil)
    59  	c.Assert(pc, qt.Not(qt.IsNil))
    60  
    61  	got := []bool{
    62  		pc.Disqus.Disable, pc.GoogleAnalytics.Disable,
    63  		pc.GoogleAnalytics.RespectDoNotTrack, pc.GoogleAnalytics.AnonymizeIP,
    64  		pc.GoogleAnalytics.UseSessionStorage, pc.Instagram.Disable,
    65  		pc.Instagram.Simple, pc.Twitter.Disable, pc.Twitter.EnableDNT,
    66  		pc.Twitter.Simple, pc.Vimeo.Disable, pc.Vimeo.EnableDNT, pc.Vimeo.Simple,
    67  		pc.YouTube.PrivacyEnhanced, pc.YouTube.Disable,
    68  	}
    69  
    70  	c.Assert(got, qt.All(qt.Equals), true)
    71  }
    72  
    73  func TestDecodeConfigFromTOMLCaseInsensitive(t *testing.T) {
    74  	c := qt.New(t)
    75  
    76  	tomlConfig := `
    77  
    78  someOtherValue = "foo"
    79  
    80  [Privacy]
    81  [Privacy.YouTube]
    82  PrivacyENhanced = true
    83  `
    84  	cfg, err := config.FromConfigString(tomlConfig, "toml")
    85  	c.Assert(err, qt.IsNil)
    86  
    87  	pc, err := DecodeConfig(cfg)
    88  	c.Assert(err, qt.IsNil)
    89  	c.Assert(pc, qt.Not(qt.IsNil))
    90  	c.Assert(pc.YouTube.PrivacyEnhanced, qt.Equals, true)
    91  }
    92  
    93  func TestDecodeConfigDefault(t *testing.T) {
    94  	c := qt.New(t)
    95  
    96  	pc, err := DecodeConfig(config.New())
    97  	c.Assert(err, qt.IsNil)
    98  	c.Assert(pc, qt.Not(qt.IsNil))
    99  	c.Assert(pc.YouTube.PrivacyEnhanced, qt.Equals, false)
   100  }