pkg.re/essentialkaos/ek.10@v12.41.0+incompatible/secstr/secure_string_test.go (about)

     1  package secstr
     2  
     3  // ////////////////////////////////////////////////////////////////////////////////// //
     4  //                                                                                    //
     5  //                         Copyright (c) 2022 ESSENTIAL KAOS                          //
     6  //      Apache License, Version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>     //
     7  //                                                                                    //
     8  // ////////////////////////////////////////////////////////////////////////////////// //
     9  
    10  import (
    11  	"testing"
    12  
    13  	. "pkg.re/essentialkaos/check.v1"
    14  )
    15  
    16  // ////////////////////////////////////////////////////////////////////////////////// //
    17  
    18  func Test(t *testing.T) { TestingT(t) }
    19  
    20  type SecstrSuite struct{}
    21  
    22  // ////////////////////////////////////////////////////////////////////////////////// //
    23  
    24  var _ = Suite(&SecstrSuite{})
    25  
    26  // ////////////////////////////////////////////////////////////////////////////////// //
    27  
    28  func (s *SecstrSuite) TestSlice(c *C) {
    29  	k := []byte("Test1234")
    30  	ss, err := NewSecureString(k)
    31  
    32  	c.Assert(err, IsNil)
    33  	c.Assert(ss, NotNil)
    34  	c.Assert(ss.IsEmpty(), Equals, false)
    35  	c.Assert(ss.Data, HasLen, 8)
    36  	c.Assert(k, DeepEquals, []byte{0, 0, 0, 0, 0, 0, 0, 0})
    37  	c.Assert(string(ss.Data), Equals, "Test1234")
    38  
    39  	err = ss.Destroy()
    40  
    41  	c.Assert(err, IsNil)
    42  	c.Assert(ss.Data, IsNil)
    43  
    44  	err = ss.Destroy()
    45  
    46  	c.Assert(err, IsNil)
    47  	c.Assert(ss.Data, IsNil)
    48  }
    49  
    50  func (s *SecstrSuite) TestString(c *C) {
    51  	k1 := "Test1234"
    52  
    53  	ss, err := NewSecureString(k1)
    54  
    55  	c.Assert(err, IsNil)
    56  	c.Assert(ss, NotNil)
    57  	c.Assert(ss.IsEmpty(), Equals, false)
    58  	c.Assert(ss.Data, HasLen, 8)
    59  	c.Assert(string(ss.Data), Equals, "Test1234")
    60  
    61  	k2 := "Test1234"
    62  
    63  	ss, err = NewSecureString(&k2)
    64  
    65  	c.Assert(err, IsNil)
    66  	c.Assert(ss, NotNil)
    67  	c.Assert(ss.IsEmpty(), Equals, false)
    68  	c.Assert(ss.Data, HasLen, 8)
    69  	c.Assert(k2, Equals, "")
    70  	c.Assert(string(ss.Data), Equals, "Test1234")
    71  }
    72  
    73  func (s *SecstrSuite) TestErrors(c *C) {
    74  	_, err := NewSecureString(123)
    75  	c.Assert(err, NotNil)
    76  }