Repository navigation
Fixing get-help <cmdletName> -online for .NET Core on Desktop. #2174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Dongbo Wang (daxian-dbw)
merged 6 commits into
PowerShell:master
from
Francisco-Gamino:fix-useshellexcute-coreclr
Oct 12, 2016
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
1708673
Addressing code review comments for get-help <cmldetName> -online on …
Francisco-Gamino 5e3acaf
Removing unnecessary null check
Francisco-Gamino fe54f74
skipping helpuri tests on Linux and OSX
Francisco-Gamino a0198d5
enabling get-help -online on windows coreclr + addressing code review…
Francisco-Gamino 4eaed56
Adding extra logging to figure out failure in get-help cmdlet tests
Francisco-Gamino 90e2f0b
Adding test workaound for issue 2445 for Linux and OSX
Francisco-Gamino File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,94 @@ | ||
| Describe 'Online help tests for PowerShell Core Cmdlets' -Tags "CI" { | ||
|
|
||
| # The csv files (V2Cmdlets.csv and V3Cmdlets.csv) contain a list of cmdlets and expected HelpURIs. | ||
| # The HelpURI is part of the cmdlet metadata, and when the user runs 'get-help <cmdletName> -online' | ||
| # the browser navigates to the address in the HelpURI. However, if a help file is present, the HelpURI | ||
| # on the file take precedence over the one in the cmdlet metadata. Therefore, the help content | ||
| # 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) | ||
|
|
||
| if (-not $skipTest) | ||
| { | ||
| # 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 | ||
| } | ||
| } | ||
|
|
||
| AfterAll { | ||
| if (-not $skipTest) | ||
| { | ||
| # 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")) | ||
| { | ||
| $cmdletList = Import-Csv $filePath -ea Stop | ||
|
|
||
| foreach ($cmdlet in $cmdletList) | ||
| { | ||
| # If the cmdlet is not preset in CoreCLR, skip it. | ||
| if (Get-Command $cmdlet.TopicTitle -ea SilentlyContinue) | ||
| { | ||
| # 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 { | ||
| $actualURI = Get-Help $cmdlet.TopicTitle -Online | ||
| $actualURI = $actualURI.Replace("Help URI: ","") | ||
| $actualURI | Should Be $cmdlet.HelpURI | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
|
|
||
| Describe 'Get-Help -Online opens the default web browser and navigates to the cmdlet help content' -Tags "Feature" { | ||
|
|
||
| $skipTest = [System.Management.Automation.Platform]::IsIoT -or | ||
| [System.Management.Automation.Platform]::IsNanoServer | ||
|
|
||
| It "Get-Help get-process -online" -skip:$skipTest { | ||
|
|
||
| { Get-Help get-process -online } | Should Not Throw | ||
| } | ||
| } | ||
|
|
||
| Describe 'Get-Help -Online is not supported on Nano Server and IoT' -Tags "CI" { | ||
|
|
||
| $skipTest = -not ([System.Management.Automation.Platform]::IsIoT -or [System.Management.Automation.Platform]::IsNanoServer) | ||
|
|
||
| It "Get-help -online <cmdletName> throws InvalidOperation." -skip:$skipTest { | ||
|
|
||
| try | ||
| { | ||
| Get-Help Get-Help -Online | ||
| throw "Execution should not have succeeded" | ||
| } | ||
| catch | ||
| { | ||
| $_.FullyQualifiedErrorId | Should Be "InvalidOperation,Microsoft.PowerShell.Commands.GetHelpCommand" | ||
| } | ||
| } | ||
| } | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Francisco Gamino (@Francisco-Gamino) is almost ready on the fix of #951. This test will be updated in the PR for that issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Issue #2465 is opened to track the update to the test files here.