go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/detector/parser_macos_version_test.go (about)

     1  package detector_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  	"go.mondoo.com/cnquery/providers/os/detector"
     9  )
    10  
    11  func TestDarwinRelease(t *testing.T) {
    12  	swVers := `ProductName:	Mac OS X
    13  ProductVersion:	10.13.2
    14  BuildVersion:	17C88
    15  	`
    16  
    17  	m, err := detector.ParseDarwinRelease(swVers)
    18  	require.NoError(t, err)
    19  
    20  	assert.Equal(t, "Mac OS X", m["ProductName"], "ProductName should be parsed properly")
    21  	assert.Equal(t, "10.13.2", m["ProductVersion"], "ProductVersion should be parsed properly")
    22  	assert.Equal(t, "17C88", m["BuildVersion"], "BuildVersion should be parsed properly")
    23  }
    24  
    25  func TestMacOsSystemVersion(t *testing.T) {
    26  	systemVersion := `
    27  	<?xml version="1.0" encoding="UTF-8"?>
    28  	<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    29  	<plist version="1.0">
    30  		<dict>
    31  			<key>ProductBuildVersion</key>
    32  			<string>17C88</string>
    33  			<key>ProductCopyright</key>
    34  			<string>1983-2017 Apple Inc.</string>
    35  			<key>ProductName</key>
    36  			<string>Mac OS X</string>
    37  			<key>ProductUserVisibleVersion</key>
    38  			<string>10.13.2</string>
    39  			<key>ProductVersion</key>
    40  			<string>10.13.2</string>
    41  		</dict>
    42  	</plist>
    43  	`
    44  
    45  	m, err := detector.ParseMacOSSystemVersion(systemVersion)
    46  	assert.Nil(t, err)
    47  
    48  	assert.Equal(t, "17C88", m["ProductBuildVersion"], "ProductBuildVersion should be parsed properly")
    49  	assert.Equal(t, "1983-2017 Apple Inc.", m["ProductCopyright"], "ProductCopyright should be parsed properly")
    50  	assert.Equal(t, "Mac OS X", m["ProductName"], "ProductName should be parsed properly")
    51  	assert.Equal(t, "10.13.2", m["ProductUserVisibleVersion"], "ProductUserVisibleVersion should be parsed properly")
    52  	assert.Equal(t, "10.13.2", m["ProductVersion"], "ProductVersion should be parsed properly")
    53  }