patch 9.1.0661: the zip plugin is not tested.
Problem: the zip plugin is not tested. Solution: include tests (Damien) closes: #15411 Signed-off-by: Damien <141588647+xrandomname@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
		
				
					committed by
					
						 Christian Brabandt
						Christian Brabandt
					
				
			
			
				
	
			
			
			
						parent
						
							f0e9b72c8f
						
					
				
				
					commit
					d7af21e746
				
			
							
								
								
									
										1
									
								
								Filelist
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Filelist
									
									
									
									
									
								
							| @ -218,6 +218,7 @@ SRC_ALL =	\ | |||||||
| 		src/testdir/samples/*.txt \ | 		src/testdir/samples/*.txt \ | ||||||
| 		src/testdir/samples/*.vim \ | 		src/testdir/samples/*.vim \ | ||||||
| 		src/testdir/samples/test000 \ | 		src/testdir/samples/test000 \ | ||||||
|  | 		src/testdir/samples/test.zip \ | ||||||
| 		src/testdir/color_ramp.vim \ | 		src/testdir/color_ramp.vim \ | ||||||
| 		src/testdir/silent.wav \ | 		src/testdir/silent.wav \ | ||||||
| 		src/testdir/popupbounce.vim \ | 		src/testdir/popupbounce.vim \ | ||||||
|  | |||||||
| @ -342,6 +342,7 @@ NEW_TESTS = \ | |||||||
| 	test_writefile \ | 	test_writefile \ | ||||||
| 	test_xdg \ | 	test_xdg \ | ||||||
| 	test_xxd \ | 	test_xxd \ | ||||||
|  | 	test_zip_plugin \ | ||||||
| 	test_alot_latin \ | 	test_alot_latin \ | ||||||
| 	test_alot_utf8 \ | 	test_alot_utf8 \ | ||||||
| 	test_alot | 	test_alot | ||||||
| @ -583,6 +584,7 @@ NEW_TESTS_RES = \ | |||||||
| 	test_writefile.res \ | 	test_writefile.res \ | ||||||
| 	test_xdg.res \ | 	test_xdg.res \ | ||||||
| 	test_xxd.res \ | 	test_xxd.res \ | ||||||
|  | 	test_zip_plugin.res \ | ||||||
| 	test_alot_latin.res \ | 	test_alot_latin.res \ | ||||||
| 	test_alot_utf8.res \ | 	test_alot_utf8.res \ | ||||||
| 	test_alot.res | 	test_alot.res | ||||||
|  | |||||||
							
								
								
									
										
											BIN
										
									
								
								src/testdir/samples/test.zip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/testdir/samples/test.zip
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										139
									
								
								src/testdir/test_zip_plugin.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								src/testdir/test_zip_plugin.vim
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,139 @@ | |||||||
|  | so check.vim | ||||||
|  |  | ||||||
|  | CheckExecutable unzip | ||||||
|  |  | ||||||
|  | if 0 " Find uncovered line | ||||||
|  |   profile start zip_profile | ||||||
|  |   profile! file */zip*.vim | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | runtime plugin/zipPlugin.vim | ||||||
|  |  | ||||||
|  | def Test_zip_basic() | ||||||
|  |   var _sl = &shellslash | ||||||
|  |   set noshellslash | ||||||
|  |  | ||||||
|  |   ### get our zip file | ||||||
|  |   if !filecopy("samples/test.zip", "X.zip") | ||||||
|  |     assert_report("Can't copy samples/test.zip") | ||||||
|  |     return | ||||||
|  |   endif | ||||||
|  |   defer delete("X.zip") | ||||||
|  |  | ||||||
|  |   e X.zip | ||||||
|  |  | ||||||
|  |   ### Check header | ||||||
|  |   assert_match('^" zip\.vim version v\d\+', getline(1)) | ||||||
|  |   assert_match('^" Browsing zipfile .*/X.zip', getline(2)) | ||||||
|  |   assert_match('^" Select a file with cursor and press ENTER', getline(3)) | ||||||
|  |   assert_match('^$', getline(4)) | ||||||
|  |  | ||||||
|  |   ### Check files listing | ||||||
|  |   assert_equal(["Xzip/", "Xzip/dir/", "Xzip/file.txt"], getline(5, 7)) | ||||||
|  |  | ||||||
|  |   ### Check ENTER on header | ||||||
|  |   :1 | ||||||
|  |   exe ":normal \<cr>" | ||||||
|  |   assert_equal("X.zip", @%) | ||||||
|  |  | ||||||
|  |   ### Check ENTER on directory | ||||||
|  |   :1|:/^$//dir/ | ||||||
|  |   assert_match('Please specify a file, not a directory', | ||||||
|  |                execute("normal \<CR>")) | ||||||
|  |  | ||||||
|  |   ### Check ENTER on file | ||||||
|  |   :1|:/^$//file/ | ||||||
|  |   exe ":normal \<cr>" | ||||||
|  |   assert_match('zipfile://.*/X.zip::Xzip/file.txt', @%) | ||||||
|  |   assert_equal('one', getline(1)) | ||||||
|  |  | ||||||
|  |   ### Check editing file | ||||||
|  |   if executable("zip") | ||||||
|  |     s/one/two/ | ||||||
|  |     assert_equal("two", getline(1)) | ||||||
|  |     w | ||||||
|  |     bw|bw | ||||||
|  |     e X.zip | ||||||
|  |  | ||||||
|  |     :1|:/^$//file/ | ||||||
|  |     exe "normal \<cr>" | ||||||
|  |     assert_equal("two", getline(1)) | ||||||
|  |   endif | ||||||
|  |  | ||||||
|  |   only | ||||||
|  |   e X.zip | ||||||
|  |  | ||||||
|  |   ### Check extracting file | ||||||
|  |   :1|:/^$//file/ | ||||||
|  |   normal x | ||||||
|  |   assert_true(filereadable("Xzip/file.txt")) | ||||||
|  |   delete("Xzip", "rf") | ||||||
|  |  | ||||||
|  |   ### Check extracting directory | ||||||
|  |   :1|:/^$//dir/ | ||||||
|  |   assert_match('Please specify a file, not a directory', execute("normal x")) | ||||||
|  |   assert_equal("X.zip", @%) | ||||||
|  |  | ||||||
|  |   ### Check "x" on header | ||||||
|  |   :1 | ||||||
|  |   normal x | ||||||
|  |   assert_equal("X.zip", @%) | ||||||
|  |   bw | ||||||
|  |  | ||||||
|  |   ### Check opening zip when "unzip" program is missing | ||||||
|  |   var save_zip_unzipcmd = g:zip_unzipcmd | ||||||
|  |   g:zip_unzipcmd = "/" | ||||||
|  |   assert_match('unzip not available on your system', execute("e X.zip")) | ||||||
|  |  | ||||||
|  |   ### Check when "unzip" don't work | ||||||
|  |   if executable("false") | ||||||
|  |     g:zip_unzipcmd = "false" | ||||||
|  |     assert_match('X\.zip is not a zip file', execute("e X.zip")) | ||||||
|  |   endif | ||||||
|  |   bw | ||||||
|  |  | ||||||
|  |   g:zip_unzipcmd = save_zip_unzipcmd | ||||||
|  |   e X.zip | ||||||
|  |  | ||||||
|  |   ### Check opening file when "unzip" is missing | ||||||
|  |   g:zip_unzipcmd = "/" | ||||||
|  |   assert_match('sorry, your system doesn''t appear to have the / program', | ||||||
|  |                execute("normal \<CR>")) | ||||||
|  |  | ||||||
|  |   bw|bw | ||||||
|  |   g:zip_unzipcmd = save_zip_unzipcmd | ||||||
|  |   e X.zip | ||||||
|  |  | ||||||
|  |   ### Check :write when "zip" program is missing | ||||||
|  |   :1|:/^$//file/ | ||||||
|  |   exe "normal \<cr>Goanother\<esc>" | ||||||
|  |   var save_zip_zipcmd = g:zip_zipcmd | ||||||
|  |   g:zip_zipcmd = "/" | ||||||
|  |   assert_match('sorry, your system doesn''t appear to have the / program', | ||||||
|  |                execute("write")) | ||||||
|  |  | ||||||
|  |   ### Check when "zip" report failure | ||||||
|  |   if executable("false") | ||||||
|  |     g:zip_zipcmd = "false" | ||||||
|  |     assert_match('sorry, unable to update .*/X.zip with Xzip/file.txt', | ||||||
|  |                   execute("write")) | ||||||
|  |   endif | ||||||
|  |   bw!|bw | ||||||
|  |  | ||||||
|  |   g:zip_zipcmd = save_zip_zipcmd | ||||||
|  |  | ||||||
|  |   ### Check opening an no zipfile | ||||||
|  |   writefile(["qsdf"], "Xcorupt.zip", "D") | ||||||
|  |   e! Xcorupt.zip | ||||||
|  |   assert_equal("qsdf", getline(1)) | ||||||
|  |  | ||||||
|  |   bw | ||||||
|  |  | ||||||
|  |   ### Check no existing zipfile | ||||||
|  |   assert_match('File not readable', execute("e Xnot_exists.zip")) | ||||||
|  |  | ||||||
|  |   bw | ||||||
|  |  | ||||||
|  |   &shellslash = _sl | ||||||
|  |  | ||||||
|  | enddef | ||||||
| @ -704,6 +704,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     661, | ||||||
| /**/ | /**/ | ||||||
|     660, |     660, | ||||||
| /**/ | /**/ | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user