You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							1.6 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							82 lines
						
					
					
						
							1.6 KiB
						
					
					
				| package s3api | |
| 
 | |
| import ( | |
| 	"testing" | |
| 
 | |
| 	"github.com/stretchr/testify/assert" | |
| ) | |
| 
 | |
| func TestRemoveDuplicateSlashes(t *testing.T) { | |
| 	tests := []struct { | |
| 		name           string | |
| 		path           string | |
| 		expectedResult string | |
| 	}{ | |
| 		{ | |
| 			name:           "empty", | |
| 			path:           "", | |
| 			expectedResult: "", | |
| 		}, | |
| 		{ | |
| 			name:           "slash", | |
| 			path:           "/", | |
| 			expectedResult: "/", | |
| 		}, | |
| 		{ | |
| 			name:           "object", | |
| 			path:           "object", | |
| 			expectedResult: "object", | |
| 		}, | |
| 		{ | |
| 			name:           "correct path", | |
| 			path:           "/path/to/object", | |
| 			expectedResult: "/path/to/object", | |
| 		}, | |
| 		{ | |
| 			name:           "path with duplicates", | |
| 			path:           "///path//to/object//", | |
| 			expectedResult: "/path/to/object/", | |
| 		}, | |
| 	} | |
| 
 | |
| 	for _, tst := range tests { | |
| 		t.Run(tst.name, func(t *testing.T) { | |
| 			obj := removeDuplicateSlashes(tst.path) | |
| 			assert.Equal(t, tst.expectedResult, obj) | |
| 		}) | |
| 	} | |
| } | |
| 
 | |
| func TestS3ApiServer_toFilerUrl(t *testing.T) { | |
| 	tests := []struct { | |
| 		name string | |
| 		args string | |
| 		want string | |
| 	}{ | |
| 		{ | |
| 			"simple", | |
| 			"/uploads/eaf10b3b-3b3a-4dcd-92a7-edf2a512276e/67b8b9bf-7cca-4cb6-9b34-22fcb4d6e27d/Bildschirmfoto 2022-09-19 um 21.38.37.png", | |
| 			"/uploads/eaf10b3b-3b3a-4dcd-92a7-edf2a512276e/67b8b9bf-7cca-4cb6-9b34-22fcb4d6e27d/Bildschirmfoto%202022-09-19%20um%2021.38.37.png", | |
| 		}, | |
| 		{ | |
| 			"double prefix", | |
| 			"//uploads/t.png", | |
| 			"/uploads/t.png", | |
| 		}, | |
| 		{ | |
| 			"triple prefix", | |
| 			"///uploads/t.png", | |
| 			"/uploads/t.png", | |
| 		}, | |
| 		{ | |
| 			"empty prefix", | |
| 			"uploads/t.png", | |
| 			"/uploads/t.png", | |
| 		}, | |
| 	} | |
| 	for _, tt := range tests { | |
| 		t.Run(tt.name, func(t *testing.T) { | |
| 			assert.Equalf(t, tt.want, urlEscapeObject(tt.args), "clean %v", tt.args) | |
| 		}) | |
| 	} | |
| }
 |