Explicitly skip tests that should be skipped

This commit is contained in:
Aleksei Kuzmin 2017-11-16 00:05:46 +03:00
parent 42d7d51b75
commit cf749a8e18
19 changed files with 675 additions and 262 deletions

View file

@ -113,8 +113,13 @@ describe('app module', () => {
})
describe('app.isInApplicationsFolder()', () => {
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('should be false during tests', () => {
if (process.platform !== 'darwin') return
assert.equal(app.isInApplicationsFolder(), false)
})
})
@ -220,7 +225,11 @@ describe('app module', () => {
})
describe('app.setUserActivity(type, userInfo)', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('sets the current activity', () => {
app.setUserActivity('com.electron.testActivity', {testData: '123'})
@ -229,10 +238,14 @@ describe('app module', () => {
})
xdescribe('app.importCertificate', () => {
if (process.platform !== 'linux') return
var w = null
before(function () {
if (process.platform !== 'linux') {
this.skip()
}
})
afterEach(() => closeWindow(w).then(() => { w = null }))
it('can import certificate into platform cert store', (done) => {
@ -310,33 +323,70 @@ describe('app module', () => {
})
})
describe('app.setBadgeCount API', () => {
const shouldFail = process.platform === 'win32' ||
(process.platform === 'linux' && !app.isUnityRunning())
describe('app.setBadgeCount', () => {
const platformIsNotSupported =
(process.platform === 'win32') ||
(process.platform === 'linux' && !app.isUnityRunning())
const platformIsSupported = !platformIsNotSupported
afterEach(() => {
const expectedBadgeCount = 42
let returnValue = null
beforeEach(() => {
returnValue = app.setBadgeCount(expectedBadgeCount)
})
after(() => {
// Remove the badge.
app.setBadgeCount(0)
})
it('returns false when failed', () => {
assert.equal(app.setBadgeCount(42), !shouldFail)
describe('on supported platform', () => {
before(function () {
if (platformIsNotSupported) {
this.skip()
}
})
it('returns true', () => {
assert.equal(returnValue, true)
})
it('sets a badge count', () => {
assert.equal(app.getBadgeCount(), expectedBadgeCount)
})
})
it('should set a badge count', () => {
app.setBadgeCount(42)
assert.equal(app.getBadgeCount(), shouldFail ? 0 : 42)
describe('on unsupported platform', () => {
before(function () {
if (platformIsSupported) {
this.skip()
}
})
it('returns false', () => {
assert.equal(returnValue, false)
})
it('does not set a badge count', () => {
assert.equal(app.getBadgeCount(), 0)
})
})
})
describe('app.get/setLoginItemSettings API', () => {
if (process.platform === 'linux') return
const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe')
const processStartArgs = [
'--processStart', `"${path.basename(process.execPath)}"`,
'--process-start-args', `"--hidden"`
]
before(function () {
if (process.platform === 'linux') {
this.skip()
}
})
beforeEach(() => {
app.setLoginItemSettings({openAtLogin: false})
app.setLoginItemSettings({openAtLogin: false, path: updateExe, args: processStartArgs})
@ -376,8 +426,12 @@ describe('app module', () => {
})
})
it('allows you to pass a custom executable and arguments', () => {
if (process.platform !== 'win32') return
it('allows you to pass a custom executable and arguments', function () {
if (process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
app.setLoginItemSettings({openAtLogin: true, path: updateExe, args: processStartArgs})
@ -438,8 +492,6 @@ describe('app module', () => {
})
describe('setAsDefaultProtocolClient(protocol, path, args)', () => {
if (process.platform !== 'win32') return
const protocol = 'electron-test'
const updateExe = path.resolve(path.dirname(process.execPath), '..', 'Update.exe')
const processStartArgs = [
@ -447,6 +499,12 @@ describe('app module', () => {
'--process-start-args', `"--hidden"`
]
before(function () {
if (process.platform !== 'win32') {
this.skip()
}
})
beforeEach(() => {
app.removeAsDefaultProtocolClient(protocol)
app.removeAsDefaultProtocolClient(protocol, updateExe, processStartArgs)
@ -474,9 +532,6 @@ describe('app module', () => {
})
describe('getFileIcon() API', () => {
// FIXME Get these specs running on Linux CI
if (process.platform === 'linux' && isCI) return
const iconPath = path.join(__dirname, 'fixtures/assets/icon.ico')
const sizes = {
small: 16,
@ -484,6 +539,15 @@ describe('app module', () => {
large: process.platform === 'win32' ? 32 : 48
}
// (alexeykuzmin): `.skip()` called in `before`
// doesn't affect nested `describe`s.
beforeEach(function () {
// FIXME Get these specs running on Linux CI
if (process.platform === 'linux' && isCI) {
this.skip()
}
})
it('fetches a non-empty icon', (done) => {
app.getFileIcon(iconPath, (err, icon) => {
assert.equal(err, null)
@ -523,9 +587,13 @@ describe('app module', () => {
})
})
it('fetches a large icon', (done) => {
it('fetches a large icon', function (done) {
// macOS does not support large icons
if (process.platform === 'darwin') return done()
if (process.platform === 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
app.getFileIcon(iconPath, { size: 'large' }, function (err, icon) {
const size = icon.getSize()
@ -572,14 +640,18 @@ describe('app module', () => {
})
describe('mixed sandbox option', () => {
// FIXME Get these specs running on Linux
if (process.platform === 'linux') return
let appProcess = null
let server = null
const socketPath = process.platform === 'win32' ? '\\\\.\\pipe\\electron-mixed-sandbox' : '/tmp/electron-mixed-sandbox'
beforeEach((done) => {
beforeEach(function (done) {
// XXX(alexeykuzmin): Calling `.skip()` inside a `before` hook
// doesn't affect nested `describe`s.
// FIXME Get these specs running on Linux
if (process.platform === 'linux') {
this.skip()
}
fs.unlink(socketPath, () => {
server = net.createServer()
server.listen(socketPath)

View file

@ -2,30 +2,42 @@ const assert = require('assert')
const {autoUpdater} = require('electron').remote
const {ipcRenderer} = require('electron')
// Skip autoUpdater tests in MAS build.
if (!process.mas) {
describe('autoUpdater module', function () {
describe('checkForUpdates', function () {
it('emits an error on Windows when called the feed URL is not set', function (done) {
if (process.platform !== 'win32') {
return done()
}
describe('autoUpdater module', function () {
// XXX(alexeykuzmin): Calling `.skip()` in a 'before' hook
// doesn't affect nested 'describe's
beforeEach(function () {
// Skip autoUpdater tests in MAS build.
if (process.mas) {
this.skip()
}
})
ipcRenderer.once('auto-updater-error', function (event, message) {
assert.equal(message, 'Update URL is not set')
done()
})
autoUpdater.setFeedURL('')
autoUpdater.checkForUpdates()
describe('checkForUpdates', function () {
it('emits an error on Windows when called the feed URL is not set', function (done) {
if (process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
ipcRenderer.once('auto-updater-error', function (event, message) {
assert.equal(message, 'Update URL is not set')
done()
})
autoUpdater.setFeedURL('')
autoUpdater.checkForUpdates()
})
})
describe('setFeedURL', function () {
it('emits an error on macOS when the application is unsigned', function (done) {
describe('setFeedURL', function () {
describe('on Mac', function () {
before(function () {
if (process.platform !== 'darwin') {
return done()
this.skip()
}
})
it('emits an error when the application is unsigned', function (done) {
ipcRenderer.once('auto-updater-error', function (event, message) {
assert.equal(message, 'Could not get code signature for running application')
done()
@ -33,56 +45,62 @@ if (!process.mas) {
autoUpdater.setFeedURL('')
})
})
})
describe('getFeedURL', function () {
it('returns a falsey value by default', function () {
assert.ok(!autoUpdater.getFeedURL())
})
it('correctly fetches the previously set FeedURL', function (done) {
if (process.platform !== 'win32') {
return done()
}
const updateURL = 'https://fake-update.electron.io'
autoUpdater.setFeedURL(updateURL)
assert.equal(autoUpdater.getFeedURL(), updateURL)
done()
})
describe('getFeedURL', function () {
it('returns a falsey value by default', function () {
assert.ok(!autoUpdater.getFeedURL())
})
describe('quitAndInstall', function () {
it('emits an error on Windows when no update is available', function (done) {
if (process.platform !== 'win32') {
return done()
}
it('correctly fetches the previously set FeedURL', function (done) {
if (process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
ipcRenderer.once('auto-updater-error', function (event, message) {
assert.equal(message, 'No update available, can\'t quit and install')
done()
})
autoUpdater.quitAndInstall()
})
})
describe('error event', function () {
it('serializes correctly over the remote module', function (done) {
if (process.platform === 'linux') {
return done()
}
autoUpdater.once('error', function (error) {
assert.equal(error instanceof Error, true)
assert.deepEqual(Object.getOwnPropertyNames(error), ['stack', 'message', 'name'])
done()
})
autoUpdater.setFeedURL('')
if (process.platform === 'win32') {
autoUpdater.checkForUpdates()
}
})
const updateURL = 'https://fake-update.electron.io'
autoUpdater.setFeedURL(updateURL)
assert.equal(autoUpdater.getFeedURL(), updateURL)
done()
})
})
}
describe('quitAndInstall', function () {
it('emits an error on Windows when no update is available', function (done) {
if (process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
ipcRenderer.once('auto-updater-error', function (event, message) {
assert.equal(message, 'No update available, can\'t quit and install')
done()
})
autoUpdater.quitAndInstall()
})
})
describe('error event', function () {
it('serializes correctly over the remote module', function (done) {
if (process.platform === 'linux') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
autoUpdater.once('error', function (error) {
assert.equal(error instanceof Error, true)
assert.deepEqual(Object.getOwnPropertyNames(error), ['stack', 'message', 'name'])
done()
})
autoUpdater.setFeedURL('')
if (process.platform === 'win32') {
autoUpdater.checkForUpdates()
}
})
})
})

View file

@ -338,7 +338,11 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.show()', () => {
if (isCI) return
before(function () {
if (isCI) {
this.skip()
}
})
it('should focus on window', () => {
w.show()
@ -358,7 +362,11 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.hide()', () => {
if (isCI) return
before(function () {
if (isCI) {
this.skip()
}
})
it('should defocus on window', () => {
w.hide()
@ -558,8 +566,15 @@ describe('BrowserWindow module', () => {
w.setAlwaysOnTop(true)
assert.equal(w.isAlwaysOnTop(), true)
})
it('raises an error when relativeLevel is out of bounds', () => {
if (process.platform !== 'darwin') return
it('raises an error when relativeLevel is out of bounds', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test instead of marking it as passed.
// afterEach hook won't be run if a test is skipped dynamically.
// If afterEach isn't run current window won't be destroyed
// and the next test will fail on assertion in `closeWindow()`.
// this.skip()
return
}
assert.throws(() => {
w.setAlwaysOnTop(true, '', -2147483644)
@ -572,7 +587,11 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.alwaysOnTop() resets level on minimize', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('resets the windows level on minimize', () => {
assert.equal(w.isAlwaysOnTop(), false)
@ -586,24 +605,42 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.setAutoHideCursor(autoHide)', () => {
if (process.platform !== 'darwin') {
it('is not available on non-macOS platforms', () => {
assert.ok(!w.setAutoHideCursor)
describe('on macOS', () => {
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
return
}
it('allows changing cursor auto-hiding', () => {
assert.doesNotThrow(() => {
w.setAutoHideCursor(false)
w.setAutoHideCursor(true)
it('allows changing cursor auto-hiding', () => {
assert.doesNotThrow(() => {
w.setAutoHideCursor(false)
w.setAutoHideCursor(true)
})
})
})
describe('on non-macOS platforms', () => {
before(function () {
if (process.platform === 'darwin') {
this.skip()
}
})
it('is not available', () => {
assert.ok(!w.setAutoHideCursor)
})
})
})
describe('BrowserWindow.selectPreviousTab()', () => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', () => {
assert.doesNotThrow(() => {
w.selectPreviousTab()
})
@ -611,9 +648,13 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.selectNextTab()', () => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', () => {
assert.doesNotThrow(() => {
w.selectNextTab()
})
@ -621,9 +662,13 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.mergeAllWindows()', () => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', () => {
assert.doesNotThrow(() => {
w.mergeAllWindows()
})
@ -631,9 +676,13 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.moveTabToNewWindow()', () => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', () => {
assert.doesNotThrow(() => {
w.moveTabToNewWindow()
})
@ -641,19 +690,28 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.toggleTabBar()', () => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', () => {
assert.doesNotThrow(() => {
w.toggleTabBar()
})
})
})
describe('BrowserWindow.addTabbedWindow()', (done) => {
it('does not throw', () => {
if (process.platform !== 'darwin') return
// FIXME(alexeykuzmin): Fails on Mac.
xdescribe('BrowserWindow.addTabbedWindow()', () => {
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('does not throw', (done) => {
const tabbedWindow = new BrowserWindow({})
assert.doesNotThrow(() => {
w.addTabbedWindow(tabbedWindow)
@ -675,9 +733,13 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.setAppDetails(options)', () => {
it('supports setting the app details', () => {
if (process.platform !== 'win32') return
before(function () {
if (process.platform !== 'win32') {
this.skip()
}
})
it('supports setting the app details', () => {
const iconPath = path.join(fixtures, 'assets', 'icon.ico')
assert.doesNotThrow(() => {
@ -800,8 +862,15 @@ describe('BrowserWindow module', () => {
})
describe('"titleBarStyle" option', () => {
if (process.platform !== 'darwin') return
if (parseInt(os.release().split('.')[0]) < 14) return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
if (parseInt(os.release().split('.')[0]) < 14) {
this.skip()
}
})
it('creates browser window with hidden title bar', () => {
w.destroy()
@ -828,7 +897,11 @@ describe('BrowserWindow module', () => {
})
describe('enableLargerThanScreen" option', () => {
if (process.platform === 'linux') return
before(function () {
if (process.platform === 'linux') {
this.skip()
}
})
beforeEach(() => {
w.destroy()
@ -856,9 +929,13 @@ describe('BrowserWindow module', () => {
})
describe('"zoomToPageWidth" option', () => {
it('sets the window width to the page width when used', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('sets the window width to the page width when used', () => {
w.destroy()
w = new BrowserWindow({
show: false,
@ -1602,8 +1679,15 @@ describe('BrowserWindow module', () => {
w.loadURL(`file://${path.join(fixtures, 'pages', 'visibilitychange.html')}`)
})
it('visibilityState changes when window is shown inactive', (done) => {
if (isCI && process.platform === 'win32') return done()
it('visibilityState changes when window is shown inactive', function (done) {
if (isCI && process.platform === 'win32') {
// FIXME(alexeykuzmin): Skip the test instead of marking it as passed.
// afterEach hook won't be run if a test is skipped dynamically.
// If afterEach isn't run current window won't be destroyed
// and the next test will fail on assertion in `closeWindow()`.
// this.skip()
return done()
}
w = new BrowserWindow({width: 100, height: 100})
@ -1621,8 +1705,15 @@ describe('BrowserWindow module', () => {
w.loadURL(`file://${path.join(fixtures, 'pages', 'visibilitychange.html')}`)
})
it('visibilityState changes when window is minimized', (done) => {
if (isCI && process.platform === 'linux') return done()
it('visibilityState changes when window is minimized', function (done) {
if (isCI && process.platform === 'linux') {
// FIXME(alexeykuzmin): Skip the test instead of marking it as passed.
// afterEach hook won't be run if a test is skipped dynamically.
// If afterEach isn't run current window won't be destroyed
// and the next test will fail on assertion in `closeWindow()`.
// this.skip()
return done()
}
w = new BrowserWindow({width: 100, height: 100})
@ -1676,7 +1767,11 @@ describe('BrowserWindow module', () => {
})
describe('new-window event', () => {
if (isCI && process.platform === 'darwin') return
before(function () {
if (isCI && process.platform === 'darwin') {
this.skip()
}
})
it('emits when window.open is called', (done) => {
w.webContents.once('new-window', (e, url, frameName, disposition, options, additionalFeatures) => {
@ -1743,10 +1838,14 @@ describe('BrowserWindow module', () => {
})
describe('sheet-begin event', () => {
if (process.platform !== 'darwin') return
let sheet = null
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
afterEach(() => {
return closeWindow(sheet, {assertSingleWindow: false}).then(() => { sheet = null })
})
@ -1765,10 +1864,14 @@ describe('BrowserWindow module', () => {
})
describe('sheet-end event', () => {
if (process.platform !== 'darwin') return
let sheet = null
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
afterEach(() => {
return closeWindow(sheet, {assertSingleWindow: false}).then(() => { sheet = null })
})
@ -1785,11 +1888,17 @@ describe('BrowserWindow module', () => {
})
describe('beginFrameSubscription method', () => {
// This test is too slow, only test it on CI.
if (!isCI) return
before(function () {
// This test is too slow, only test it on CI.
if (!isCI) {
this.skip()
}
// FIXME These specs crash on Linux when run in a docker container
if (isCI && process.platform === 'linux') return
// FIXME These specs crash on Linux when run in a docker container
if (isCI && process.platform === 'linux') {
this.skip()
}
})
it('subscribes to frame updates', (done) => {
let called = false
@ -1974,8 +2083,16 @@ describe('BrowserWindow module', () => {
})
describe('window states (excluding Linux)', () => {
// FIXME(alexeykuzmin): Skip the tests instead of using the `return` here.
// Why it cannot be done now:
// - `.skip()` called in the 'before' hook doesn't affect
// nested `describe`s.
// - `.skip()` called in the 'beforeEach' hook prevents 'afterEach'
// hook from being called.
// Not implemented on Linux.
if (process.platform === 'linux') return
if (process.platform === 'linux') {
return
}
describe('movable state', () => {
it('can be changed with movable option', () => {
@ -2043,8 +2160,12 @@ describe('BrowserWindow module', () => {
})
describe('fullscreenable state', () => {
// Only implemented on macOS.
if (process.platform !== 'darwin') return
before(function () {
// Only implemented on macOS.
if (process.platform !== 'darwin') {
this.skip()
}
})
it('can be changed with fullscreenable option', () => {
w.destroy()
@ -2062,8 +2183,12 @@ describe('BrowserWindow module', () => {
})
describe('kiosk state', () => {
// Only implemented on macOS.
if (process.platform !== 'darwin') return
before(function () {
// Only implemented on macOS.
if (process.platform !== 'darwin') {
this.skip()
}
})
it('can be changed with setKiosk method', (done) => {
w.destroy()
@ -2082,8 +2207,12 @@ describe('BrowserWindow module', () => {
})
describe('fullscreen state with resizable set', () => {
// Only implemented on macOS.
if (process.platform !== 'darwin') return
before(function () {
// Only implemented on macOS.
if (process.platform !== 'darwin') {
this.skip()
}
})
it('resizable flag should be set to true and restored', (done) => {
w.destroy()
@ -2101,8 +2230,12 @@ describe('BrowserWindow module', () => {
})
describe('fullscreen state', () => {
// Only implemented on macOS.
if (process.platform !== 'darwin') return
before(function () {
// Only implemented on macOS.
if (process.platform !== 'darwin') {
this.skip()
}
})
it('can be changed with setFullScreen method', (done) => {
w.destroy()
@ -2203,8 +2336,12 @@ describe('BrowserWindow module', () => {
})
describe('BrowserWindow.setFullScreen(false)', () => {
// only applicable to windows: https://github.com/electron/electron/issues/6036
if (process.platform !== 'win32') return
before(function () {
// only applicable to windows: https://github.com/electron/electron/issues/6036
if (process.platform !== 'win32') {
this.skip()
}
})
it('should restore a normal visible window from a fullscreen startup state', (done) => {
w.webContents.once('did-finish-load', () => {
@ -2268,7 +2405,11 @@ describe('BrowserWindow module', () => {
})
describe('win.setParentWindow(parent)', () => {
if (process.platform === 'win32') return
before(function () {
if (process.platform === 'win32') {
this.skip()
}
})
beforeEach(() => {
if (c != null) c.destroy()
@ -2301,8 +2442,12 @@ describe('BrowserWindow module', () => {
})
describe('modal option', () => {
// The isEnabled API is not reliable on macOS.
if (process.platform === 'darwin') return
before(function () {
// The isEnabled API is not reliable on macOS.
if (process.platform === 'darwin') {
this.skip()
}
})
beforeEach(() => {
if (c != null) c.destroy()
@ -2594,9 +2739,13 @@ describe('BrowserWindow module', () => {
})
describe('previewFile', () => {
it('opens the path in Quick Look on macOS', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('opens the path in Quick Look on macOS', () => {
assert.doesNotThrow(() => {
w.previewFile(__filename)
w.closeFilePreview()

View file

@ -42,9 +42,13 @@ describe('clipboard module', () => {
})
describe('clipboard.readBookmark', () => {
it('returns title and url', () => {
if (process.platform === 'linux') return
before(function () {
if (process.platform === 'linux') {
this.skip()
}
})
it('returns title and url', () => {
clipboard.writeBookmark('a title', 'https://electronjs.org')
assert.deepEqual(clipboard.readBookmark(), {
title: 'a title',
@ -86,17 +90,25 @@ describe('clipboard module', () => {
})
describe('clipboard.read/writeFindText(text)', () => {
it('reads and write text to the find pasteboard', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('reads and write text to the find pasteboard', () => {
clipboard.writeFindText('find this')
assert.equal(clipboard.readFindText(), 'find this')
})
})
describe('clipboard.writeBuffer(format, buffer)', () => {
it('writes a Buffer for the specified format', () => {
if (process.platform !== 'darwin') return
it('writes a Buffer for the specified format', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const buffer = Buffer.from('writeBuffer', 'utf8')
clipboard.writeBuffer('public.utf8-plain-text', buffer)
@ -111,9 +123,13 @@ describe('clipboard module', () => {
})
describe('clipboard.readBuffer(format)', () => {
it('returns a Buffer of the content for the specified format', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('returns a Buffer of the content for the specified format', () => {
const buffer = Buffer.from('this is binary', 'utf8')
clipboard.writeText(buffer.toString())
assert(buffer.equals(clipboard.readBuffer('public.utf8-plain-text')))

View file

@ -53,6 +53,7 @@ describe('crashReporter module', () => {
})
it('should send minidump when renderer crashes', function (done) {
// TODO(alexeykuzmin): Skip the test instead of marking it as passed.
if (process.env.APPVEYOR === 'True') return done()
if (process.env.TRAVIS === 'true') return done()
@ -72,6 +73,7 @@ describe('crashReporter module', () => {
})
})
it('should send minidump when node processes crash', function (done) {
// TODO(alexeykuzmin): Skip the test instead of marking it as passed.
if (process.env.APPVEYOR === 'True') return done()
if (process.env.TRAVIS === 'true') return done()
@ -165,6 +167,7 @@ describe('crashReporter module', () => {
})
})
it('should send minidump with updated extra parameters', function (done) {
// TODO(alexeykuzmin): Skip the test instead of marking it as passed.
if (process.env.APPVEYOR === 'True') return done()
if (process.env.TRAVIS === 'true') return done()
@ -267,26 +270,34 @@ describe('crashReporter module', () => {
it('throws an error when called from the renderer process', () => {
assert.throws(() => require('electron').crashReporter.getUploadToServer())
})
it('returns true when uploadToServer is set to true', () => {
if (process.platform === 'darwin') {
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
assert.equal(crashReporter.getUploadToServer(), true)
it('returns true when uploadToServer is set to true', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
assert.equal(crashReporter.getUploadToServer(), true)
})
it('returns false when uploadToServer is set to false', () => {
if (process.platform === 'darwin') {
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
crashReporter.setUploadToServer(false)
assert.equal(crashReporter.getUploadToServer(), false)
it('returns false when uploadToServer is set to false', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
crashReporter.setUploadToServer(false)
assert.equal(crashReporter.getUploadToServer(), false)
})
})
@ -294,27 +305,35 @@ describe('crashReporter module', () => {
it('throws an error when called from the renderer process', () => {
assert.throws(() => require('electron').crashReporter.setUploadToServer('arg'))
})
it('sets uploadToServer false when called with false', () => {
if (process.platform === 'darwin') {
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
crashReporter.setUploadToServer(false)
assert.equal(crashReporter.getUploadToServer(), false)
it('sets uploadToServer false when called with false', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: true
})
crashReporter.setUploadToServer(false)
assert.equal(crashReporter.getUploadToServer(), false)
})
it('sets uploadToServer true when called with true', () => {
if (process.platform === 'darwin') {
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: false
})
crashReporter.setUploadToServer(true)
assert.equal(crashReporter.getUploadToServer(), true)
it('sets uploadToServer true when called with true', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',
submitURL: 'http://127.0.0.1/crashes',
uploadToServer: false
})
crashReporter.setUploadToServer(true)
assert.equal(crashReporter.getUploadToServer(), true)
})
})
@ -328,9 +347,12 @@ describe('crashReporter module', () => {
const parameters = crashReporter.getParameters()
assert(typeof parameters === 'object')
})
it('adds a parameter to current parameters', () => {
// only run on MacOS
if (process.platform !== 'darwin') return
it('adds a parameter to current parameters', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',
@ -340,9 +362,12 @@ describe('crashReporter module', () => {
crashReporter.addExtraParameter('hello', 'world')
assert('hello' in crashReporter.getParameters())
})
it('removes a parameter from current parameters', () => {
// only run on MacOS
if (process.platform !== 'darwin') return
it('removes a parameter from current parameters', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
crashReporter.start({
companyName: 'Umbrella Corporation',

View file

@ -4,7 +4,11 @@ const {desktopCapturer, remote} = require('electron')
const isCI = remote.getGlobal('isCi')
describe('desktopCapturer', () => {
if (isCI && process.platform === 'win32') return
before(function () {
if (isCI && process.platform === 'win32') {
this.skip()
}
})
it('should return a non-empty array of sources', (done) => {
desktopCapturer.getSources({

View file

@ -4,7 +4,11 @@ const assert = require('assert')
const isCI = require('electron').remote.getGlobal('isCi')
describe('globalShortcut module', () => {
if (isCI && process.platform === 'win32') return
before(function () {
if (isCI && process.platform === 'win32') {
this.skip()
}
})
beforeEach(() => {
globalShortcut.unregisterAll()

View file

@ -296,8 +296,12 @@ describe('nativeImage module', () => {
expect(image.getSize()).to.deep.equal({width: 538, height: 190})
})
it('Gets an NSImage pointer on macOS', () => {
if (process.platform !== 'darwin') return
it('Gets an NSImage pointer on macOS', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const imagePath = `${path.join(__dirname, 'fixtures', 'api')}${path.sep}..${path.sep}${path.join('assets', 'logo.png')}`
const image = nativeImage.createFromPath(imagePath)
@ -310,8 +314,12 @@ describe('nativeImage module', () => {
expect(allBytesAreNotNull)
})
it('loads images from .ico files on Windows', () => {
if (process.platform !== 'win32') return
it('loads images from .ico files on Windows', function () {
if (process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const imagePath = path.join(__dirname, 'fixtures', 'assets', 'icon.ico')
const image = nativeImage.createFromPath(imagePath)
@ -326,22 +334,34 @@ describe('nativeImage module', () => {
expect(image.isEmpty())
})
it('returns empty on non-darwin platforms', () => {
if (process.platform === 'darwin') return
it('returns empty on non-darwin platforms', function () {
if (process.platform === 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const image = nativeImage.createFromNamedImage('NSActionTemplate')
expect(image.isEmpty())
})
it('returns a valid image on darwin', () => {
if (process.platform !== 'darwin') return
it('returns a valid image on darwin', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const image = nativeImage.createFromNamedImage('NSActionTemplate')
expect(image.isEmpty()).to.be.false
})
it('returns allows an HSL shift for a valid image on darwin', () => {
if (process.platform !== 'darwin') return
it('returns allows an HSL shift for a valid image on darwin', function () {
if (process.platform !== 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const image = nativeImage.createFromNamedImage('NSActionTemplate', [0.5, 0.2, 0.8])
expect(image.isEmpty()).to.be.false

View file

@ -10,9 +10,13 @@ describe('process module', () => {
})
describe('process.getIOCounters()', () => {
it('returns an io counters object', () => {
if (process.platform === 'darwin') return
before(function () {
if (process.platform === 'darwin') {
this.skip()
}
})
it('returns an io counters object', () => {
const ioCounters = process.getIOCounters()
assert.equal(typeof ioCounters.readOperationCount, 'number')
assert.equal(typeof ioCounters.writeOperationCount, 'number')

View file

@ -682,8 +682,13 @@ describe('protocol module', () => {
})
})
it('sends error when callback is called with nothing', (done) => {
if (process.env.TRAVIS === 'true') return done()
it('sends error when callback is called with nothing', function (done) {
if (process.env.TRAVIS === 'true') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
protocol.interceptBufferProtocol('http', emptyHandler, (error) => {
if (error) return done(error)
$.ajax({

View file

@ -20,7 +20,11 @@ describe('screen module', () => {
})
describe('screen.getMenuBarHeight()', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('returns an integer', () => {
const screenHeight = screen.getMenuBarHeight()

View file

@ -357,8 +357,12 @@ describe('session module', () => {
})
})
it('can generate a default filename', (done) => {
if (process.env.APPVEYOR === 'True') return done()
it('can generate a default filename', function (done) {
if (process.env.APPVEYOR === 'True') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
downloadServer.listen(0, '127.0.0.1', () => {
const port = downloadServer.address().port

View file

@ -5,8 +5,6 @@ const os = require('os')
const {shell} = require('electron')
describe('shell module', () => {
if (process.platform !== 'win32') return
const fixtures = path.resolve(__dirname, 'fixtures')
const shortcutOptions = {
target: 'C:\\target',
@ -18,6 +16,13 @@ describe('shell module', () => {
iconIndex: 1
}
// (alexeykuzmin): `.skip()` in `before` doesn't work for nested `describe`s.
beforeEach(function () {
if (process.platform !== 'win32') {
this.skip()
}
})
describe('shell.readShortcutLink(shortcutPath)', () => {
it('throws when failed', () => {
assert.throws(() => {

View file

@ -4,7 +4,11 @@ const {systemPreferences} = remote
describe('systemPreferences module', () => {
describe('systemPreferences.getAccentColor', () => {
if (process.platform !== 'win32') return
before(function () {
if (process.platform !== 'win32') {
this.skip()
}
})
it('should return a non-empty string', () => {
let accentColor = systemPreferences.getAccentColor()
@ -14,7 +18,11 @@ describe('systemPreferences module', () => {
})
describe('systemPreferences.getColor(id)', () => {
if (process.platform !== 'win32') return
before(function () {
if (process.platform !== 'win32') {
this.skip()
}
})
it('throws an error when the id is invalid', () => {
assert.throws(() => {
@ -28,9 +36,11 @@ describe('systemPreferences module', () => {
})
describe('systemPreferences.getUserDefault(key, type)', () => {
if (process.platform !== 'darwin') {
return
}
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('returns values for known user defaults', () => {
const locale = systemPreferences.getUserDefault('AppleLocale', 'string')
@ -56,8 +66,6 @@ describe('systemPreferences module', () => {
})
describe('systemPreferences.setUserDefault(key, type, value)', () => {
if (process.platform !== 'darwin') return
const KEY = 'SystemPreferencesTest'
const TEST_CASES = [
['string', 'abc'],
@ -70,6 +78,12 @@ describe('systemPreferences module', () => {
['dictionary', {'a': 1, 'b': 2}]
]
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('sets values', () => {
for (const [type, value] of TEST_CASES) {
systemPreferences.setUserDefault(KEY, type, value)
@ -94,7 +108,11 @@ describe('systemPreferences module', () => {
})
describe('systemPreferences.setUserDefault(key, type, value)', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('removes keys', () => {
const KEY = 'SystemPreferencesTest'

View file

@ -658,13 +658,16 @@ describe('asar package', function () {
describe('child_process.execFile', function () {
var echo, execFile, execFileSync
if (process.platform !== 'darwin') {
return
}
execFile = ChildProcess.execFile
execFileSync = ChildProcess.execFileSync
echo = path.join(fixtures, 'asar', 'echo.asar', 'echo')
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('executes binaries', function (done) {
execFile(echo, ['test'], function (error, stdout) {
assert.equal(error, null)

View file

@ -26,8 +26,13 @@ describe('chromium feature', () => {
afterEach(() => closeWindow(w).then(() => { w = null }))
describe('heap snapshot', () => {
it('does not crash', () => {
if (process.env.TRAVIS === 'true') return
it('does not crash', function () {
if (process.env.TRAVIS === 'true') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
process.atomBinding('v8_util').takeHeapSnapshot()
})
})
@ -165,7 +170,11 @@ describe('chromium feature', () => {
})
describe('window.open', () => {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') return
before(function () {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') {
this.skip()
}
})
it('returns a BrowserWindowProxy object', () => {
const b = window.open('about:blank', '', 'show=no')
@ -666,10 +675,18 @@ describe('chromium feature', () => {
})
describe('webgl', () => {
if (isCI && process.platform === 'win32') return
before(function () {
if (isCI && process.platform === 'win32') {
this.skip()
}
})
it('can be get as context in canvas', () => {
if (process.platform === 'linux') return
if (process.platform === 'linux') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
const webgl = document.createElement('canvas').getContext('webgl')
assert.notEqual(webgl, null)

View file

@ -29,8 +29,11 @@ describe('modules support', () => {
})
describe('ffi', () => {
if (!nativeModulesEnabled) return
if (process.platform === 'win32') return
before(function () {
if (!nativeModulesEnabled || process.platform === 'win32') {
this.skip()
}
})
it('does not crash', () => {
const ffi = require('ffi')

View file

@ -153,7 +153,11 @@ describe('node feature', () => {
describe('contexts', () => {
describe('setTimeout in fs callback', () => {
if (process.env.TRAVIS === 'true') return
before(function () {
if (process.env.TRAVIS === 'true') {
this.skip()
}
})
it('does not crash', (done) => {
fs.readFile(__filename, () => {
@ -245,7 +249,11 @@ describe('node feature', () => {
})
describe('net.connect', () => {
if (process.platform !== 'darwin') return
before(function () {
if (process.platform !== 'darwin') {
this.skip()
}
})
it('emit error when connect to a socket path without listeners', (done) => {
const socketPath = path.join(os.tmpdir(), 'atom-shell-test.sock')
@ -300,14 +308,24 @@ describe('node feature', () => {
})
})
it('should have isTTY defined on Mac and Linux', () => {
if (isCI) return
if (process.platform === 'win32') {
assert.equal(process.stdout.isTTY, undefined)
} else {
assert.equal(typeof process.stdout.isTTY, 'boolean')
it('should have isTTY defined on Mac and Linux', function () {
if (isCI || process.platform === 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
assert.equal(typeof process.stdout.isTTY, 'boolean')
})
it('should have isTTY undefined on Windows', function () {
if (isCI || process.platform !== 'win32') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return
}
assert.equal(process.stdout.isTTY, undefined)
})
})

View file

@ -137,9 +137,13 @@ describe('<webview> tag', function () {
document.body.appendChild(webview)
})
it('loads node symbols after POST navigation when set', (done) => {
it('loads node symbols after POST navigation when set', function (done) {
// FIXME Figure out why this is timing out on AppVeyor
if (process.env.APPVEYOR === 'True') return done()
if (process.env.APPVEYOR === 'True') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
webview.addEventListener('console-message', (e) => {
assert.equal(e.message, 'function object object')
@ -409,7 +413,11 @@ describe('<webview> tag', function () {
})
describe('allowpopups attribute', () => {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') return
before(function () {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') {
this.skip()
}
})
it('can not open new window when not set', (done) => {
const listener = (e) => {
@ -495,7 +503,11 @@ describe('<webview> tag', function () {
})
describe('new-window event', () => {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') return
before(function () {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') {
this.skip()
}
})
it('emits when window.open is called', (done) => {
webview.addEventListener('new-window', (e) => {
@ -824,8 +836,12 @@ describe('<webview> tag', function () {
})
describe('executeJavaScript', () => {
it('should support user gesture', (done) => {
if (process.env.TRAVIS !== 'true' || process.platform === 'darwin') return done()
it('should support user gesture', function (done) {
if (process.env.TRAVIS !== 'true' || process.platform === 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
const listener = () => {
webview.removeEventListener('enter-html-full-screen', listener)
@ -842,8 +858,12 @@ describe('<webview> tag', function () {
document.body.appendChild(webview)
})
it('can return the result of the executed script', (done) => {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') return done()
it('can return the result of the executed script', function (done) {
if (process.env.TRAVIS === 'true' && process.platform === 'darwin') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
const listener = () => {
const jsScript = "'4'+2"
@ -1550,8 +1570,12 @@ describe('<webview> tag', function () {
})
})
it('can be manually resized with setSize even when attribute is present', done => {
if (process.env.TRAVIS === 'true') return done()
it('can be manually resized with setSize even when attribute is present', function (done) {
if (process.env.TRAVIS === 'true') {
// FIXME(alexeykuzmin): Skip the test.
// this.skip()
return done()
}
w = new BrowserWindow({show: false, width: 200, height: 200})
w.loadURL(`file://${fixtures}/pages/webview-no-guest-resize.html`)