mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
also fix archive test to be sure it gets the proper archive module (not the one that's somewhere in the filesystem)
64 lines
2.6 KiB
PowerShell
64 lines
2.6 KiB
PowerShell
Describe "String cmdlets" -Tags "CI" {
|
|
Context "Select-String" {
|
|
BeforeAll {
|
|
$sep = [io.path]::DirectorySeparatorChar
|
|
$fileName = New-Item 'TestDrive:\selectStr[ingLi]teralPath.txt'
|
|
"abc" | Out-File -LiteralPath $fileName.fullname
|
|
"bcd" | Out-File -LiteralPath $fileName.fullname -Append
|
|
"cde" | Out-File -LiteralPath $fileName.fullname -Append
|
|
|
|
$fileNameWithDots = $fileName.FullName.Replace("\", "\.\")
|
|
|
|
$tempFile = New-TemporaryFile
|
|
"abc" | Out-File -LiteralPath $tempFile.fullname
|
|
"bcd" | Out-File -LiteralPath $tempFile.fullname -Append
|
|
"cde" | Out-File -LiteralPath $tempFile.fullname -Append
|
|
$driveLetter = $tempFile.PSDrive.Name
|
|
$fileNameAsNetworkPath = "\\localhost\$driveLetter`$" + $tempFile.FullName.SubString(2)
|
|
|
|
Push-Location "$fileName\.."
|
|
}
|
|
|
|
AfterAll {
|
|
Remove-Item $tempFile -Force -ErrorAction SilentlyContinue
|
|
Pop-Location
|
|
}
|
|
|
|
It "LiteralPath with relative path" {
|
|
(select-string -LiteralPath (Get-Item -LiteralPath $fileName).Name "b").count | Should Be 2
|
|
}
|
|
|
|
It "LiteralPath with absolute path" {
|
|
(select-string -LiteralPath $fileName "b").count | Should Be 2
|
|
}
|
|
|
|
It "LiteralPath with dots in path" {
|
|
(select-string -LiteralPath $fileNameWithDots "b").count | Should Be 2
|
|
}
|
|
|
|
It "Network path" -skip:($IsCoreCLR) {
|
|
(select-string -LiteralPath $fileNameAsNetworkPath "b").count | Should Be 2
|
|
}
|
|
|
|
It "throws error for non filesystem providers" {
|
|
$aaa = "aaaaaaaaaa"
|
|
select-string -literalPath variable:\aaa "a" -ErrorAction SilentlyContinue -ErrorVariable selectStringError
|
|
$selectStringError.FullyQualifiedErrorId | Should Be 'ProcessingFile,Microsoft.PowerShell.Commands.SelectStringCommand'
|
|
}
|
|
|
|
It "throws parameter binding exception for invalid context" {
|
|
{ select-string It $PSScriptRoot -Context -1,-1 } | Should Throw Context
|
|
}
|
|
|
|
It "match object supports RelativePath method" {
|
|
$file = "Modules${sep}Microsoft.PowerShell.Utility${sep}Microsoft.PowerShell.Utility.psd1"
|
|
|
|
$match = Select-String CmdletsToExport $pshome/$file
|
|
|
|
$match.RelativePath($pshome) | Should Be $file
|
|
$match.RelativePath($pshome.ToLower()) | Should Be $file
|
|
$match.RelativePath($pshome.ToUpper()) | Should Be $file
|
|
}
|
|
}
|
|
}
|