mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Remove code from build.psm1 that save the modules to a versioned folder. For servicing reasons after release it is preferred and easier to not have the versioned folder so that we can directly replace modules that need to be serviced (MSI specifically makes it difficult to service a module if the folder path changes).
63 lines
2.6 KiB
PowerShell
63 lines
2.6 KiB
PowerShell
# Copyright (c) Microsoft Corporation. All rights reserved.
|
|
# Licensed under the MIT License.
|
|
Describe "PSReadLine" -tags "CI" {
|
|
BeforeAll {
|
|
if (Get-Module PSReadLine) {
|
|
$originalEditMode = (Get-PSReadLineOption).EditMode
|
|
Remove-Module PSReadLine
|
|
}
|
|
}
|
|
|
|
It "Should import the module correctly" {
|
|
Import-Module PSReadLine
|
|
$module = Get-Module PSReadLine
|
|
$module.Name | Should -BeExactly 'PSReadLine'
|
|
$module.Version | Should -BeExactly '2.0.0'
|
|
$module.Path | Should -Be (Join-Path -Path $PSHOME -ChildPath "Modules/PSReadLine/PSReadLine.psm1")
|
|
}
|
|
|
|
It "Should use Emacs Bindings on Linux and macOS" -skip:$IsWindows {
|
|
(Get-PSReadLineOption).EditMode | Should -BeExactly 'Emacs'
|
|
(Get-PSReadlineKeyHandler | Where-Object { $_.Key -eq "Ctrl+A" }).Function | Should -BeExactly 'BeginningOfLine'
|
|
}
|
|
|
|
It "Should use Windows Bindings on Windows" -skip:(-not $IsWindows) {
|
|
(Get-PSReadLineOption).EditMode | Should -BeExactly 'Windows'
|
|
(Get-PSReadlineKeyHandler | Where-Object { $_.Key -eq "Ctrl+a" }).Function | Should -BeExactly 'SelectAll'
|
|
}
|
|
|
|
It "Should set the edit mode" {
|
|
Set-PSReadlineOption -EditMode Windows
|
|
(Get-PSReadlineKeyHandler | Where-Object { $_.Key -eq "Ctrl+A" }).Function | Should -BeExactly 'SelectAll'
|
|
|
|
Set-PSReadlineOption -EditMode Emacs
|
|
(Get-PSReadlineKeyHandler | Where-Object { $_.Key -eq "Ctrl+A" }).Function | Should -BeExactly 'BeginningOfLine'
|
|
}
|
|
|
|
It "Should allow custom bindings for plain keys" {
|
|
Set-PSReadlineKeyHandler -Key '"' -Function SelfInsert
|
|
(Get-PSReadLineKeyHandler | Where-Object { $_.Key -eq '"' }).Function | Should -BeExactly 'SelfInsert'
|
|
}
|
|
|
|
It "Should report Capitalized bindings correctly" {
|
|
Set-PSReadlineOption -EditMode Emacs
|
|
(Get-PSReadLineKeyHandler | Where-Object { $_.Key -ceq "Alt+b" }).Function | Should -BeExactly 'BackwardWord'
|
|
(Get-PSReadLineKeyHandler | Where-Object { $_.Key -ceq "Alt+B" }).Function | Should -BeExactly 'SelectBackwardWord'
|
|
}
|
|
|
|
It "Should ignore case when using Function binding" {
|
|
$lowerCaseFunctionName = "yank"
|
|
Set-PSReadlineKeyHandler "Ctrl+F24" -Function $lowerCaseFunctionName
|
|
(Get-PSReadlineKeyHandler | Where-Object { $_.Key -eq "Ctrl+F24"}).Function | Should -BeExactly "Yank"
|
|
}
|
|
|
|
AfterAll {
|
|
Remove-Module PSReadLine
|
|
|
|
if ($originalEditMode) {
|
|
Import-Module PSReadLine
|
|
Set-PSReadlineOption -EditMode $originalEditMode
|
|
}
|
|
}
|
|
}
|