/* Get electron and fs functions */
/* ES5 fsSource */
// const fsSource = require('fs');
/* ES5 fsSource */
/* ES6 fsSource */
import fsSource from 'fs';
/* ES6 fsSource */
// const electronSource = require('electron')
// const { BrowserWindow, CurrentWindow, MessageWindow } = require('electron');
// const { BrowserWindow, CurrentWindow } = require('electron')
/* Original MessageWindow */
// const {MessageWindow} = require('electron').remote;
// const MessageWindow = electronSource.remote
// const { MessageWindow } = electronSource.remote
/* Original MessageWindow */
// const {remote} = require('electron');
// const {MessageWindow} = remote;
/* ES5 BrowserWindow, CurrentWindow, MessageWindow */
// const { BrowserWindow, CurrentWindow, MessageWindow } = require('electron').remote;
/* ES5 BrowserWindow, CurrentWindow, MessageWindow */
/* ES6 BrowserWindow, CurrentWindow, MessageWindow */
import {BrowserWindow, CurrentWindow, MessageWindow} from ('electron').remote;
/* ES6 BrowserWindow, CurrentWindow, MessageWindow */
// const { dialog } = MessageWindow.dialog
// BrowserWindow.showSaveDialog
// CurrentWindow.showSaveDialog
// MessageWindow.showSaveDialog
// MessageWindow.showSaveDialog
/* Get electron and fs functions */
/* Get a Message Window from the Remote Module */
/* Original eleDialog */
// const { eleDialog } = electronSource.remote.dialog
/* Original eleDialog */
// const { eleDialog } = remote.dialog
/* ES5 dialog, eleDialog */
// const { dialog, eleDialog } = require("electron").remote;
/* ES5 dialog, eleDialog */
/* ES6 dialog, eleDialog */
import {dialog, eleDialog} from ('electron').remote;
/* ES6 dialog, eleDialog */
/* ES5 fs */
// const fs = require('fs');
/* ES5 fs */
/* ES6 fs */
import fs from 'fs';
/* ES6 fs */
// var FileSavingPath = eleDialog.showSaveDialog({});
// var FileOpenPath = eleDialog.showOpenDialog({});
// eleDialog.properties
// const { CurrentWindow, ChildWindow } = CurrentWindow.showSaveDialog
// const { ChildWindow } = CurrentWindow.showSaveDialog
// const { ChildWindow } = eleDialog.showSaveDialog
// const { ChildWindow } = eleDialog.showSaveDialo
// BrowserWindow.getCurrentWindow()
/* Get a Message Window from the Remote Module */
// from the document module of node
// getElementById: Returns a reference to the first object with the specified value of the ID or NAME attribute.
// Element.addEventListener
document.getElementById("FirstClickArea").addEventListener
// ("FirstClick", () =>
// debugger;
("click", () =>
{
// const LocalMessage = "*** Beginning of the Local Message ***";
const FirstClickAreaMsg = "[FirstClickArea Clicked]";
console.log(FirstClickAreaMsg);
// console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }))
console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }))
// MessageWindow.showSaveDialog.LocalMessage
// fsSource.writeFileSync()
// fsSource.writeSync()
// fsSource.writevSync()
// fsSource.WriteStream
// MessageWindow.showSaveDialog(
// eleDialog.showSaveDialog(
// CurrentWindow.CurrentWindow
// CurrentWindow.MessageWindow.showSaveDialog(
/* electron showMessageBox */
const options = {
type: 'question',
buttons: ['Cancel', 'Yes, please', 'No, thanks'],
defaultId: 2,
title: 'Question',
message: 'Do you want to do this?',
detail: 'It does not really matter',
checkboxLabel: 'Remember my answer',
checkboxChecked: true,
};
MessageWindow.showMessageBox(null);
/* electron showMessageBox */
/* electron showSaveDialog */
MessageWindow.showSaveDialog(
function (filename) {
fsSource.writeFileSync(
filename + ".txt", data, "utf-8", () => {
console.log("Saving the File");
}
);
}
);
/* electron showSaveDialog */
}
);
// const {CurrentWindow} = electronSource.getCurrentWindow()
// electronSource.ClientRequest
// document.getAnimations()
// DocumentType.properties.remote
document.getElementById("TurnOffApplication").addEventListener
("click", () =>
{
const TurnOffApplicationMsg = "[TurnOffApplicationMsg Clicked]";
console.log(TurnOffApplicationMsg);
// CurrentWindow.Close()
CurrentWindow.Closing()
}
);
const assert = require('assert')
const {dialog} = require('electron').remote
describe('dialog module', () => {
describe('showOpenDialog', () => {
it('throws errors when the options are invalid', () => {
assert.throws(() => {
dialog.showOpenDialog({properties: false})
}, /Properties must be an array/)
assert.throws(() => {
dialog.showOpenDialog({title: 300})
}, /Title must be a string/)
assert.throws(() => {
dialog.showOpenDialog({buttonLabel: []})
}, /Button label must be a string/)
assert.throws(() => {
dialog.showOpenDialog({defaultPath: {}})
}, /Default path must be a string/)
assert.throws(() => {
dialog.showOpenDialog({message: {}})
}, /Message must be a string/)
})
})
describe('showSaveDialog', () => {
it('throws errors when the options are invalid', () => {
assert.throws(() => {
dialog.showSaveDialog({title: 300})
}, /Title must be a string/)
assert.throws(() => {
dialog.showSaveDialog({buttonLabel: []})
}, /Button label must be a string/)
assert.throws(() => {
dialog.showSaveDialog({defaultPath: {}})
}, /Default path must be a string/)
assert.throws(() => {
dialog.showSaveDialog({message: {}})
}, /Message must be a string/)
assert.throws(() => {
dialog.showSaveDialog({nameFieldLabel: {}})
}, /Name field label must be a string/)
})
})
describe('showMessageBox', () => {
it('throws errors when the options are invalid', () => {
assert.throws(() => {
dialog.showMessageBox(undefined, {type: 'not-a-valid-type'})
}, /Invalid message box type/)
assert.throws(() => {
dialog.showMessageBox(null, {buttons: false})
}, /Buttons must be an array/)
assert.throws(() => {
dialog.showMessageBox({title: 300})
}, /Title must be a string/)
assert.throws(() => {
dialog.showMessageBox({message: []})
}, /Message must be a string/)
assert.throws(() => {
dialog.showMessageBox({detail: 3.14})
}, /Detail must be a string/)
assert.throws(() => {
dialog.showMessageBox({checkboxLabel: false})
}, /checkboxLabel must be a string/)
})
})
describe('showErrorBox', () => {
it('throws errors when the options are invalid', () => {
assert.throws(() => {
dialog.showErrorBox()
}, /Insufficient number of arguments/)
assert.throws(() => {
dialog.showErrorBox(3, 'four')
}, /Error processing argument at index 0/)
assert.throws(() => {
dialog.showErrorBox('three', 4)
}, /Error processing argument at index 1/)
})
})
describe('showCertificateTrustDialog', () => {
it('throws errors when the options are invalid', () => {
assert.throws(() => {
dialog.showCertificateTrustDialog()
}, /options must be an object/)
assert.throws(() => {
dialog.showCertificateTrustDialog({})
}, /certificate must be an object/)
assert.throws(() => {
dialog.showCertificateTrustDialog({certificate: {}, message: false})
}, /message must be a string/)
})
})
})
'use strict';
const messageDialog = require('../../../../../src/main-process/dialogs/message-dialog');
describe('Testing message dialog', () => {
beforeEach(() => {
jest.clearAllMocks();
});
const fakeBrowserWindow = { msg: 'fakeBrowserWindow' };
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => ({ filePaths: ['/file/path'] })),
showSaveDialog: jest.fn(async () => ({ filePath: '/file/path' })),
showMessageBox: jest.fn(async () => {})
};
describe('Testing show open dialog', () => {
describe('When dialog is canceled', () => {
test('Should return empty object', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => ({ canceled: true })),
showSaveDialog: jest.fn(async () => {}),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({});
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
describe('When dialog file path is not present', () => {
test('Should return empty object', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => ({ filePaths: [] })),
showSaveDialog: jest.fn(async () => {}),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({});
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
describe('When dialog returned success', () => {
test('Should return filePath', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => ({ filePaths: ['/file/path'] })),
showSaveDialog: jest.fn(async () => {}),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
});
describe('Testing show save dialog', () => {
describe('When dialog is canceled', () => {
test('Should return empty object', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => {}),
showSaveDialog: jest.fn(async () => ({ canceled: true })),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({});
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
describe('When dialog file path is not present', () => {
test('Should return empty object', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => {}),
showSaveDialog: jest.fn(async () => ({})),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({});
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
describe('When dialog returned success', () => {
test('Should return filePath', async () => {
const fakeElectronDialog = {
showOpenDialog: jest.fn(async () => {}),
showSaveDialog: jest.fn(async () => ({ filePath: '/file/path' })),
showMessageBox: jest.fn(async () => {})
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialog({ someOption: 'someValue' });
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ someOption: 'someValue' }
);
});
});
});
describe('Testing show error dialog', () => {
describe('When there is no error message', () => {
test('Should call with generic error message', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
await msgDialog.showErrorDialog({});
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ message: 'Some error occurred!', type: 'error' }
);
});
});
describe('When there is specific error message', () => {
test('Should call with specific error message', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
await msgDialog.showErrorDialog({ message: 'This is specific error message.' });
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ message: 'This is specific error message.', type: 'error' }
);
});
});
});
describe('Testing showOpenDialogToSelectJsonFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialogToSelectJsonFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['json'], name: 'JSON' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showSaveDialogToSaveJsonFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialogToSaveJsonFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ filters: [{ extensions: ['json'], name: 'JSON' }], properties: ['openDirectory'] }
);
});
});
describe('Testing showOpenDialogToSelectXmlFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialogToSelectXmlFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['xml'], name: 'XML' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showSaveDialogToSaveXmlFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialogToSaveXmlFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ filters: [{ extensions: ['xml'], name: 'XML' }], properties: ['openDirectory'] }
);
});
});
describe('Testing showOpenDialogToSelectFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialogToSelectFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showSaveDialogToSaveFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialogToSaveFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{ properties: ['openDirectory'] }
);
});
});
describe('Testing showOpenDialogToSelectMarkdownFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialogToSelectMarkdownFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['md', 'markdown'], name: 'Markdown' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showSaveDialogToSaveMarkdownFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialogToSaveMarkdownFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['md', 'markdown'], name: 'Markdown' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showOpenDialogToSelectCanvasFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showOpenDialogToSelectCanvasFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showOpenDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['png'], name: 'Image' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showSaveDialogToSaveCanvasFile', () => {
test('Should be able to open dialog', async () => {
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showSaveDialogToSaveCanvasFile();
expect(result).toStrictEqual({ filePath: '/file/path' });
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showSaveDialog).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
filters: [{ extensions: ['png'], name: 'Image' }],
properties: ['openFile', 'openDirectory']
}
);
});
});
describe('Testing showMessageBoxUnsavedChanges', () => {
test('Should be able to open dialog', async () => {
const fakeElectronDialog = {
showMessageBox: jest.fn(async () => ({ response: 0, checkboxChecked: false }))
};
const msgDialog = messageDialog(fakeBrowserWindow, fakeElectronDialog);
const result = await msgDialog.showMessageBoxUnsavedChanges({
type: 'question',
buttons: ['Save', 'Ignore changes', 'Cancel'],
message: 'Do you want to save the changes?'
});
expect(result).toStrictEqual({ response: 0, checkboxChecked: false });
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledTimes(1);
expect(fakeElectronDialog.showMessageBox).toHaveBeenCalledWith(
{ msg: 'fakeBrowserWindow' },
{
type: 'question',
buttons: ['Save', 'Ignore changes', 'Cancel'],
message: 'Do you want to save the changes?'
}
);
});
});
});