diff --git a/atom/common/api/atom_api_native_image.cc b/atom/common/api/atom_api_native_image.cc index a8f89f15e1..0c174941db 100644 --- a/atom/common/api/atom_api_native_image.cc +++ b/atom/common/api/atom_api_native_image.cc @@ -238,6 +238,8 @@ v8::Local NativeImage::ToPNG(v8::Isolate* isolate) { } v8::Local NativeImage::ToBitmap(v8::Isolate* isolate) { + if (IsEmpty()) return node::Buffer::New(isolate, 0).ToLocalChecked(); + const SkBitmap* bitmap = image_.ToSkBitmap(); SkPixelRef* ref = bitmap->pixelRef(); return node::Buffer::Copy(isolate, @@ -264,6 +266,8 @@ std::string NativeImage::ToDataURL() { } v8::Local NativeImage::GetBitmap(v8::Isolate* isolate) { + if (IsEmpty()) return node::Buffer::New(isolate, 0).ToLocalChecked(); + const SkBitmap* bitmap = image_.ToSkBitmap(); SkPixelRef* ref = bitmap->pixelRef(); return node::Buffer::New(isolate, @@ -276,6 +280,8 @@ v8::Local NativeImage::GetBitmap(v8::Isolate* isolate) { v8::Local NativeImage::GetNativeHandle(v8::Isolate* isolate, mate::Arguments* args) { #if defined(OS_MACOSX) + if (IsEmpty()) return node::Buffer::New(isolate, 0).ToLocalChecked(); + NSImage* ptr = image_.AsNSImage(); return node::Buffer::Copy( isolate, diff --git a/spec/api-native-image-spec.js b/spec/api-native-image-spec.js index 7bb2e040f6..e28b37bebf 100644 --- a/spec/api-native-image-spec.js +++ b/spec/api-native-image-spec.js @@ -7,7 +7,19 @@ const path = require('path') describe('nativeImage module', () => { describe('createEmpty()', () => { it('returns an empty image', () => { - assert(nativeImage.createEmpty().isEmpty()) + const empty = nativeImage.createEmpty() + assert.equal(empty.isEmpty(), true) + assert.equal(empty.getAspectRatio(), 1) + assert.equal(empty.toDataURL(), 'data:image/png;base64,') + assert.deepEqual(empty.getSize(), {width: 0, height: 0}) + assert.deepEqual(empty.getBitmap(), []) + assert.deepEqual(empty.toBitmap(), []) + assert.deepEqual(empty.toJPEG(100), []) + assert.deepEqual(empty.toPNG(), []) + + if (process.platform === 'darwin') { + assert.deepEqual(empty.getNativeHandle(), []) + } }) })