diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 47ce814c6ec1..904a63a5d09f 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -886,7 +886,7 @@ void App::GetFileIcon(const base::FilePath& path, } if (!args->GetNext(&callback)) { - args->ThrowError(); + args->ThrowError("Missing required callback function"); return; } diff --git a/docs/api/app.md b/docs/api/app.md index 5bd12f361d61..e825add47e89 100644 --- a/docs/api/app.md +++ b/docs/api/app.md @@ -405,11 +405,17 @@ You can request the following paths by the name: * `path` String * `options` Object (optional) - * `size` String - Can be `small`, `normal`, `large`. Except for `large` on _macOS_ + * `size` String - Can be `small`, `normal`, `large`. The `large` size is not supported on _macOS_ * `callback` Function * `error` `Error` * `icon` [NativeImage](native-image.md) +Fetches associated icon for using OS rules for handling icons. +On _Windows_, there a 2 kinds of icons: +- icons associated with certain file extension - `.mp3`, `.png`, etc. +- icons inside file itself, like `.exe`, `.dll`, `.ico`. +On _Linux_ and _macOS_, icons depend on application associated with file mime type. + ### `app.setPath(name, path)` * `name` String diff --git a/spec/api-app-spec.js b/spec/api-app-spec.js index 2508efe388fa..f158cc851a01 100644 --- a/spec/api-app-spec.js +++ b/spec/api-app-spec.js @@ -458,7 +458,7 @@ describe('app module', function () { }) describe('getFileIcon() API', function () { - const iconPath = path.join(process.cwd(), 'fixtures/assets/icon.ico') + const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico') const sizes = { small: 16, normal: 32, @@ -484,7 +484,7 @@ describe('app module', function () { }) describe('size option', function () { - it('fetches small icons', function (done) { + it('fetches small icon', function (done) { app.getFileIcon(iconPath, { size: 'small' }, function (err, icon) { const size = icon.getSize() assert.equal(err, null) @@ -494,7 +494,7 @@ describe('app module', function () { }) }) - it('fetches normal icons', function (done) { + it('fetches normal icon', function (done) { app.getFileIcon(iconPath, { size: 'normal' }, function (err, icon) { const size = icon.getSize() assert.equal(err, null) @@ -504,7 +504,7 @@ describe('app module', function () { }) }) - it('fetches large icons', function (done) { + it('fetches large icon', function (done) { if (process.platform === 'darwin') { return this.skip() // macOS does not support large icons }