Skip to content

Commit

Permalink
added tests for other pages
Browse files Browse the repository at this point in the history
  • Loading branch information
OverPoweredDev committed Jun 26, 2021
1 parent 8aa9b01 commit 5a10c3d
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 27 deletions.
58 changes: 58 additions & 0 deletions tests/options.test.js
@@ -0,0 +1,58 @@
const puppeteer = require('puppeteer');
const assert = require('assert');
const path = require('path');

const timeout = 1000;
const extensionPath = path.join(__dirname, '..','src/');
const extensionName = 'Apertium';
const extensionEndURL = 'popup/options.html';

let browser = null;
let extensionID = null;
let extensionOptions = null;

describe('Options Testing', async function () {
it('Extension can be Loaded', async function () {
await loadExtension();
assert.ok(browser, 'Browser has not been loaded')
assert.ok(extensionID, 'Extension has not been loaded');
});

it('UI Elements are Rendered', async function (){
extensionOptions = await browser.newPage();
await extensionOptions.goto(`chrome-extension://${extensionID}/${extensionEndURL}`);
});

after(async function (){
await browser.close();
});
});

async function getExtensionID(browser) {
//required to let browser page load
const dummyPage = await browser.newPage();
await dummyPage.waitForTimeout(timeout);

const targets = await browser.targets();
const extensionTarget = targets.find(({_targetInfo}) => {
return _targetInfo.title === extensionName && _targetInfo.type === 'background_page';
});

// Extract the URL
const extensionURL = extensionTarget._targetInfo.url;
const urlSplit = extensionURL.split('/');

return urlSplit[2];
}

async function loadExtension() {
browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`
]
});

extensionID = await getExtensionID(browser);
}
38 changes: 11 additions & 27 deletions tests/popup.test.js
@@ -1,6 +1,6 @@
const puppeteer = require('puppeteer');
const assert = require('assert');
const path = require('path')
const path = require('path');

const timeout = 1000;
const extensionPath = path.join(__dirname, '..','src/');
Expand All @@ -23,28 +23,28 @@ describe('Pop-Up Testing', async function () {
await extensionPopup.goto(`chrome-extension://${extensionID}/${extensionEndURL}`);

let sourceDropdown = await extensionPopup.$('#source-dropdown-div');
assert.ok(sourceDropdown, 'Source Dropdown does not Render');
assert.ok(sourceDropdown, 'Source Dropdown does not Load');

let targetDropdown = await extensionPopup.$('#target-dropdown-div');
assert.ok(targetDropdown, 'Target Dropdown does not Render');
assert.ok(targetDropdown, 'Target Dropdown does not Load');

let switchButton = await extensionPopup.$('#exchange-source-target');
assert.ok(switchButton, 'Switch Language Button does not Render');
assert.ok(switchButton, 'Switch Language Button does not Load');

let inputBar = await extensionPopup.$('#input-text-bar');
assert.ok(inputBar, 'Input Bar does not Render');
assert.ok(inputBar, 'Input Bar does not Load');

let outputBar = await extensionPopup.$('#output-text-bar');
assert.ok(outputBar, 'Output Bar does not Render');
assert.ok(outputBar, 'Output Bar does not Load');

let translateButton = await extensionPopup.$('#translate-button');
assert.ok(translateButton, 'Translate Button does not Render');
assert.ok(translateButton, 'Translate Button does not Load');

let translateWebpageButton = await extensionPopup.$('#translate-webpage-button');
assert.ok(translateWebpageButton, 'Translate Webpage Button does not Render');
assert.ok(translateWebpageButton, 'Translate Webpage Button does not Load');

let enableCheckBox = await extensionPopup.$('#enable-hover-checkbox');
assert.ok(enableCheckBox, 'Enable CheckBox does not Render');
assert.ok(enableCheckBox, 'Enable CheckBox does not Load');
});

it('Language Dropdowns can be Loaded', async function (){
Expand All @@ -58,7 +58,7 @@ describe('Pop-Up Testing', async function () {
after(async function (){
await browser.close();
});
})
});

async function getExtensionID(browser) {
//required to let browser page load
Expand Down Expand Up @@ -87,20 +87,4 @@ async function loadExtension() {
});

extensionID = await getExtensionID(browser);
}

// (async () => {
// try {
// await loadExtension();
//
// const page = await browser.newPage();
// await page.goto(`chrome-extension://${extensionID}/${extensionEndURL}`);
//
// page.waitForTimeout(2000);
// await page.screenshot({path: 'chromium-extension.png'});
//
// await browser.close();
// } catch (err) {
// console.error(err);
// }
// })();
}
58 changes: 58 additions & 0 deletions tests/settings.test.js
@@ -0,0 +1,58 @@
const puppeteer = require('puppeteer');
const assert = require('assert');
const path = require('path');

const timeout = 1000;
const extensionPath = path.join(__dirname, '..','src/');
const extensionName = 'Apertium';
const extensionEndURL = 'settings/settings.html';

let browser = null;
let extensionID = null;
let extensionSettings = null;

describe('Settings Testing', async function () {
it('Extension can be Loaded', async function () {
await loadExtension();
assert.ok(browser, 'Browser has not been loaded')
assert.ok(extensionID, 'Extension has not been loaded');
});

it('UI Elements are Rendered', async function (){
extensionSettings = await browser.newPage();
await extensionSettings.goto(`chrome-extension://${extensionID}/${extensionEndURL}`);
});

after(async function (){
await browser.close();
});
});

async function getExtensionID(browser) {
//required to let browser page load
const dummyPage = await browser.newPage();
await dummyPage.waitForTimeout(timeout);

const targets = await browser.targets();
const extensionTarget = targets.find(({_targetInfo}) => {
return _targetInfo.title === extensionName && _targetInfo.type === 'background_page';
});

// Extract the URL
const extensionURL = extensionTarget._targetInfo.url;
const urlSplit = extensionURL.split('/');

return urlSplit[2];
}

async function loadExtension() {
browser = await puppeteer.launch({
headless: false,
args: [
`--disable-extensions-except=${extensionPath}`,
`--load-extension=${extensionPath}`
]
});

extensionID = await getExtensionID(browser);
}

0 comments on commit 5a10c3d

Please sign in to comment.