From 0fd923c92bedc975dc97f3037ce21f2c6e121436 Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Sat, 27 Jun 2020 00:02:12 +0530 Subject: [PATCH 1/6] bold test jest --- test/ui-testing/bold.test.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 test/ui-testing/bold.test.js diff --git a/test/ui-testing/bold.test.js b/test/ui-testing/bold.test.js new file mode 100644 index 00000000..b8fe80ef --- /dev/null +++ b/test/ui-testing/bold.test.js @@ -0,0 +1,28 @@ +const timeout = process.env.SLOWMO ? 60000 : 10000; +const fs = require('fs'); +beforeAll(async () => { + path = fs.realpathSync('file://../examples/index.html'); + await page.goto('file://' + path, {waitUntil: 'domcontentloaded'}); +}); + +describe('Bold Text', () => { + test('Adds strong text in rich text mode', async () => { + await page.waitForSelector('.ple-module-body'); + await page.click('.woofmark-command-bold'); + const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('strong text')); + + expect(stringIsIncluded).toBe(true); + + }, timeout); + + test('Adds strong text in markdown mode', async () => { + await page.click('.woofmark-mode-markdown'); + await page.waitForSelector('.ple-module-body'); + await page.focus('.ple-module-body'); + await page.click('.woofmark-command-bold'); + const stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); + + expect(stringIsIncluded).toBe(true); + + }, timeout); +}); From 76c3507ef5d84a68de34eba11f89f490ddb61280 Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Sat, 27 Jun 2020 00:13:19 +0530 Subject: [PATCH 2/6] italic test --- test/ui-testing/italic.test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 test/ui-testing/italic.test.js diff --git a/test/ui-testing/italic.test.js b/test/ui-testing/italic.test.js new file mode 100644 index 00000000..61488b1d --- /dev/null +++ b/test/ui-testing/italic.test.js @@ -0,0 +1,29 @@ +const timeout = process.env.SLOWMO ? 60000 : 10000; +const fs = require('fs'); +beforeAll(async () => { + path = fs.realpathSync('file://../examples/index.html'); + await page.goto('file://' + path, {waitUntil: 'domcontentloaded'}); +}); + +describe('Italic Text', () => { + test('Adds emphasized text in rich text mode', async () => { + await page.waitForSelector('.ple-module-body'); + await page.click('.woofmark-command-italic'); + const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('emphasized text')); + + expect(stringIsIncluded).toBe(true); + + }, timeout); + + test('Adds emphasized text in markdown mode', async () => { + await page.click('.woofmark-mode-markdown'); + await page.waitForSelector('.ple-module-body'); + await page.focus('.ple-module-body'); + await page.click('.woofmark-command-italic'); + const stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('_emphasized text_')); + + expect(stringIsIncluded).toBe(true); + + }, timeout); + +}); From e1c9c49d09c481c9ffe46b255c0eaf4e92ae4515 Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Fri, 3 Jul 2020 17:02:09 +0530 Subject: [PATCH 3/6] fixed 'PL.Util.enableRichTextModeKeyboardShortcut' error --- dist/PublicLab.Editor.js | 2 +- src/PublicLab.Editor.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/PublicLab.Editor.js b/dist/PublicLab.Editor.js index 8e1307f3..c0422640 100644 --- a/dist/PublicLab.Editor.js +++ b/dist/PublicLab.Editor.js @@ -20479,7 +20479,7 @@ PL.MapModule = require('./modules/PublicLab.MapModule.js'); $(document).ready(function() { PL.Util.preventModalScrollToTop(); - PL.Util.enableRichTextModeKeyboardShortcut(); + PL.Util.enableTextModeKeyboardShortcut(); PL.Util.preventUploadedImagesDragging(); }); diff --git a/src/PublicLab.Editor.js b/src/PublicLab.Editor.js index 2df20fc3..3becf8be 100644 --- a/src/PublicLab.Editor.js +++ b/src/PublicLab.Editor.js @@ -18,7 +18,7 @@ PL.MapModule = require('./modules/PublicLab.MapModule.js'); $(document).ready(function() { PL.Util.preventModalScrollToTop(); - PL.Util.enableRichTextModeKeyboardShortcut(); + PL.Util.enableTextModeKeyboardShortcut(); PL.Util.preventUploadedImagesDragging(); }); From 335112fc753fbad562e26607d27c989909387dbb Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Fri, 3 Jul 2020 17:02:58 +0530 Subject: [PATCH 4/6] refined tests to test the reverse func and reset changes after test completion added flag to run jest test sequentially --- package.json | 2 +- test/ui-testing/bold.test.js | 16 ++++++++++++---- test/ui-testing/italic.test.js | 16 ++++++++++++---- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 625b6a94..aba2136b 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "dist/PublicLab.Editor.js", "scripts": { "build": "grunt build", - "test": "grunt jasmine && npm run test-ui", + "test": "grunt jasmine && npm run test-ui --runInBand", "test-ui": "node ./node_modules/.bin/jest" }, "repository": { diff --git a/test/ui-testing/bold.test.js b/test/ui-testing/bold.test.js index b8fe80ef..bca60239 100644 --- a/test/ui-testing/bold.test.js +++ b/test/ui-testing/bold.test.js @@ -12,17 +12,25 @@ describe('Bold Text', () => { const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('strong text')); expect(stringIsIncluded).toBe(true); + await page.keyboard.press("Backspace"); }, timeout); test('Adds strong text in markdown mode', async () => { + await page.waitForSelector('.woofmark-mode-markdown'); await page.click('.woofmark-mode-markdown'); - await page.waitForSelector('.ple-module-body'); - await page.focus('.ple-module-body'); + await page.evaluate(() => document.querySelector('.ple-textarea').value += ' '); await page.click('.woofmark-command-bold'); - const stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); - + let stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); + expect(stringIsIncluded).toBe(true); + + await page.click('.woofmark-command-bold'); + stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('strong text')); expect(stringIsIncluded).toBe(true); + stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); + expect(stringIsIncluded).toBe(false); + + await page.keyboard.press("Backspace"); }, timeout); }); diff --git a/test/ui-testing/italic.test.js b/test/ui-testing/italic.test.js index 61488b1d..51f2db56 100644 --- a/test/ui-testing/italic.test.js +++ b/test/ui-testing/italic.test.js @@ -12,17 +12,25 @@ describe('Italic Text', () => { const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('emphasized text')); expect(stringIsIncluded).toBe(true); + await page.keyboard.press("Backspace"); }, timeout); test('Adds emphasized text in markdown mode', async () => { + await page.waitForSelector('.woofmark-mode-markdown'); await page.click('.woofmark-mode-markdown'); - await page.waitForSelector('.ple-module-body'); - await page.focus('.ple-module-body'); + await page.evaluate(() => document.querySelector('.ple-textarea').value += ' '); await page.click('.woofmark-command-italic'); - const stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('_emphasized text_')); - + let stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('*emphasized text*')); + expect(stringIsIncluded).toBe(true); + + await page.click('.woofmark-command-italic'); + stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('emphasized text')); expect(stringIsIncluded).toBe(true); + stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('*emphasized text*')); + expect(stringIsIncluded).toBe(false); + + await page.keyboard.press("Backspace"); }, timeout); From 11ae2c6c0c8c04c6bd47805b9a13d29342f84f62 Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Sat, 4 Jul 2020 15:01:10 +0530 Subject: [PATCH 5/6] bold test edited --- .travis.yml | 2 +- package.json | 2 +- test/ui-testing/bold.test.js | 6 ++++-- test/ui-testing/italic.test.js | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index e691b329..344c84e5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,4 +8,4 @@ before_script: - grunt build script: - grunt jasmine --force - - npm run test-ui \ No newline at end of file + - npm run test-ui diff --git a/package.json b/package.json index aba2136b..625b6a94 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "dist/PublicLab.Editor.js", "scripts": { "build": "grunt build", - "test": "grunt jasmine && npm run test-ui --runInBand", + "test": "grunt jasmine && npm run test-ui", "test-ui": "node ./node_modules/.bin/jest" }, "repository": { diff --git a/test/ui-testing/bold.test.js b/test/ui-testing/bold.test.js index bca60239..b2f5cbbd 100644 --- a/test/ui-testing/bold.test.js +++ b/test/ui-testing/bold.test.js @@ -10,7 +10,7 @@ describe('Bold Text', () => { await page.waitForSelector('.ple-module-body'); await page.click('.woofmark-command-bold'); const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('strong text')); - + expect(stringIsIncluded).toBe(true); await page.keyboard.press("Backspace"); @@ -31,6 +31,8 @@ describe('Bold Text', () => { expect(stringIsIncluded).toBe(false); await page.keyboard.press("Backspace"); + await page.click('.woofmark-mode-wysiwyg'); }, timeout); -}); + +}); \ No newline at end of file diff --git a/test/ui-testing/italic.test.js b/test/ui-testing/italic.test.js index 51f2db56..34a3b303 100644 --- a/test/ui-testing/italic.test.js +++ b/test/ui-testing/italic.test.js @@ -31,6 +31,7 @@ describe('Italic Text', () => { expect(stringIsIncluded).toBe(false); await page.keyboard.press("Backspace"); + await page.click('.woofmark-mode-wysiwyg'); }, timeout); From 359af155c1cbabc8225f7a906617e205ae7b98dd Mon Sep 17 00:00:00 2001 From: shreyaa-sharmaa Date: Sun, 5 Jul 2020 12:45:51 +0530 Subject: [PATCH 6/6] comments added --- test/ui-testing/bold.test.js | 7 ++++++- test/ui-testing/italic.test.js | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/test/ui-testing/bold.test.js b/test/ui-testing/bold.test.js index b2f5cbbd..10940a6c 100644 --- a/test/ui-testing/bold.test.js +++ b/test/ui-testing/bold.test.js @@ -7,16 +7,19 @@ beforeAll(async () => { describe('Bold Text', () => { test('Adds strong text in rich text mode', async () => { + // clicks on bold button and checks if 'strong text' is added in the editor await page.waitForSelector('.ple-module-body'); await page.click('.woofmark-command-bold'); const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('strong text')); - expect(stringIsIncluded).toBe(true); + + // resets the changes by removing the added text await page.keyboard.press("Backspace"); }, timeout); test('Adds strong text in markdown mode', async () => { + // clicks on bold button and checks if '**strong text**' is added in the editor await page.waitForSelector('.woofmark-mode-markdown'); await page.click('.woofmark-mode-markdown'); await page.evaluate(() => document.querySelector('.ple-textarea').value += ' '); @@ -24,12 +27,14 @@ describe('Bold Text', () => { let stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); expect(stringIsIncluded).toBe(true); + // clicks bold button again to un-bolden the text but retains the text value 'strong text' await page.click('.woofmark-command-bold'); stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('strong text')); expect(stringIsIncluded).toBe(true); stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('**strong text**')); expect(stringIsIncluded).toBe(false); + // resets changes by removing the added text and changes back to wysiwyg mode await page.keyboard.press("Backspace"); await page.click('.woofmark-mode-wysiwyg'); diff --git a/test/ui-testing/italic.test.js b/test/ui-testing/italic.test.js index 34a3b303..e04df013 100644 --- a/test/ui-testing/italic.test.js +++ b/test/ui-testing/italic.test.js @@ -7,16 +7,19 @@ beforeAll(async () => { describe('Italic Text', () => { test('Adds emphasized text in rich text mode', async () => { + // clicks on italic button and checks if 'emphasized text' is added in the editor await page.waitForSelector('.ple-module-body'); await page.click('.woofmark-command-italic'); const stringIsIncluded = await page.evaluate(() => document.querySelector('.wk-wysiwyg').textContent.includes('emphasized text')); - expect(stringIsIncluded).toBe(true); + + // resets the changes by removing the added text await page.keyboard.press("Backspace"); }, timeout); test('Adds emphasized text in markdown mode', async () => { + // clicks on italic button and checks if '*emphasized text*' is added in the editor await page.waitForSelector('.woofmark-mode-markdown'); await page.click('.woofmark-mode-markdown'); await page.evaluate(() => document.querySelector('.ple-textarea').value += ' '); @@ -24,12 +27,14 @@ describe('Italic Text', () => { let stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('*emphasized text*')); expect(stringIsIncluded).toBe(true); + // clicks italic button again to un-emphasize the text but retains the text value 'emphasized text' await page.click('.woofmark-command-italic'); stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('emphasized text')); expect(stringIsIncluded).toBe(true); stringIsIncluded = await page.evaluate(() => document.querySelector('.ple-textarea').value.includes('*emphasized text*')); expect(stringIsIncluded).toBe(false); + // resets changes by removing the added text and changes back to wysiwyg mode await page.keyboard.press("Backspace"); await page.click('.woofmark-mode-wysiwyg');