diff --git a/spec/api-native-image-spec.js b/spec/api-native-image-spec.js index 043a914578c0..587ea876f29a 100644 --- a/spec/api-native-image-spec.js +++ b/spec/api-native-image-spec.js @@ -34,5 +34,32 @@ describe('nativeImage module', () => { assert.equal(image.getSize().height, 190); assert.equal(image.getSize().width, 538); }); + + it('Gets an NSImage pointer on OS X', () => { + if (process.platform !== 'darwin') return; + + const imagePath = `${path.join(__dirname, 'fixtures', 'api')}${path.sep}..${path.sep}${path.join('assets', 'logo.png')}`; + const image = nativeImage.createFromPath(imagePath); + const nsimage = image.asNativeRepresentation('nsimage'); + + assert.equal(nsimage.length, 8); + + // If all bytes are null, that's Bad + assert.equal(nsimage.reduce((acc,x) => acc || (x != 0)), true); + }); + + it('Throws when asNativeRepresentation gets a bogus value', () => { + const imagePath = `${path.join(__dirname, 'fixtures', 'api')}${path.sep}..${path.sep}${path.join('assets', 'logo.png')}`; + const image = nativeImage.createFromPath(imagePath); + + let shouldDie = true; + try { + image.asNativeRepresentation('__foobar__'); + } catch (e) { + shouldDie = false; + } + + assert.equal(shouldDie, false); + }); }); });