Improve extensions check

pull/95/head
Aloïs Micard 3 years ago
parent 89710584b4
commit 485a109519
No known key found for this signature in database
GPG Key ID: 1A0EB82F071F5EFE

@ -138,7 +138,7 @@ func (state *state) handleURLFoundEvent(subscriber event.Subscriber, body io.Rea
// Make sure extension is not forbidden
for _, ext := range state.forbiddenExtensions {
if strings.HasSuffix(u.Path, "."+ext) {
if strings.HasSuffix(strings.ToLower(u.Path), "."+ext) {
return fmt.Errorf("%s (.%s) %w", u, ext, errExtensionNotAllowed)
}
}

@ -107,20 +107,24 @@ func TestHandleMessageForbiddenExtensions(t *testing.T) {
apiClientMock := api_mock.NewMockAPI(mockCtrl)
subscriberMock := event_mock.NewMockSubscriber(mockCtrl)
msg := bytes.NewReader(nil)
subscriberMock.EXPECT().
Read(msg, &event.FoundURLEvent{}).
SetArg(1, event.FoundURLEvent{URL: "https://example.onion/image.png?id=12&test=2"}).
Return(nil)
urls := []string{"https://example.onion/image.png?id=12&test=2", "https://example.onion/image.PNG"}
s := state{
apiClient: apiClientMock,
refreshDelay: -1,
forbiddenExtensions: []string{"png"},
}
for _, url := range urls {
msg := bytes.NewReader(nil)
subscriberMock.EXPECT().
Read(msg, &event.FoundURLEvent{}).
SetArg(1, event.FoundURLEvent{URL: url}).
Return(nil)
if err := s.handleURLFoundEvent(subscriberMock, msg); !errors.Is(err, errExtensionNotAllowed) {
t.FailNow()
s := state{
apiClient: apiClientMock,
refreshDelay: -1,
forbiddenExtensions: []string{"png"},
}
if err := s.handleURLFoundEvent(subscriberMock, msg); !errors.Is(err, errExtensionNotAllowed) {
t.FailNow()
}
}
}

Loading…
Cancel
Save