- Refactoring: Make dialog OK button retrievable locale-independently (for testing)
- Testing: Avoid testing being locale-dependent; approve storage (and set locale to English) before each test
This commit is contained in:
2
dist/index-es.js
vendored
2
dist/index-es.js
vendored
@@ -9640,7 +9640,7 @@ function jQueryPluginDBox($) {
|
|||||||
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
||||||
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
var ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
var ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
// eslint-disable-line promise/avoid-new
|
// eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
2
dist/index-es.min.js
vendored
2
dist/index-es.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/index-es.min.js.map
vendored
2
dist/index-es.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/index-umd.js
vendored
2
dist/index-umd.js
vendored
@@ -9646,7 +9646,7 @@
|
|||||||
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
||||||
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
var ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
var ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
// eslint-disable-line promise/avoid-new
|
// eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
2
dist/index-umd.min.js
vendored
2
dist/index-umd.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/index-umd.min.js.map
vendored
2
dist/index-umd.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/svgcanvas-iife.js
vendored
2
dist/svgcanvas-iife.js
vendored
@@ -2673,7 +2673,7 @@ var SvgCanvas = (function () {
|
|||||||
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
||||||
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
var ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
var ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
// eslint-disable-line promise/avoid-new
|
// eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
2
dist/svgcanvas-iife.min.js
vendored
2
dist/svgcanvas-iife.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/svgcanvas-iife.min.js.map
vendored
2
dist/svgcanvas-iife.min.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -62,7 +62,7 @@ export default function jQueryPluginDBox ($, strings = {ok: 'Ok', cancel: 'Cance
|
|||||||
.toggleClass('prompt', (type === 'prompt'));
|
.toggleClass('prompt', (type === 'prompt'));
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
|
|
||||||
const ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
const ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
|
|
||||||
return new Promise((resolve, reject) => { // eslint-disable-line promise/avoid-new
|
return new Promise((resolve, reject) => { // eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
@@ -9643,7 +9643,7 @@
|
|||||||
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
||||||
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
var ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
var ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
// eslint-disable-line promise/avoid-new
|
// eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
@@ -9643,7 +9643,7 @@
|
|||||||
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
function dbox(type, msg, defaultVal, opts, changeListener, checkbox) {
|
||||||
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
dialogContent.html('<p>' + msg.replace(/\n/g, '</p><p>') + '</p>').toggleClass('prompt', type === 'prompt');
|
||||||
btnHolder.empty();
|
btnHolder.empty();
|
||||||
var ok = $('<input type="button" value="' + strings.ok + '">').appendTo(btnHolder);
|
var ok = $('<input type="button" data-ok="" value="' + strings.ok + '">').appendTo(btnHolder);
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
// eslint-disable-line promise/avoid-new
|
// eslint-disable-line promise/avoid-new
|
||||||
if (type !== 'alert') {
|
if (type !== 'alert') {
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
export const approveStorage = (t) => {
|
export const approveStorage = (t) => {
|
||||||
return t
|
return t
|
||||||
.click('#dialog_buttons > input[type=button][value=OK]');
|
.click('#dialog_buttons > input[type=button][data-ok]');
|
||||||
};
|
};
|
||||||
|
|
||||||
export const approveStorageAndOpenMainMenu = (t) => {
|
export const openMainMenu = (t) => {
|
||||||
return approveStorage(t).click('#main_icon');
|
return t.click('#main_icon');
|
||||||
};
|
};
|
||||||
|
|
||||||
export const approveStorageAndOpenEditorPreferences = (t) => {
|
export const openEditorPreferences = (t) => {
|
||||||
return approveStorageAndOpenMainMenu(t).click('#tool_prefs_option');
|
return openMainMenu(t).click('#tool_prefs_option');
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -3,35 +3,32 @@
|
|||||||
// https://github.com/helen-dikareva/axe-testcafe
|
// https://github.com/helen-dikareva/axe-testcafe
|
||||||
import {Selector} from 'testcafe';
|
import {Selector} from 'testcafe';
|
||||||
import {
|
import {
|
||||||
approveStorage, approveStorageAndOpenMainMenu,
|
approveStorage, openMainMenu,
|
||||||
approveStorageAndOpenEditorPreferences
|
openEditorPreferences
|
||||||
} from '../ui-test-helper.js';
|
} from '../ui-test-helper.js';
|
||||||
|
|
||||||
fixture`TestCafe UI tests`
|
fixture`TestCafe UI tests`
|
||||||
.page`http://localhost:8000/editor/svg-editor.html`;
|
.page`http://localhost:8000/editor/svg-editor.html`
|
||||||
|
.beforeEach((t) => {
|
||||||
// Bogus test to allow us to check starting browser storage state
|
// Ensure we test against English regardless of the original locale
|
||||||
test('Editor - No parameters: save prior locale and set English for tests', async (t) => {
|
return openEditorPreferences(approveStorage(t))
|
||||||
await approveStorageAndOpenEditorPreferences(t);
|
.click('#lang_select').click('#lang_en').click('#tool_prefs_save');
|
||||||
t.fixtureCtx.originalLanguage = await Selector('#lang_select').value;
|
});
|
||||||
// Ensure we test against English
|
|
||||||
return t.click('#lang_select').click('#lang_en').click('#tool_prefs_save');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('Editor - No parameters: Export button', async (t) => {
|
test('Editor - No parameters: Export button', async (t) => {
|
||||||
await approveStorageAndOpenMainMenu(t)
|
await openMainMenu(t)
|
||||||
.expect(Selector('#tool_export')).ok('Has open button');
|
.expect(Selector('#tool_export')).ok('Has open button');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Editor - No parameters: Export button clicking', async (t) => {
|
test('Editor - No parameters: Export button clicking', async (t) => {
|
||||||
await approveStorageAndOpenMainMenu(t)
|
await openMainMenu(t)
|
||||||
.click('#tool_export')
|
.click('#tool_export')
|
||||||
.expect(Selector('#dialog_content select')).ok('Export dialog opens');
|
.expect(Selector('#dialog_content select')).ok('Export dialog opens');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('Editor - No parameters: Drag control point of arc path', async (t) => {
|
test('Editor - No parameters: Drag control point of arc path', async (t) => {
|
||||||
const randomOffset = () => Math.round(10 + Math.random() * 40);
|
const randomOffset = () => Math.round(10 + Math.random() * 40);
|
||||||
await approveStorage(t)
|
await t
|
||||||
.click('#tool_source')
|
.click('#tool_source')
|
||||||
.selectTextAreaContent('#svg_source_textarea')
|
.selectTextAreaContent('#svg_source_textarea')
|
||||||
.typeText('#svg_source_textarea', `<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
|
.typeText('#svg_source_textarea', `<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
|
||||||
@@ -47,11 +44,3 @@ test('Editor - No parameters: Drag control point of arc path', async (t) => {
|
|||||||
.drag('#pathpointgrip_1', randomOffset(), randomOffset(), {offsetX: 2, offsetY: 2})
|
.drag('#pathpointgrip_1', randomOffset(), randomOffset(), {offsetX: 2, offsetY: 2})
|
||||||
.expect(Selector('#svg_1').getAttribute('d')).notContains('NaN');
|
.expect(Selector('#svg_1').getAttribute('d')).notContains('NaN');
|
||||||
});
|
});
|
||||||
|
|
||||||
// Bogus test to allow us to reset browser storage state to starting value
|
|
||||||
test('Editor - No parameters: restore prior locale', async (t) => {
|
|
||||||
await approveStorageAndOpenEditorPreferences(t)
|
|
||||||
.click('#lang_select')
|
|
||||||
.click('#lang_' + t.fixtureCtx.originalLanguage)
|
|
||||||
.click('#tool_prefs_save');
|
|
||||||
});
|
|
||||||
|
|||||||
Reference in New Issue
Block a user