Skip to content
This repository has been archived by the owner on Oct 8, 2021. It is now read-only.

Commit

Permalink
Add tests for inversion and translucence.
Browse files Browse the repository at this point in the history
  • Loading branch information
atdrago committed Jul 6, 2016
1 parent f3d7f3c commit e97df9d
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/negative-test.js
Expand Up @@ -75,6 +75,8 @@ module.exports = {
ipcMain.on('test-capture', () => simulateMenuClick(['View', 'Capture']));
ipcMain.on('test-clear', () => simulateMenuClick(['View', 'Clear']));
ipcMain.on('test-dark-mode', () => simulateMenuClick(['View', 'Dark Mode']));
ipcMain.on('test-translucence', () => simulateMenuClick(['View', 'Translucence']));
ipcMain.on('test-inversion', () => simulateMenuClick(['View', 'Inversion']));
ipcMain.on('test-actual-size', () => simulateMenuClick(['View', 'Actual Size']));
ipcMain.on('test-zoom-in', () => simulateMenuClick(['View', 'Zoom In']));
ipcMain.on('test-zoom-out', () => simulateMenuClick(['View', 'Zoom Out']));
Expand Down
70 changes: 70 additions & 0 deletions test/tests/menu/view/inversion.js
@@ -0,0 +1,70 @@
'use strict';

const { Application } = require('spectron');
const { assert } = require('chai');

const config = require('../../../config.json');
const {
APP_PATH,
WAIT_UNTIL_TIMEOUT
} = config;

describe('View > Inversion', function () {
const app = new Application({
path: APP_PATH,
env: {
ELECTRON_ENABLE_LOGGING: true,
ELECTRON_ENABLE_STACK_DUMPING: true,
NEGATIVE_IGNORE_SETTINGS: true,
NEGATIVE_SKIP_RESET_DIALOG: true,
NEGATIVE_VERBOSE: true,
NODE_ENV: 'development'
}
});

this.timeout(60000);

beforeEach(() => {
return app.start();
});

afterEach(() => {
if (app && app.isRunning()) {
return app.stop();
}
});

it('Should toggle inversion', () => {
return app.client.waitUntilWindowLoaded()
.then(() => {
return app.client.selectorExecute('//body', (elements) => {
return elements[0].classList.contains('inversion-off');
});
})
.then((hasTranslucenceOffClass) => assert.isFalse(hasTranslucenceOffClass, 'The body element should not have the .inversion-off class when on startup.'))
.then(() => app.electron.ipcRenderer.send('test-inversion'))
.then(() => {
return app.client.waitUntil(() => {
return app.client.selectorExecute('//body', (elements) => {
return elements[0].classList.contains('inversion-off');
});
}, WAIT_UNTIL_TIMEOUT);
})
.then((hasTranslucenceOffClass) => assert.isTrue(hasTranslucenceOffClass, 'The body element should have the .inversion-off class when Inversion is off.'))
.catch((err) => {
return app.client.getMainProcessLogs()
.then((logs) => {
console.log('*** MAIN PROCESS LOGS ***');
logs.forEach((log) => console.log(log));

return app.client.getRenderProcessLogs();
})
.then((logs) => {
console.log('*** RENDER PROCESS LOGS ***');
logs.forEach((log) => console.log(log));

throw err;
});
});
});
});
70 changes: 70 additions & 0 deletions test/tests/menu/view/translucence.js
@@ -0,0 +1,70 @@
'use strict';

const { Application } = require('spectron');
const { assert } = require('chai');

const config = require('../../../config.json');
const {
APP_PATH,
WAIT_UNTIL_TIMEOUT
} = config;

describe('View > Translucence', function () {
const app = new Application({
path: APP_PATH,
env: {
ELECTRON_ENABLE_LOGGING: true,
ELECTRON_ENABLE_STACK_DUMPING: true,
NEGATIVE_IGNORE_SETTINGS: true,
NEGATIVE_SKIP_RESET_DIALOG: true,
NEGATIVE_VERBOSE: true,
NODE_ENV: 'development'
}
});

this.timeout(60000);

beforeEach(() => {
return app.start();
});

afterEach(() => {
if (app && app.isRunning()) {
return app.stop();
}
});

it('Should toggle translucence', () => {
return app.client.waitUntilWindowLoaded()
.then(() => {
return app.client.selectorExecute('//body', (elements) => {
return elements[0].classList.contains('translucence-off');
});
})
.then((hasTranslucenceOffClass) => assert.isFalse(hasTranslucenceOffClass, 'The body element should not have the .translucence-off class when on startup.'))
.then(() => app.electron.ipcRenderer.send('test-translucence'))
.then(() => {
return app.client.waitUntil(() => {
return app.client.selectorExecute('//body', (elements) => {
return elements[0].classList.contains('translucence-off');
});
}, WAIT_UNTIL_TIMEOUT);
})
.then((hasTranslucenceOffClass) => assert.isTrue(hasTranslucenceOffClass, 'The body element should have the .translucence-off class when Translucence is off.'))
.catch((err) => {
return app.client.getMainProcessLogs()
.then((logs) => {
console.log('*** MAIN PROCESS LOGS ***');
logs.forEach((log) => console.log(log));

return app.client.getRenderProcessLogs();
})
.then((logs) => {
console.log('*** RENDER PROCESS LOGS ***');
logs.forEach((log) => console.log(log));

throw err;
});
});
});
});

0 comments on commit e97df9d

Please sign in to comment.