User is able to create file/folders using relative path #13099

Open
simon66 opened this Issue Feb 13, 2017 · 7 comments

Projects

None yet

7 participants

@simon66
simon66 commented Feb 13, 2017 edited

Prerequisites

  • Can you reproduce the problem with Debug -> Reload Without Extensions?
  • Did you perform a cursory search to see if your bug or enhancement is already reported?
  • Did you read the Troubleshooting guide?

Description

This bug was first found by @pomax(mozilla#434) and then fixed by @tallandroid (#11862).

"It's possible to right-click in the file tree and create a file (or folder) name it ../something, and the path isn't resolved, but rather the .. and / characters are treated as literals to be used in the filename itself." - @humphd(#11609)

It looks like this bug wasn't fully fixed. I'm using the latest version of Brackets and I'm still able to reproduce it.

screen shot 2017-02-12 at 12 30 43 pm
screen shot 2017-02-12 at 12 31 40 pm

Steps to Reproduce

  1. Create/Rename a file
  2. Give it a valid relative path with a unique file name (Eg. ../../file1)
  3. Save it
  4. File is now created in whatever path you gave it

Expected behavior: An error message should show complaining about the relative path.

Actual behavior: File is renamed/created without an error message.

Versions

OS: macOS sierra 11.2.3
Brackets Version: 1.8 build 1.8.0-17108

@ficristo
Member

Do you want to take a look at this?

@tallandroid

@simon66 Thanks for bringing it up. I can take a look into this later this week. If you want to pick it up before that , feel free to pick it up.

@Pomax
Pomax commented Feb 14, 2017

@simon66 is a student currently helping us (the Mozilla Foundation) run through a bug list for https://thimble.mozilla.org, which relies on brackets for its code editor part (it's on 1.4 at the moment but we're uplifting to 1.8), finding and fixing issues that are good first bugs for first time contributors. In this particular case, unless simon wants to dive very deep, I'd recommend having someone more knowledgeable w.r.t. the Brackets codebase look at this particular issue =)

@humphd
Contributor
humphd commented Feb 14, 2017

I think it's fine if he wants to try it. @simon66 I'd suggest beginning with converting your STR above to a failing test case or two in https://github.com/tallandroid/brackets/blob/master/test/spec/ProjectModel-test.js, and once you can get your tests to fail, move on to a fix.

@simon66
simon66 commented Feb 14, 2017

@ficristo Yep, I'd like to fix this issue, I'll take @humphd approach and once everything is done, I'll do a PR ๐Ÿ‘
I'll have my PR later on this week :)

@simon66 simon66 was assigned by petetnt Feb 16, 2017
@simon66
simon66 commented Feb 19, 2017

Hi @humphd
Looking at the test files, I noticed that there are a collection of file tests already in https://github.com/tallandroid/brackets/blob/master/test/spec/FileSystem-test.js
After running Jasmine Spec runner on "FileSystem", it shows that the test passed.
Where should the test case go? Under FileSystem-test.js or ProjectModel-test?
Thanks :)

@zaggino
Member
zaggino commented Feb 20, 2017

@simon66
Where you put the tests depends mostly on where you fix the code. If you fix the code in FileSystem.js you'd put the tests in FileSystem-test.js, when you fix ProjectModel.js you'd put that into ProjectModel-test.js. It's a rough guideline and of course there are exceptions to this but you should see what the other tests are testing and see where your test fits the best. Since this is a file tree issue, I'd also look if your test doesn't fit into FileTreeView-test.js suite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment