mirror of
https://github.com/atom/atom.git
synced 2026-01-24 22:38:20 -05:00
Project.getFilePaths returns full urls.
FileFinder.initialize takes a 'selected' callback.
This commit is contained in:
@@ -59,11 +59,15 @@ describe 'FileFinder', ->
|
||||
expect(finder.find('li:last')).toHaveClass "selected"
|
||||
|
||||
describe "select", ->
|
||||
it "when an file is selected atom.open is called", ->
|
||||
spyOn(atom, 'open')
|
||||
selectedCallback = jasmine.createSpy 'selected'
|
||||
|
||||
beforeEach ->
|
||||
finder = FileFinder.build {urls, selected: selectedCallback}
|
||||
|
||||
it "when a file is selected Editor.open is called", ->
|
||||
finder.moveDown()
|
||||
finder.select()
|
||||
expect(atom.open).toHaveBeenCalledWith(urls[1])
|
||||
expect(selectedCallback).toHaveBeenCalledWith(urls[1])
|
||||
|
||||
it "when no file is selected, does nothing", ->
|
||||
spyOn(atom, 'open')
|
||||
|
||||
@@ -8,8 +8,7 @@ describe "Project", ->
|
||||
|
||||
describe ".getFilePaths()", ->
|
||||
it "returns a promise which resolves to a list of all file urls in the project, recursively", ->
|
||||
expectedPaths = for url in fs.list(project.url, true) when fs.isFile url
|
||||
url.replace project.url, ''
|
||||
expectedPaths = (url for url in fs.list(project.url, true) when fs.isFile url)
|
||||
|
||||
waitsForPromise ->
|
||||
project.getFilePaths().done (result) ->
|
||||
|
||||
@@ -55,14 +55,6 @@ describe "RootView", ->
|
||||
runs ->
|
||||
expect(rootView.fileFinder.urlList.children('li').length).toBe 3
|
||||
|
||||
it "removes common path prefix from files", ->
|
||||
waitsForPromise ->
|
||||
rootView.toggleFileFinder()
|
||||
|
||||
runs ->
|
||||
commonPathPattern = new RegExp("^" + fs.directory(url))
|
||||
expect(rootView.fileFinder.urlList.children('li:first').text()).not.toMatch commonPathPattern
|
||||
|
||||
describe "when there is no project", ->
|
||||
beforeEach ->
|
||||
rootView = RootView.build()
|
||||
|
||||
@@ -14,7 +14,7 @@ class FileFinder extends Template
|
||||
urls: null
|
||||
maxResults: null
|
||||
|
||||
initialize: ({@urls}) ->
|
||||
initialize: ({@urls, @selected}) ->
|
||||
@maxResults = 10
|
||||
|
||||
@populateUrlList()
|
||||
@@ -34,8 +34,7 @@ class FileFinder extends Template
|
||||
|
||||
select: ->
|
||||
filePath = @findSelectedLi().text()
|
||||
atom.open filePath if filePath
|
||||
|
||||
@selected(filePath) if filePath and @selected
|
||||
|
||||
moveUp: ->
|
||||
@findSelectedLi()
|
||||
|
||||
@@ -8,6 +8,5 @@ class Project
|
||||
getFilePaths: ->
|
||||
projectUrl = @url
|
||||
fs.async.list(@url, true).pipe (urls) ->
|
||||
urls = (url.replace(projectUrl, "") for url in urls when fs.isFile(url))
|
||||
urls
|
||||
url for url in urls when fs.isFile(url)
|
||||
|
||||
|
||||
@@ -43,6 +43,6 @@ class RootView extends Template
|
||||
@fileFinder = null
|
||||
else
|
||||
@project.getFilePaths().done (urls) =>
|
||||
@fileFinder = FileFinder.build({urls})
|
||||
@fileFinder = FileFinder.build({urls, selected: (url) => @editor.open(url)})
|
||||
@addPane(@fileFinder)
|
||||
@fileFinder.input.focus()
|
||||
|
||||
Reference in New Issue
Block a user