Adding tests for update/save-help, and fixing existing help tests for

Linux.
This commit is contained in:
Francisco Gomez Gamino
2016-11-04 16:39:57 -07:00
committed by Mike Richmond
parent fea4d883e8
commit 92b0eb336d
42 changed files with 438 additions and 60 deletions
@@ -7,42 +7,26 @@
# in the box needs to be deleted before running the tests, because otherwise, the HelpURI
# (when calling get-help -online) might not matched the one in the csv file.
# Currently update-help does not work on Linux (see https://github.com/PowerShell/PowerShell/issues/951),
# so if the help content is deleted, we do not have a way to install it back, and any subsequent
# 'get-help' tests which depend on the help content will fail. Until this update-help issue is fixed,
# we need to skip these tests on Linux and OSX.
$skipTest = ([System.Management.Automation.Platform]::IsLinux -or [System.Management.Automation.Platform]::IsOSX)
BeforeAll {
# There is a bug in Linux in which a 'Boolean value defined inside Describe block cannot be evaluated properly
# in if statement inside BeforeAll block on Linux' Becuase of this, I need to define the bool value again inside the block.
# See https://github.com/PowerShell/PowerShell/issues/2445
#
$skipTest = ([System.Management.Automation.Platform]::IsLinux -or [System.Management.Automation.Platform]::IsOSX)
# Enable the test hook
[system.management.automation.internal.internaltesthooks]::SetTestHook('BypassOnlineHelpRetrieval', $true)
if (-not $skipTest)
# Remove the help content
Write-Verbose "Deleting help content for get-help -online tests" -Verbose
foreach ($path in @("$pshome\en-US", "$pshome\Modules"))
{
# Enable the test hook
[system.management.automation.internal.internaltesthooks]::SetTestHook('BypassOnlineHelpRetrieval', $true)
# Remove the help content
Write-Verbose "Deleting help content for get-help -online tests" -Verbose
$path = Join-Path $PSHOME (Get-UICulture).Name
Get-ChildItem "$path\*dll-help.xml" -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue
Get-ChildItem $path -Include "*help.xml" -Recurse -ea SilentlyContinue | Remove-Item -Force -ErrorAction SilentlyContinue
}
}
AfterAll {
if (-not $skipTest)
{
# Disable the test hook
[system.management.automation.internal.internaltesthooks]::SetTestHook('BypassOnlineHelpRetrieval', $false)
}
# Disable the test hook
[system.management.automation.internal.internaltesthooks]::SetTestHook('BypassOnlineHelpRetrieval', $false)
}
foreach ($filePath in @("$PSScriptRoot\testdata\HelpURI\V2Cmdlets.csv", "$PSScriptRoot\testdata\HelpURI\V3Cmdlets.csv"))
foreach ($filePath in @("$PSScriptRoot\assets\HelpURI\V2Cmdlets.csv", "$PSScriptRoot\assets\HelpURI\V3Cmdlets.csv"))
{
$cmdletList = Import-Csv $filePath -ea Stop
@@ -54,7 +38,7 @@
# TopicTitle - is the cmdlet name in the csv file
# HelpURI - is the expected help URI in the csv file
It "Validate 'get-help $($cmdlet.TopicTitle) -Online'" -skip:$skipTest {
It "Validate 'get-help $($cmdlet.TopicTitle) -Online'" {
$actualURI = Get-Help $cmdlet.TopicTitle -Online
$actualURI = $actualURI.Replace("Help URI: ","")
$actualURI | Should Be $cmdlet.HelpURI
@@ -5,26 +5,21 @@ function UpdateHelpFromLocalContentPath
{
param ([string]$ModuleName, [string]$Tag = 'CI')
# Update-Help is not yet supported on non-Windows platforms;
# currently it is using Windows Cabinet API (cabinet.dll) internally
if ($IsWindows)
if ($Tag -eq 'CI')
{
if ($Tag -eq 'CI')
{
$helpContentPath = Join-Path $PSScriptRoot "HelpContent"
$helpFiles = @(Get-ChildItem "$helpContentPath\*" -ea SilentlyContinue)
$helpContentPath = Join-Path $PSScriptRoot "assets"
$helpFiles = @(Get-ChildItem "$helpContentPath\*" -ea SilentlyContinue)
if ($helpFiles.Count -eq 0)
{
throw "Unable to find help content at '$helpContentPath'"
}
Update-Help -Module $ModuleName -SourcePath $helpContentPath -Force -ErrorAction Stop -Verbose
}
else
if ($helpFiles.Count -eq 0)
{
Update-Help -Module $ModuleName -Force -Verbose -ErrorAction Stop
throw "Unable to find help content at '$helpContentPath'"
}
Update-Help -Module $ModuleName -SourcePath $helpContentPath -Force -ErrorAction Stop
}
else
{
Update-Help -Module $ModuleName -Force -Verbose -ErrorAction Stop
}
}
@@ -88,7 +83,6 @@ Describe "Validate that Get-Help returns provider-specific help" -Tags @('CI', '
# Currently these test cases are verified only on Windows, because
# - WSMan:\ and Cert:\ providers are not yet supported on non-Windows platforms.
# - Update-Help is not yet supported on non-Windows platforms; it is using Windows Cabinet API (cabinet.dll) internally.
$testCases = @(
@{
helpFile = "$PSHOME\$([Globalization.CultureInfo]::CurrentUICulture)\System.Management.Automation.dll-help.xml"
@@ -96,26 +90,33 @@ Describe "Validate that Get-Help returns provider-specific help" -Tags @('CI', '
helpContext = "[@id='FileSystem' or @ID='FileSystem']"
verb = 'Add'
noun = 'Content'
},
@{
helpFile = "$PSHOME\$([Globalization.CultureInfo]::CurrentUICulture)\Microsoft.PowerShell.Security.dll-help.xml"
path = 'Cert:\'
helpContext = $null # CertificateProvider uses only verb and noun in XPath query
verb = 'New'
noun = 'Item'
},
@{
helpFile = "$PSHOME\$([Globalization.CultureInfo]::CurrentUICulture)\Microsoft.WSMan.Management.dll-help.xml"
path = 'WSMan:\localhost\ClientCertificate'
helpContext = "[@id='ClientCertificate' or @ID='ClientCertificate']"
verb = 'New'
noun = 'Item'
}
)
if ($IsWindows)
{
$testCases += @(
@{
helpFile = "$PSHOME\$([Globalization.CultureInfo]::CurrentUICulture)\Microsoft.WSMan.Management.dll-help.xml"
path = 'WSMan:\localhost\ClientCertificate'
helpContext = "[@id='ClientCertificate' or @ID='ClientCertificate']"
verb = 'New'
noun = 'Item'
}
,
@{
helpFile = "$PSHOME\$([Globalization.CultureInfo]::CurrentUICulture)\Microsoft.PowerShell.Security.dll-help.xml"
path = 'Cert:\'
helpContext = $null # CertificateProvider uses only verb and noun in XPath query
verb = 'New'
noun = 'Item'
}
)
UpdateHelpFromLocalContentPath -ModuleName 'Microsoft.WSMan.Management' -Tag 'CI'
UpdateHelpFromLocalContentPath -ModuleName 'Microsoft.PowerShell.Security' -Tag 'CI'
}
UpdateHelpFromLocalContentPath -ModuleName 'Microsoft.PowerShell.Core' -Tag 'CI'
UpdateHelpFromLocalContentPath -ModuleName 'Microsoft.PowerShell.Security' -Tag 'CI'
UpdateHelpFromLocalContentPath -ModuleName 'Microsoft.WSMan.Management' -Tag 'CI'
}
It -Skip:(-not $IsWindows) "shows contextual help when Get-Help is invoked for provider-specific path (Get-Help -Name <verb>-<noun> -Path <path>)" -TestCases $testCases {
@@ -0,0 +1,293 @@
# Test Settings:
# This is the list of PowerShell Core modules for which we test update-help
$powershellCoreModules = @(
"CimCmdlets"
"Microsoft.PowerShell.Archive"
"Microsoft.PowerShell.Host"
"Microsoft.PowerShell.Core"
"Microsoft.PowerShell.Diagnostics"
"Microsoft.PowerShell.Management"
"Microsoft.PowerShell.LocalAccounts"
"Microsoft.PowerShell.Security"
"Microsoft.PowerShell.Utility"
"Microsoft.WsMan.Management"
"PackageManagement"
# "PowershellGet"
"PSReadline"
)
# The file extension for the help content on the Download Center.
# For Linux we use zip, and on Windows we use $extension.
$extension = ".zip"
if ([System.Management.Automation.Platform]::IsWindows)
{
$extension = ".cab"
}
# This is the list of test cases -- each test case represents a PowerShell Core module.
$testCases = @{
"CimCmdlets" = @{
HelpFiles = "Microsoft.Management.Infrastructure.CimCmdlets.dll-help.xml"
HelpInfoFiles = "CimCmdlets_fb6cc51d-c096-4b38-b78d-0fed6277096a_HelpInfo.xml"
CompressedFiles = "CimCmdlets_fb6cc51d-c096-4b38-b78d-0fed6277096a_en-US_HelpContent$extension"
HelpInstallationPath = "$pshome\Modules\CimCmdlets\en-US"
}
"Microsoft.PowerShell.Archive" = @{
HelpFiles = "Microsoft.PowerShell.Archive.psm1-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Archive_eb74e8da-9ae2-482a-a648-e96550fb8733_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Archive_eb74e8da-9ae2-482a-a648-e96550fb8733_en-US_HelpContent$extension"
HelpInstallationPath = "$pshome\Modules\Microsoft.PowerShell.Archive\en-US"
}
"Microsoft.PowerShell.Core" = @{
HelpFiles = "System.Management.Automation.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Core_00000000-0000-0000-0000-000000000000_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Core_00000000-0000-0000-0000-000000000000_en-US_HelpContent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.PowerShell.Diagnostics" = @{
HelpFiles = "Microsoft.PowerShell.Commands.Diagnostics.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Diagnostics_ca046f10-ca64-4740-8ff9-2565dba61a4f_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Diagnostics_ca046f10-ca64-4740-8ff9-2565dba61a4f_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.PowerShell.Host" = @{
HelpFiles = "Microsoft.PowerShell.ConsoleHost.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Host_56d66100-99a0-4ffc-a12d-eee9a6718aef_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Host_56d66100-99a0-4ffc-a12d-eee9a6718aef_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.PowerShell.LocalAccounts" = @{
HelpFiles = "Microsoft.Powershell.LocalAccounts.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.LocalAccounts_8e362604-2c0b-448f-a414-a6a690a644e2_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.LocalAccounts_8e362604-2c0b-448f-a414-a6a690a644e2_en-US_HelpContent$extension"
HelpInstallationPath = "$pshome\Modules\Microsoft.PowerShell.LocalAccounts\en-US"
}
"Microsoft.PowerShell.Management" = @{
HelpFiles = "Microsoft.PowerShell.Commands.Management.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Management_eefcb906-b326-4e99-9f54-8b4bb6ef3c6d_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Management_eefcb906-b326-4e99-9f54-8b4bb6ef3c6d_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.PowerShell.Security" = @{
HelpFiles = "Microsoft.PowerShell.Security.dll-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Security_a94c8c7e-9810-47c0-b8af-65089c13a35a_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Security_a94c8c7e-9810-47c0-b8af-65089c13a35a_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.PowerShell.Utility" = @{
HelpFiles = "Microsoft.PowerShell.Commands.Utility.dll-Help.xml", "Microsoft.PowerShell.Utility-help.xml"
HelpInfoFiles = "Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml"
CompressedFiles = "Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"Microsoft.WSMan.Management" = @{
HelpFiles = "Microsoft.WSMan.Management.dll-help.xml"
HelpInfoFiles = "Microsoft.WsMan.Management_766204A6-330E-4263-A7AB-46C87AFC366C_HelpInfo.xml"
CompressedFiles = "Microsoft.WsMan.Management_766204A6-330E-4263-A7AB-46C87AFC366C_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\en-US"
}
"PackageManagement" = @{
HelpFiles = "Microsoft.PowerShell.PackageManagement.dll-help.xml"
HelpInfoFiles = "PackageManagement_4ae9fd46-338a-459c-8186-07f910774cb8_HelpInfo.xml"
CompressedFiles = "PackageManagement_4ae9fd46-338a-459c-8186-07f910774cb8_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\Modules\PackageManagement\en-US"
}
"PowershellGet" = @{
HelpFiles = "PSGet.psm1-help.xml"
HelpInfoFiles = "PowershellGet_1d73a601-4a6c-43c5-ba3f-619b18bbb404_HelpInfo.xml"
CompressedFiles = "PowershellGet_1d73a601-4a6c-43c5-ba3f-619b18bbb404_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\Modules\PowershellGet\en-US"
}
"PSReadline" = @{
HelpFiles = "Microsoft.PowerShell.PSReadline.dll-help.xml"
HelpInfoFiles = "PSReadline_5714753b-2afd-4492-a5fd-01d9e2cff8b5_HelpInfo.xml"
CompressedFiles = "PSReadline_5714753b-2afd-4492-a5fd-01d9e2cff8b5_en-US_helpcontent$extension"
HelpInstallationPath = "$pshome\Modules\PSReadLine\en-US"
}
}
# These are the inbox modules.
$modulesInBox = @("Microsoft.PowerShell.Core"
Get-Module -ListAvailable | ForEach-Object{$_.Name}
)
function GetFiles
{
param (
[string]$fileType = "*help.xml",
[ValidateNotNullOrEmpty()]
[string]$path
)
Get-ChildItem $path -Include $fileType -Recurse -ea SilentlyContinue | Select-Object -ExpandProperty FullName
}
function ValidateInstalledHelpContent
{
param (
[ValidateNotNullOrEmpty()]
[string]$moduleName
)
$helpFilesInstalled = @(GetFiles -path $testCases[$moduleName].HelpInstallationPath | ForEach-Object {Split-Path $_ -Leaf})
$expectedHelpFiles = @($testCases[$moduleName].HelpFiles)
$helpFilesInstalled.Count | Should Be $expectedHelpFiles.Count
foreach ($fileName in $expectedHelpFiles)
{
$helpFilesInstalled -contains $fileName | Should Be $true
}
}
function RunUpdateHelpTests
{
param (
[string]$tag = "CI",
[switch]$useSourcePath
)
foreach ($moduleName in $modulesInBox)
{
if ($powershellCoreModules -contains $moduleName)
{
It "Validate Update-Help for module '$moduleName'" {
# If the help file is already installed, delete it.
Get-ChildItem $testCases[$moduleName].HelpInstallationPath -Include @("about_*.txt","*help.xml") -Recurse -ea SilentlyContinue |
Remove-Item -Force -ErrorAction SilentlyContinue
if ((Get-UICulture).Name -ne "en-Us")
{
if ($useSourcePath)
{
Update-Help -Module $moduleName -Force -UICulture en-US -SourcePath "$PSScriptRoot\assets"
}
else
{
Update-Help -Module $moduleName -Force -UICulture en-US
}
}
else
{
if ($useSourcePath)
{
Update-Help -Module $moduleName -Force -SourcePath "$PSScriptRoot\assets"
}
else
{
Update-Help -Module $moduleName -Force
}
}
ValidateInstalledHelpContent -moduleName $moduleName
}
if ($tag -eq "CI")
{
break
}
}
}
}
function RunSaveHelpTests
{
param (
[string]$tag = "CI"
)
foreach ($moduleName in $modulesInBox)
{
if ($powershellCoreModules -contains $moduleName)
{
try
{
$saveHelpFolder = Join-Path $TestDrive (Get-Random).ToString()
New-Item $saveHelpFolder -Force -ItemType Directory
It "Validate Save-Help for the '$moduleName' module" {
if ((Get-UICulture).Name -ne "en-Us")
{
Save-Help -Module $moduleName -Force -UICulture en-US -DestinationPath $saveHelpFolder
}
else
{
Save-Help -Module $moduleName -Force -DestinationPath $saveHelpFolder
}
ValidateSaveHelp -moduleName $moduleName -path $saveHelpFolder
}
if ($tag -eq "CI")
{
break
}
}
finally
{
Remove-Item $saveHelpFolder -Force -ea SilentlyContinue -Recurse
}
}
}
}
function ValidateSaveHelp
{
param (
[string]$moduleName,
[string]$path
)
$compressedFile = GetFiles -fileType "*$extension" -path $path | foreach {Split-Path $_ -Leaf}
$expectedCompressedFile = $testCases[$moduleName].CompressedFiles
$expectedCompressedFile | Should Be $compressedFile
$helpInfoFile = GetFiles -fileType "*HelpInfo.xml" -path $path | foreach {Split-Path $_ -Leaf}
$expectedHelpInfoFile = $testCases[$moduleName].HelpInfoFiles
$expectedHelpInfoFile | Should Be $helpInfoFile
}
Describe "Validate Update-Help from the Web for one PowerShell Core module." -Tags @('CI', 'RequireAdminOnWindows') {
RunUpdateHelpTests -tag "CI"
}
Describe "Validate Update-Help from the Web for all PowerShell Core modules." -Tags @('Feature', 'RequireAdminOnWindows') {
RunUpdateHelpTests -tag "Feature"
}
Describe "Validate Update-Help -SourcePath for one PowerShell Core module." -Tags @('CI', 'RequireAdminOnWindows') {
RunUpdateHelpTests -tag "CI" -useSourcePath
}
Describe "Validate Update-Help -SourcePath for all PowerShell Core modules." -Tags @('Feature', 'RequireAdminOnWindows') {
RunUpdateHelpTests -tag "Feature" -useSourcePath
}
Describe "Validate 'Save-Help -DestinationPath for one PowerShell Core modules." -Tags @('CI', 'RequireAdminOnWindows') {
RunSaveHelpTests -tag "CI"
}
Describe "Validate 'Save-Help -DestinationPath for all PowerShell Core modules." -Tags @('Feature', 'RequireAdminOnWindows') {
RunSaveHelpTests -tag "Feature"
}
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=390758</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.0.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=393254</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.2.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=390783</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.2.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=390784</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.2.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?LinkId=717973</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.5.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=390785</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.7.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=390787</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.4.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?LinkId=528806</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.4.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?linkid=392040</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.5.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<HelpInfo xmlns="http://schemas.microsoft.com/powershell/help/2010/05">
<HelpContentURI>http://go.microsoft.com/fwlink/?LinkID=393271</HelpContentURI>
<SupportedUICultures>
<UICulture>
<UICultureName>en-US</UICultureName>
<UICultureVersion>5.0.11.0</UICultureVersion>
</UICulture>
</SupportedUICultures>
</HelpInfo>