|
|
<!--
****************************************************************** ' ' objpath.wsf ' ' Purpose: test SWbemObjectPath ' ' Parameters: none ' ' Returns: 0 - success ' 1 - failure ' '***************************************************************** -->
<job id="WMI ObjectPath Test"> <reference object="WbemScripting.SWbemLocator" version="1.2"/> <script language="VBScript">
on error resume next
set scriptHelper = CreateObject("WMIScriptHelper.WSC") scriptHelper.logFile = "c:\temp\objpath.txt" scriptHelper.loggingLevel = 3 scriptHelper.testName = "WMI ObjectPath" scriptHelper.testStart
dim path
TestPreamble TestServer TestNamespace TestClass TestIsClass TestRelPath TestKeys TestSecurity TestLocale TestAuthority TestPath TestDisplayName TestComponents TestParent TestSecurityDescriptor
scriptHelper.testComplete
if scriptHelper.statusOK then WScript.Echo "PASS" WScript.Quit 0 else WScript.Echo "FAIL" WScript.Quit 1 end if
'**************************************************************** '* '* TestPreamble '* ============ '* '****************************************************************
Sub TestPreamble
on error resume next
' Try to create a new path object set path = CreateObject("WbemScripting.SWbemObjectPath")
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to create SWbemObjectPath" else scriptHelper.writeToLog "Successful creation of SWbemObjectPath", 2 end if
' Check the typename if typename(path) = "SWbemObjectPathEx" then scriptHelper.writeToLog "Object has correct type", 2 else scriptHelper.writeErrorToLog , "Object has incorrect type:", typename(path) end if
End Sub
'**************************************************************** '* '* TestServer '* ========== '* '* Test Server component '* '****************************************************************
Sub TestServer
on error resume next
scriptHelper.writeToLog "", 2 scriptHelper.writeToLog ">> TestServer", 2
' What is the default value of the server server = path.Server
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get Server" elseif server <> "" then scriptHelper.writeErrorToLog err, "Unexpected server value" else scriptHelper.writeToLog "Successful retrieval of Server", 2 end if
' Try and set it path.Server = "erewhon"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set Server" elseif path.Server <> "erewhon" then scriptHelper.writeErrorToLog err, "Unexpected server value" else scriptHelper.writeToLog "Successful set of Server:[" & path.Server & "]", 2 end if
scriptHelper.writeToLog "<< TestServer", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestNamespace '* ============= '* '* Test Namespace component '* '****************************************************************
Sub TestNamespace
on error resume next
scriptHelper.writeToLog "", 2 scriptHelper.writeToLog ">> TestNamespace", 2
' What is the default value of the namespace namespace = path.Namespace
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get Namespace" elseif namespace <> "" then scriptHelper.writeErrorToLog err, "Unexpected namespace value" else scriptHelper.writeToLog "Successful retrieval of Namespace", 2 end if
' Try and set it path.Namespace = "root\cimv2"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set Namespace" elseif path.Namespace <> "root\cimv2" then scriptHelper.writeErrorToLog err, "Unexpected namespace value" else scriptHelper.writeToLog "Successful set of Namespace:[" & path.Namespace & "]", 2 end if
scriptHelper.writeToLog "<< TestNamespace", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestClass '* ========= '* '* Test Class component '* '****************************************************************
Sub TestClass
on error resume next
scriptHelper.writeToLog "", 2 scriptHelper.writeToLog ">> TestClass", 2
' What is the default value of the class sClass = path.Class
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get Class" elseif sClass <> "" then scriptHelper.writeErrorToLog err, "Unexpected class value" else scriptHelper.writeToLog "Successful retrieval of Class", 2 end if
' Try and set it path.Class = "rocco"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set Class" elseif path.Class <> "rocco" then scriptHelper.writeErrorToLog err, "Unexpected Class value" else scriptHelper.writeToLog "Successful set of Class:[" & path.Class & "]", 2 end if
scriptHelper.writeToLog "<< TestClass", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestIsClass '* ============ '* '* Test SetIsClass component '* '****************************************************************
Sub TestIsClass
on error resume next
scriptHelper.writeToLog "", 2 scriptHelper.writeToLog ">> TestIsClass", 2
' Set an non-class path path.Path = "\\flatland\root\shapes"
if Not(path.IsClass) then scriptHelper.writeToLog "Non-Class successfully detected", 2 else scriptHelper.writeErrorToLog err, "Unexpected IsClass value" end if
' Set the class value path.Class = "orphee"
if path.IsClass then scriptHelper.writeToLog "Class successfully detected", 2 else scriptHelper.writeErrorToLog err, "Unexpected IsClass value" end if
' Try and set as a singleton path.SetAsSingleton
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set as singleton" elseif path.IsClass then scriptHelper.writeErrorToLog , "Incorrectly marked as class" elseif Not(path.IsSingleton) then scriptHelper.writeErrorToLog , "Incorrectly marked as not a singleton" elseif path.Relpath <> "orphee=@" then scriptHelper.writeErrorToLog err, "Unexpected relpath value" else scriptHelper.writeToLog "Successful set as singleton:[" & path.Path & "]", 2 end if
' Set back to a class path.SetAsClass
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set as class" elseif Not(path.IsClass) then scriptHelper.writeErrorToLog , "Incorrectly marked as not a class" elseif path.IsSingleton then scriptHelper.writeErrorToLog , "Incorrectly marked as a singleton" elseif path.Relpath <> "orphee" then scriptHelper.writeErrorToLog err, "Unexpected relpath value" else scriptHelper.writeToLog "Successful set as class:[" & path.Path & "]", 2 end if
' Set as an instance path.RelPath = "orphee=1"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set relpath" elseif path.IsClass then scriptHelper.writeErrorToLog , "Incorrectly marked as a class" elseif path.IsSingleton then scriptHelper.writeErrorToLog , "Incorrectly marked as a singleton" elseif path.Relpath <> "orphee=1" then scriptHelper.writeErrorToLog err, "Unexpected relpath value :[" & path.Relpath & "]" else scriptHelper.writeToLog "Successful set as instance:[" & path.Path & "]", 2 end if
scriptHelper.writeToLog "<< TestIsClass", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestKeys '* ======== '* '* Test SetKeys component '* '****************************************************************
Sub TestKeys
on error resume next
scriptHelper.writeToLog "", 2 scriptHelper.writeToLog ">> TestKeys", 2
path.Path = "\\.\root\default:orphee"
' What is the default value of the keys set keys = path.Keys
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get Keys" elseif Keys.Count <> 0 then scriptHelper.writeErrorToLog err, "Unexpected keys" else scriptHelper.writeToLog "Successful retrieval of keys", 2 end if
' Set as an instance path.Path = "\\.\root\default:orphee.Name='Jean'"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set relpath" elseif path.Keys.Count <> 1 then scriptHelper.writeErrorToLog , "Incorrect number of keys: [" & path.Keys.Count & "] " & path.RelPath elseif path.Keys("Name") <> "Jean" then scriptHelper.writeErrorToLog , "Incorrect key value" else scriptHelper.writeToLog "Successful set of keys", 2 end if
' Add a key path.Keys.Add "Surname", "Cocteau"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to add keys" elseif path.Keys.Count <> 2 then scriptHelper.writeErrorToLog , "Incorrect number of keys: [" & path.Keys.Count & "] " & path.RelPath elseif path.Keys("Surname") <> "Cocteau" then scriptHelper.writeErrorToLog , "Incorrect key value" else scriptHelper.writeToLog "Successful add of keys", 2 end if
' Remove a key path.Keys.Remove "Name"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to remove keys" elseif path.Keys.Count <> 1 then scriptHelper.writeErrorToLog , "Incorrect number of keys: [" & path.Keys.Count & "] " & path.RelPath elseif path.Keys("Surname") <> "Cocteau" then scriptHelper.writeErrorToLog , "Incorrect key value" else scriptHelper.writeToLog "Successful remove of keys", 2 end if scriptHelper.writeToLog "<< TestKeys", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestRelpath '* =========== '* '* Test Relpath component '* '****************************************************************
Sub TestRelPath
on error resume next
scriptHelper.writeToLog ">> TestRelpath", 2 scriptHelper.writeToLog "", 2
' reset the path path.Path = ""
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to clear path" else scriptHelper.writeToLog "Successful clear of path", 2 end if
' What is the default value of the keys relpath = path.RelPath
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get RelPath" elseif RelPath <> "" then scriptHelper.writeErrorToLog , "Unexpected RelPath" else scriptHelper.writeToLog "Successful retrieval of RelPath", 2 end if
' Try and set it path.RelPath = "orphee.Name=11"
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to set Relpath" elseif path.RelPath <> "orphee.Name=11" then scriptHelper.writeErrorToLog , "Unexpected RelPath value:[" & path.RelPath & "]" else scriptHelper.writeToLog "Successful set of RelPath:[" & path.RelPath & "]", 2 end if
scriptHelper.writeToLog "<< TestRelpath", 2 scriptHelper.writeToLog "", 2
End Sub
'**************************************************************** '* '* TestPath '* ======== '* '* Test Path component '* '****************************************************************
Sub TestPath
on error resume next
End Sub
'**************************************************************** '* '* TestDisplayName '* =============== '* '* Test DisplayName component '* '****************************************************************
Sub TestDisplayName
on error resume next
End Sub
'**************************************************************** '* '* TestSingleton '* ============= '* '* Test Singleton '* '****************************************************************
Sub TestSingleton
on error resume next
End Sub
'**************************************************************** '* '* TestSecurity '* ============ '* '* Test Security '* '****************************************************************
Sub TestSecurity
on error resume next
End Sub
'**************************************************************** '* '* TestLocale '* ========== '* '* Test Locale '* '****************************************************************
Sub TestLocale
on error resume next
End Sub
'**************************************************************** '* '* TestAuthority '* ========== '* '* Test Authority '* '****************************************************************
Sub TestAuthority
on error resume next
End Sub
'**************************************************************** '* '* TestComponents '* ============== '* '* Test Components '* '****************************************************************
Sub TestComponents
on error resume next
End Sub
'**************************************************************** '* '* TestParent '* ========== '* '* Test Parent '* '****************************************************************
Sub TestParent
on error resume next
End Sub
'**************************************************************** '* '* TestSecurityDescriptor '* ====================== '* '* Test SD '* '****************************************************************
Sub TestSecurityDescriptor
on error resume next
End Sub
</script> </job>
|