mirror of
https://github.com/ScoopInstaller/Scoop.git
synced 2026-08-29 09:36:37 +00:00
135 lines
3.8 KiB
PowerShell
135 lines
3.8 KiB
PowerShell
. "$psscriptroot\..\lib\core.ps1"
|
|
. "$psscriptroot\..\lib\install.ps1"
|
|
. "$psscriptroot\Scoop-TestLib.ps1"
|
|
|
|
describe "movedir" {
|
|
$extract_dir = "subdir"
|
|
$extract_to = $null
|
|
|
|
beforeall {
|
|
$working_dir = setup_working "movedir"
|
|
}
|
|
|
|
it "moves directories with no spaces in path" {
|
|
$dir = "$working_dir\user"
|
|
movedir "$dir\_scoop_extract\$extract_dir" "$dir\$extract_to"
|
|
|
|
"$dir\test.txt" | should contain "this is the one"
|
|
"$dir\_scoop_extract\$extract_dir" | should not exist
|
|
}
|
|
|
|
it "moves directories with spaces in path" {
|
|
$dir = "$working_dir\user with space"
|
|
movedir "$dir\_scoop_extract\$extract_dir" "$dir\$extract_to"
|
|
|
|
"$dir\test.txt" | should contain "this is the one"
|
|
"$dir\_scoop_extract\$extract_dir" | should not exist
|
|
|
|
# test trailing \ in from dir
|
|
movedir "$dir\_scoop_extract\$null" "$dir\another"
|
|
"$dir\another\test.txt" | should contain "testing"
|
|
"$dir\_scoop_extract" | should not exist
|
|
}
|
|
|
|
it "moves directories with quotes in path" {
|
|
$dir = "$working_dir\user with 'quote"
|
|
movedir "$dir\_scoop_extract\$extract_dir" "$dir\$extract_to"
|
|
|
|
"$dir\test.txt" | should contain "this is the one"
|
|
"$dir\_scoop_extract\$extract_dir" | should not exist
|
|
}
|
|
}
|
|
|
|
describe "unzip_old" {
|
|
beforeall {
|
|
$working_dir = setup_working "unzip_old"
|
|
}
|
|
|
|
function test-unzip($from) {
|
|
$to = strip_ext $from
|
|
|
|
unzip_old $from $to
|
|
|
|
$to
|
|
}
|
|
|
|
context "zip file size is zero bytes" {
|
|
$zerobyte = "$working_dir\zerobyte.zip"
|
|
|
|
it "unzips file with zero bytes without error" {
|
|
$to = test-unzip $zerobyte
|
|
|
|
$to | should exist
|
|
(gci $to).count | should be 0
|
|
}
|
|
}
|
|
|
|
context "zip file is small in size" {
|
|
$small = "$working_dir\small.zip"
|
|
|
|
it "unzips file which is small in size" {
|
|
$to = test-unzip $small
|
|
|
|
$to | should exist
|
|
|
|
# these don't work for some reason on appveyor
|
|
#join-path $to "empty" | should exist
|
|
#(gci $to).count | should be 1
|
|
}
|
|
}
|
|
}
|
|
|
|
describe "shim" {
|
|
beforeall {
|
|
$working_dir = setup_working "shim"
|
|
$shimdir = shimdir
|
|
$(ensure_in_path $shimdir) | out-null
|
|
}
|
|
|
|
it "links a file onto the user's path" {
|
|
{ get-command "shim-test" -ea stop } | should throw
|
|
{ get-command "shim-test.ps1" -ea stop } | should throw
|
|
{ get-command "shim-test.cmd" -ea stop } | should throw
|
|
{ shim-test } | should throw
|
|
|
|
shim "$working_dir\shim-test.ps1" $false "shim-test"
|
|
{ get-command "shim-test" -ea stop } | should not throw
|
|
{ get-command "shim-test.ps1" -ea stop } | should not throw
|
|
{ get-command "shim-test.cmd" -ea stop } | should not throw
|
|
shim-test | should be "Hello, world!"
|
|
}
|
|
|
|
context "user with quote" {
|
|
it "shims a file with quote in path" {
|
|
{ get-command "shim-test" -ea stop } | should throw
|
|
{ shim-test } | should throw
|
|
|
|
shim "$working_dir\user with 'quote\shim-test.ps1" $false "shim-test"
|
|
{ get-command "shim-test" -ea stop } | should not throw
|
|
shim-test | should be "Hello, world!"
|
|
}
|
|
}
|
|
|
|
aftereach {
|
|
rm_shim "shim-test" $shimdir
|
|
}
|
|
}
|
|
|
|
describe "rm_shim" {
|
|
beforeall {
|
|
$working_dir = setup_working "shim"
|
|
$shimdir = shimdir
|
|
$(ensure_in_path $shimdir) | out-null
|
|
}
|
|
|
|
it "removes shim from path" {
|
|
shim "$working_dir\shim-test.ps1" $false "shim-test"
|
|
|
|
rm_shim "shim-test" $shimdir
|
|
|
|
{ get-command "shim-test" -ea stop } | should throw
|
|
{ get-command "shim-test.ps1" -ea stop } | should throw
|
|
{ get-command "shim-test.cmd" -ea stop } | should throw
|
|
{ shim-test } | should throw
|
|
}
|
|
} |