aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/old/testdir/samples/testa.zipbin0 -> 1236 bytes
-rw-r--r--test/old/testdir/test_zip_plugin.vim104
2 files changed, 103 insertions, 1 deletions
diff --git a/test/old/testdir/samples/testa.zip b/test/old/testdir/samples/testa.zip
new file mode 100644
index 0000000000..10b0346e76
--- /dev/null
+++ b/test/old/testdir/samples/testa.zip
Binary files differ
diff --git a/test/old/testdir/test_zip_plugin.vim b/test/old/testdir/test_zip_plugin.vim
index b214516e05..a817d8371e 100644
--- a/test/old/testdir/test_zip_plugin.vim
+++ b/test/old/testdir/test_zip_plugin.vim
@@ -40,7 +40,8 @@ func Test_zip_basic()
\ execute("normal \<CR>"))
"## Check ENTER on file
- :1|:/^$//file/
+ :1
+ call search('file.txt')
exe ":normal \<cr>"
call assert_match('zipfile://.*/X.zip::Xzip/file.txt', @%)
call assert_equal('one', getline(1))
@@ -65,6 +66,10 @@ func Test_zip_basic()
:1|:/^$//file/
normal x
call assert_true(filereadable("Xzip/file.txt"))
+
+ "## Check not overwriting existing file
+ call assert_match('<Xzip/file.txt> .* not overwriting!', execute("normal x"))
+
call delete("Xzip", "rf")
"## Check extracting directory
@@ -131,5 +136,102 @@ func Test_zip_basic()
call assert_match('File not readable', execute("e Xnot_exists.zip"))
bw
+endfunc
+
+func Test_zip_glob_fname()
+ CheckNotMSWindows
+ " does not work on Windows, why?
+
+ "## copy sample zip file
+ if !filecopy("samples/testa.zip", "X.zip")
+ call assert_report("Can't copy samples/testa.zip")
+ return
+ endif
+ defer delete("X.zip")
+ defer delete('zipglob', 'rf')
+
+ e X.zip
+
+ "## 1) Check extracting strange files
+ :1
+ let fname = 'a[a].txt'
+ call search('\V' .. fname)
+ normal x
+ call assert_true(filereadable('zipglob/' .. fname))
+ call delete('zipglob', 'rf')
+
+ :1
+ let fname = 'a*.txt'
+ call search('\V' .. fname)
+ normal x
+ call assert_true(filereadable('zipglob/' .. fname))
+ call delete('zipglob', 'rf')
+
+ :1
+ let fname = 'a?.txt'
+ call search('\V' .. fname)
+ normal x
+ call assert_true(filereadable('zipglob/' .. fname))
+ call delete('zipglob', 'rf')
+
+ :1
+ let fname = 'a\.txt'
+ call search('\V' .. escape(fname, '\\'))
+ normal x
+ call assert_true(filereadable('zipglob/' .. fname))
+ call delete('zipglob', 'rf')
+
+ :1
+ let fname = 'a\\.txt'
+ call search('\V' .. escape(fname, '\\'))
+ normal x
+ call assert_true(filereadable('zipglob/' .. fname))
+ call delete('zipglob', 'rf')
+
+ "## 2) Check entering strange file names
+ :1
+ let fname = 'a[a].txt'
+ call search('\V' .. fname)
+ exe ":normal \<cr>"
+ call assert_match('zipfile://.*/X.zip::zipglob/a\[a\].txt', @%)
+ call assert_equal('a test file with []', getline(1))
+ bw
+
+ e X.zip
+ :1
+ let fname = 'a*.txt'
+ call search('\V' .. fname)
+ exe ":normal \<cr>"
+ call assert_match('zipfile://.*/X.zip::zipglob/a\*.txt', @%)
+ call assert_equal('a test file with a*', getline(1))
+ bw
+
+ e X.zip
+ :1
+ let fname = 'a?.txt'
+ call search('\V' .. fname)
+ exe ":normal \<cr>"
+ call assert_match('zipfile://.*/X.zip::zipglob/a?.txt', @%)
+ call assert_equal('a test file with a?', getline(1))
+ bw
+
+ e X.zip
+ :1
+ let fname = 'a\.txt'
+ call search('\V' .. escape(fname, '\\'))
+ exe ":normal \<cr>"
+ call assert_match('zipfile://.*/X.zip::zipglob/a\\.txt', @%)
+ call assert_equal('a test file with a\', getline(1))
+ bw
+ e X.zip
+ :1
+ let fname = 'a\\.txt'
+ call search('\V' .. escape(fname, '\\'))
+ exe ":normal \<cr>"
+ call assert_match('zipfile://.*/X.zip::zipglob/a\\\\.txt', @%)
+ call assert_equal('a test file with a double \', getline(1))
+ bw
+
+ bw
endfunc