From 56db3999adeaec1733218173b260bf74fa63ccbe Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 13 Sep 2017 16:45:31 -0700 Subject: tests - start migrating mascara tests to karma --- mascara/src/ui.js | 9 +++++++-- mascara/test/test-ui.js | 13 +++++++++++++ mascara/test/window-load.js | 5 ----- 3 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 mascara/test/test-ui.js delete mode 100644 mascara/test/window-load.js (limited to 'mascara') diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 5f9be542f..5662270c1 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -44,13 +44,18 @@ background.on('ready', (sw) => { background.removeListener('updatefound', connectApp) connectApp(sw) }) -background.on('updatefound', () => window.location.reload()) +background.on('updatefound', windowReload) background.startWorker() .then(() => { setTimeout(() => { const appContent = document.getElementById(`app-content`) - if (!appContent.children.length) window.location.reload() + if (!appContent.children.length) windowReload() }, 2000) }) console.log('hello from MetaMascara ui!') + +function windowReload() { + if (window.METAMASK_SKIP_RELOAD) return + window.location.reload() +} diff --git a/mascara/test/test-ui.js b/mascara/test/test-ui.js new file mode 100644 index 000000000..ebeffe8cb --- /dev/null +++ b/mascara/test/test-ui.js @@ -0,0 +1,13 @@ +const Helper = require('./util/mascara-test-helper.js') + +window.METAMASK_SKIP_RELOAD = true +window.addEventListener('load', () => { + // inject app container + const body = document.body + const container = document.createElement('div') + container.id = 'app-content' + body.appendChild(container) + + // start ui + require('../src/ui.js') +}) diff --git a/mascara/test/window-load.js b/mascara/test/window-load.js deleted file mode 100644 index d3f44f05f..000000000 --- a/mascara/test/window-load.js +++ /dev/null @@ -1,5 +0,0 @@ -const Helper = require('./util/mascara-test-helper.js') - -window.addEventListener('load', () => { - require('../src/ui.js') -}) -- cgit v1.2.3 From b53d04c40975adc0fadf20bc6ca875bd9c39e595 Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 13 Sep 2017 20:25:27 -0700 Subject: tests - integration - get flat and mascara tests closer to compatible --- mascara/src/ui.js | 8 ++- mascara/test/lib/first-time.js | 119 ----------------------------------------- mascara/test/test-ui.js | 1 - 3 files changed, 3 insertions(+), 125 deletions(-) delete mode 100644 mascara/test/lib/first-time.js (limited to 'mascara') diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 5662270c1..7506532d2 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -2,8 +2,6 @@ const injectCss = require('inject-css') const SWcontroller = require('client-sw-ready-event/lib/sw-client.js') const SwStream = require('sw-stream/lib/sw-stream.js') const MetaMaskUiCss = require('../../ui/css') -const setupIframe = require('./lib/setup-iframe.js') -const MetamaskInpageProvider = require('../../app/scripts/lib/inpage-provider.js') const MetamascaraPlatform = require('../../app/scripts/platforms/window') const startPopup = require('../../app/scripts/popup-core') @@ -32,7 +30,7 @@ const connectApp = function (readSw) { serviceWorker: background.controller, context: name, }) - startPopup({container, connectionStream}, (err, store) => { + startPopup({ container, connectionStream }, (err, store) => { if (err) return displayCriticalError(err) store.subscribe(() => { const state = store.getState() @@ -49,8 +47,8 @@ background.on('updatefound', windowReload) background.startWorker() .then(() => { setTimeout(() => { - const appContent = document.getElementById(`app-content`) - if (!appContent.children.length) windowReload() + const container = document.getElementById(`app-content`) + if (!container.children.length) windowReload() }, 2000) }) console.log('hello from MetaMascara ui!') diff --git a/mascara/test/lib/first-time.js b/mascara/test/lib/first-time.js deleted file mode 100644 index e42c9e39d..000000000 --- a/mascara/test/lib/first-time.js +++ /dev/null @@ -1,119 +0,0 @@ -const PASSWORD = 'password123' - -QUnit.module('first time usage') - -QUnit.test('render init screen', function (assert) { - var done = assert.async() - let app - - wait(1000).then(function() { - app = $('#app-content').contents() - const recurseNotices = function () { - let button = app.find('button') - if (button.html() === 'Accept') { - let termsPage = app.find('.markdown')[0] - termsPage.scrollTop = termsPage.scrollHeight - return wait().then(() => { - button.click() - return wait() - }).then(() => { - return recurseNotices() - }) - } else { - return wait() - } - } - return recurseNotices() - }).then(function() { - // Scroll through terms - var title = app.find('h1').text() - assert.equal(title, 'MetaMask', 'title screen') - - // enter password - var pwBox = app.find('#password-box')[0] - var confBox = app.find('#password-box-confirm')[0] - pwBox.value = PASSWORD - confBox.value = PASSWORD - - return wait() - }).then(function() { - - // create vault - var createButton = app.find('button.primary')[0] - createButton.click() - - return wait(1500) - }).then(function() { - - var created = app.find('h3')[0] - assert.equal(created.textContent, 'Vault Created', 'Vault created screen') - - // Agree button - var button = app.find('button')[0] - assert.ok(button, 'button present') - button.click() - - return wait(1000) - }).then(function() { - - var detail = app.find('.account-detail-section')[0] - assert.ok(detail, 'Account detail section loaded.') - - var sandwich = app.find('.sandwich-expando')[0] - sandwich.click() - - return wait() - }).then(function() { - - var sandwich = app.find('.menu-droppo')[0] - var children = sandwich.children - var lock = children[children.length - 2] - assert.ok(lock, 'Lock menu item found') - lock.click() - - return wait(1000) - }).then(function() { - - var pwBox = app.find('#password-box')[0] - pwBox.value = PASSWORD - - var createButton = app.find('button.primary')[0] - createButton.click() - - return wait(1000) - }).then(function() { - - var detail = app.find('.account-detail-section')[0] - assert.ok(detail, 'Account detail section loaded again.') - - return wait() - }).then(function (){ - - var qrButton = app.find('.fa.fa-qrcode')[0] - qrButton.click() - - return wait(1000) - }).then(function (){ - - var qrHeader = app.find('.qr-header')[0] - var qrContainer = app.find('#qr-container')[0] - assert.equal(qrHeader.textContent, 'Account 1', 'Should show account label.') - assert.ok(qrContainer, 'QR Container found') - - return wait() - }).then(function (){ - - var networkMenu = app.find('.network-indicator')[0] - networkMenu.click() - - return wait() - }).then(function (){ - - var networkMenu = app.find('.network-indicator')[0] - var children = networkMenu.children - children.length[3] - assert.ok(children, 'All network options present') - - done() - }) -}) diff --git a/mascara/test/test-ui.js b/mascara/test/test-ui.js index ebeffe8cb..201eec601 100644 --- a/mascara/test/test-ui.js +++ b/mascara/test/test-ui.js @@ -7,7 +7,6 @@ window.addEventListener('load', () => { const container = document.createElement('div') container.id = 'app-content' body.appendChild(container) - // start ui require('../src/ui.js') }) -- cgit v1.2.3 From 7fb862356873fc4c5dc28e5c7389f71424985b0f Mon Sep 17 00:00:00 2001 From: frankiebee Date: Fri, 15 Sep 2017 11:09:19 -0700 Subject: dont reload on initial download and wait before passing sw to ui --- mascara/src/ui.js | 41 ++++++++++++++++++++++++++--------------- mascara/test/test-ui.js | 1 - 2 files changed, 26 insertions(+), 16 deletions(-) (limited to 'mascara') diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 7506532d2..05521d095 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -30,30 +30,41 @@ const connectApp = function (readSw) { serviceWorker: background.controller, context: name, }) - startPopup({ container, connectionStream }, (err, store) => { - if (err) return displayCriticalError(err) - store.subscribe(() => { - const state = store.getState() - if (state.appState.shouldClose) window.close() + return new Promise((resolve, reject) => { + startPopup({ container, connectionStream }, (err, store) => { + console.log('hello from MetaMascara ui!') + if (err) reject(err) + store.subscribe(() => { + const state = store.getState() + if (state.appState.shouldClose) window.close() + }) + resolve() }) }) } -background.on('ready', (sw) => { - background.removeListener('updatefound', connectApp) - connectApp(sw) +background.on('ready', async (sw) => { + try { + background.removeListener('updatefound', connectApp) + await timeout(1000) + await connectApp(sw) + console.log('hello from cb ready event!') + } catch (e) { + console.error(e) + } }) background.on('updatefound', windowReload) background.startWorker() -.then(() => { - setTimeout(() => { - const container = document.getElementById(`app-content`) - if (!container.children.length) windowReload() - }, 2000) -}) -console.log('hello from MetaMascara ui!') function windowReload() { if (window.METAMASK_SKIP_RELOAD) return window.location.reload() } + +function timeout (time) { + return new Promise(function (resolve, reject) { + setTimeout(function () { + resolve() + }, time || 1500) + }) +} \ No newline at end of file diff --git a/mascara/test/test-ui.js b/mascara/test/test-ui.js index 201eec601..bf27338d9 100644 --- a/mascara/test/test-ui.js +++ b/mascara/test/test-ui.js @@ -1,6 +1,5 @@ const Helper = require('./util/mascara-test-helper.js') -window.METAMASK_SKIP_RELOAD = true window.addEventListener('load', () => { // inject app container const body = document.body -- cgit v1.2.3 From 7bcca782cbea545fedabf33d73311c0e361690c2 Mon Sep 17 00:00:00 2001 From: frankiebee Date: Fri, 15 Sep 2017 11:10:52 -0700 Subject: remove testem files --- mascara/test/index.html | 21 --------------------- mascara/test/testem.yml | 13 ------------- 2 files changed, 34 deletions(-) delete mode 100644 mascara/test/index.html delete mode 100644 mascara/test/testem.yml (limited to 'mascara') diff --git a/mascara/test/index.html b/mascara/test/index.html deleted file mode 100644 index 6495c2cfc..000000000 --- a/mascara/test/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - QUnit Example - - - -
-
- - - - - - -
- - - diff --git a/mascara/test/testem.yml b/mascara/test/testem.yml deleted file mode 100644 index f1f5844bd..000000000 --- a/mascara/test/testem.yml +++ /dev/null @@ -1,13 +0,0 @@ -launch_in_dev: - - Chrome - - Firefox - - Opera -launch_in_ci: - - Chrome - - Firefox - - Opera -framework: - - qunit -before_tests: "npm run mascaraCi" -after_tests: "rm ./background.js ./test-bundle.js ./bundle.js" -test_page: "./index.html" -- cgit v1.2.3 From c5a2527c17f9c7f47645dc4d99694645d1985022 Mon Sep 17 00:00:00 2001 From: frankiebee Date: Fri, 15 Sep 2017 11:33:37 -0700 Subject: set time if platform is mascara --- mascara/src/ui.js | 1 + 1 file changed, 1 insertion(+) (limited to 'mascara') diff --git a/mascara/src/ui.js b/mascara/src/ui.js index 05521d095..d70dca724 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -15,6 +15,7 @@ const container = document.getElementById('app-content') var name = 'popup' window.METAMASK_UI_TYPE = name +window.METAMASK_PLATFORM_TYPE = 'mascara' let intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 -- cgit v1.2.3 From 779e973b45ac3c5c48d471218ed63848a6653a56 Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 15 Sep 2017 12:19:52 -0700 Subject: tests - integration - mascara - small cleanup and timeout adjustments --- mascara/src/ui.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'mascara') diff --git a/mascara/src/ui.js b/mascara/src/ui.js index d70dca724..2f940ad1a 100644 --- a/mascara/src/ui.js +++ b/mascara/src/ui.js @@ -63,9 +63,7 @@ function windowReload() { } function timeout (time) { - return new Promise(function (resolve, reject) { - setTimeout(function () { - resolve() - }, time || 1500) + return new Promise((resolve) => { + setTimeout(resolve, time || 1500) }) } \ No newline at end of file -- cgit v1.2.3 From 0ab37b52c0540e8877321b40fc742928e96f7ee3 Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 15 Sep 2017 13:13:13 -0700 Subject: mascara - proxy - small cleanup --- mascara/src/proxy.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'mascara') diff --git a/mascara/src/proxy.js b/mascara/src/proxy.js index 5b95175f1..07c5b0e3c 100644 --- a/mascara/src/proxy.js +++ b/mascara/src/proxy.js @@ -1,7 +1,6 @@ const createParentStream = require('iframe-stream').ParentStream const SWcontroller = require('client-sw-ready-event/lib/sw-client.js') const SwStream = require('sw-stream/lib/sw-stream.js') -const SetupUntrustedComunication = ('./lib/setup-untrusted-connection.js') let intervalDelay = Math.floor(Math.random() * (30000 - 1000)) + 1000 const background = new SWcontroller({ @@ -12,7 +11,7 @@ const background = new SWcontroller({ }) const pageStream = createParentStream() -background.on('ready', (_) => { +background.on('ready', () => { let swStream = SwStream({ serviceWorker: background.controller, context: 'dapp', -- cgit v1.2.3 From a9900be08562c16b2f77e41f18cb80076ded09ec Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 15 Sep 2017 13:13:53 -0700 Subject: test - mascara - move skip reload test flag --- mascara/test/test-ui.js | 1 + 1 file changed, 1 insertion(+) (limited to 'mascara') diff --git a/mascara/test/test-ui.js b/mascara/test/test-ui.js index bf27338d9..b9bc42dff 100644 --- a/mascara/test/test-ui.js +++ b/mascara/test/test-ui.js @@ -1,6 +1,7 @@ const Helper = require('./util/mascara-test-helper.js') window.addEventListener('load', () => { + window.METAMASK_SKIP_RELOAD = true // inject app container const body = document.body const container = document.createElement('div') -- cgit v1.2.3