52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
| USING: calendar ftp.server io.encodings.ascii io.files
 | |
| io.files.unique namespaces threads tools.test kernel
 | |
| io.servers.connection ftp.client accessors urls
 | |
| io.pathnames io.directories sequences fry io.backend ;
 | |
| FROM: ftp.client => ftp-get ;
 | |
| IN: ftp.server.tests
 | |
| 
 | |
| : test-file-contents ( -- string )
 | |
|     "Files are so boring anymore." ;
 | |
| 
 | |
| : create-test-file ( -- path )
 | |
|     test-file-contents
 | |
|     "ftp.server" "test" make-unique-file
 | |
|     [ ascii set-file-contents ] [ normalize-path ] bi ;
 | |
| 
 | |
| : test-ftp-server ( quot -- )
 | |
|     '[
 | |
|         current-temporary-directory get 0
 | |
|         <ftp-server>
 | |
|         [ start-server* ]
 | |
|         [
 | |
|             sockets>> first addr>> port>>
 | |
|             <url>
 | |
|                 swap >>port
 | |
|                 "ftp" >>protocol
 | |
|                 "localhost" >>host
 | |
|                 create-test-file >>path
 | |
|                 _ call
 | |
|         ]
 | |
|         [ stop-server ] tri
 | |
|     ] with-unique-directory drop ; inline
 | |
| 
 | |
| [ t ]
 | |
| [
 | |
|     
 | |
|     [
 | |
|         unique-directory [
 | |
|             [ ftp-get ] [ path>> file-name ascii file-contents ] bi
 | |
|         ] with-directory
 | |
|     ] test-ftp-server test-file-contents =
 | |
| ] unit-test
 | |
| 
 | |
| [
 | |
|     
 | |
|     [
 | |
|         "/" >>path
 | |
|         unique-directory [
 | |
|             [ ftp-get ] [ path>> file-name ascii file-contents ] bi
 | |
|         ] with-directory
 | |
|     ] test-ftp-server test-file-contents =
 | |
| ] must-fail
 |