whitelist_test.go (1421B)
1 // Copyright 2021 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 security 15 16 import ( 17 "testing" 18 19 qt "github.com/frankban/quicktest" 20 ) 21 22 func TestWhitelist(t *testing.T) { 23 t.Parallel() 24 c := qt.New(t) 25 26 c.Run("none", func(c *qt.C) { 27 c.Assert(NewWhitelist("none", "foo").Accept("foo"), qt.IsFalse) 28 c.Assert(NewWhitelist().Accept("foo"), qt.IsFalse) 29 c.Assert(NewWhitelist("").Accept("foo"), qt.IsFalse) 30 c.Assert(NewWhitelist(" ", " ").Accept("foo"), qt.IsFalse) 31 c.Assert(Whitelist{}.Accept("foo"), qt.IsFalse) 32 }) 33 34 c.Run("One", func(c *qt.C) { 35 w := NewWhitelist("^foo.*") 36 c.Assert(w.Accept("foo"), qt.IsTrue) 37 c.Assert(w.Accept("mfoo"), qt.IsFalse) 38 }) 39 40 c.Run("Multiple", func(c *qt.C) { 41 w := NewWhitelist("^foo.*", "^bar.*") 42 c.Assert(w.Accept("foo"), qt.IsTrue) 43 c.Assert(w.Accept("bar"), qt.IsTrue) 44 c.Assert(w.Accept("mbar"), qt.IsFalse) 45 }) 46 47 }