Depending on the platform, I get various behaviours when using browseForFileToSave(true) with a file filter that specifies a given extension (let say '*.mid' )
On windows and macos, if I manually enter a file name that has no extension (let's say "foo"), getResult() will return a filename with that extension added (it will return "foo.mid"). Moreover it will warn if an existing "foo.mid" is about to be overwritten.
On linux, or with the Juce-supplied file browser component, getResult() will return a filename that does not have been completed with the expected file extension (it will return 'foo' instead of 'foo.mid'). And the overwriting test will trigger if a file name 'foo' exists, not if a file named 'foo.mid' exists.
Another remark: the warnAboutOverwritingExistingFiles is always considered as true on macos, there is no way to disable it.