go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/plist/plist_test.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package plist 5 6 import ( 7 "bytes" 8 "encoding/base64" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestBase64DecodePlist(t *testing.T) { 16 data := "YnBsaXN0MDDaAQIDBAUGBwgJCgsMDQ4XGBgaGxhcR3Vlc3RFbmFibGVkXxAZT3B0aW1pemVyTGFzdFJ1bkZvclN5c3RlbVxsYXN0VXNlck5hbWVbQWNjb3VudEluZm9fEBhPcHRpbWl6ZXJMYXN0UnVuRm9yQnVpbGRfEBpVc2VWb2ljZU92ZXJMZWdhY3lNaWdyYXRlZF8QE0Rpc2FibGVGREVBdXRvTG9naW5YbGFzdFVzZXJfEA9Mb2dpbndpbmRvd1RleHRcU0hPV0ZVTExOQU1FCBILBQEAXWFkbWluaXN0cmF0b3LTDxAREhMVXE1heGltdW1Vc2Vyc1lPbkNvbnNvbGVbRmlyc3RMb2dpbnMQAdEUEl1hZG1pbmlzdHJhdG9y0RYSXWFkbWluaXN0cmF0b3ISAoYKAAkJWGxvZ2dlZEluWmxvZ2luIHRleHQJAAgAHQAqAEYAUwBfAHoAlwCtALYAyADVANYA2wDpAPAA/QEHARMBFQEYASYBKQE3ATwBPQE+AUcBUgAAAAAAAAIBAAAAAAAAAB0AAAAAAAAAAAAAAAAAAAFT" 17 18 decodedData, err := base64.StdEncoding.DecodeString(data) 19 require.NoError(t, err) 20 21 plistData, err := Decode(bytes.NewReader(decodedData)) 22 require.NoError(t, err) 23 assert.NotNil(t, plistData) 24 assert.Equal(t, "login text", plistData["LoginwindowText"]) 25 26 // convert binary to xml and parse again 27 plistXmlData, err := ToXml(bytes.NewReader(decodedData)) 28 require.NoError(t, err) 29 assert.NotNil(t, plistXmlData) 30 31 plistData, err = Decode(bytes.NewReader(decodedData)) 32 require.NoError(t, err) 33 assert.NotNil(t, plistData) 34 assert.Equal(t, "login text", plistData["LoginwindowText"]) 35 }