diff --git a/package-lock.json b/package-lock.json index f571dd4b3f..0bcbd9da49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16145,6 +16145,11 @@ } } }, + "selenium": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/selenium/-/selenium-2.20.0.tgz", + "integrity": "sha1-9RWxoWLek8LM7y/AyjPztVQ+OMg=" + }, "selenium-standalone": { "version": "6.17.0", "resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-6.17.0.tgz", diff --git a/package.json b/package.json index 16d78d20e4..d06f4fe39d 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "dependencies": { "@remixproject/engine": "^0.2.3", "http-server": "^0.11.1", + "selenium": "^2.20.0", "standard": "^8.5.0" }, "repository": { @@ -165,6 +166,7 @@ "nightwatch_local_firefox": "nightwatch --config nightwatch.js --env firefox", "nightwatch_local_chrome": "nightwatch --config nightwatch.js --env chrome", "nightwatch_local_ballot": "nightwatch ./test-browser/tests/ballot.test.js --config nightwatch.js --env chrome ", + "nightwatch_local_usingWorker": "nightwatch ./test-browser/tests/usingWebWorker.test.js --config nightwatch.js --env chrome ", "nightwatch_local_libraryDeployment": "nightwatch ./test-browser/tests/libraryDeployment.test.js --config nightwatch.js --env chrome ", "nightwatch_local_solidityImport": "nightwatch ./test-browser/tests/solidityImport.test.js --config nightwatch.js --env chrome ", "nightwatch_local_recorder": "nightwatch ./test-browser/tests/recorder.test.js --config nightwatch.js --env chrome ", diff --git a/src/app/editor/example-contracts.js b/src/app/editor/example-contracts.js index 945abe0349..34c6ea9a64 100644 --- a/src/app/editor/example-contracts.js +++ b/src/app/editor/example-contracts.js @@ -1,5 +1,15 @@ 'use strict' +const basic = `pragma solidity >=0.2.0 <0.7.0; + +/** + * @title Basic contract + */ +contract Basic { + uint someVar; + constructor() public {} +}` + const storage = `pragma solidity >=0.4.22 <0.7.0; /** @@ -245,5 +255,6 @@ module.exports = { storage: { name: '1_Storage.sol', content: storage }, owner: { name: '2_Owner.sol', content: owner }, ballot: { name: '3_Ballot.sol', content: ballot }, - ballot_test: { name: '4_Ballot_test.sol', content: ballotTest } + ballot_test: { name: '4_Ballot_test.sol', content: ballotTest }, + basic: { name: 'basic.sol', content: basic } } diff --git a/src/app/tabs/compile-tab.js b/src/app/tabs/compile-tab.js index a5d8e4de10..42147694c6 100644 --- a/src/app/tabs/compile-tab.js +++ b/src/app/tabs/compile-tab.js @@ -411,7 +411,7 @@ class CompileTab extends ViewPlugin { render () { if (this._view.el) return this._view.el this.onActivationInternal() - this._view.errorContainer = yo`
` + this._view.errorContainer = yo`
` this._view.contractSelection = this.contractSelection() this._view.compilerContainer = this.compilerContainer.render() this.compilerContainer.activate() diff --git a/test-browser/tests/usingWebWorker.test.js b/test-browser/tests/usingWebWorker.test.js new file mode 100644 index 0000000000..b6918fad47 --- /dev/null +++ b/test-browser/tests/usingWebWorker.test.js @@ -0,0 +1,29 @@ +'use strict' +var examples = require('../../src/app/editor/example-contracts') +var init = require('../helpers/init') +var sauce = require('./sauce') + +var sources = [ + {'browser/basic.sol': {content: examples.basic.content}} +] + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + '@sources': function () { + return sources + }, + 'Using Web Worker': function (browser) { + browser + .waitForElementVisible('*[data-id="remixIdeIconPanel"]', 10000) + .addFile('basic.sol', sources[0]['browser/basic.sol']) + .noWorkerErrorFor('soljson-v0.3.4+commit.7dab890.js') + .noWorkerErrorFor('soljson-v0.6.5+commit.f956cc89.js') + .noWorkerErrorFor('soljson-v0.6.8-nightly.2020.5.14+commit.a6d0067b.js') + .noWorkerErrorFor('soljson-v0.6.0-nightly.2019.12.17+commit.d13438ee.js') + .noWorkerErrorFor('soljson-v0.4.26+commit.4563c3fc.js') + }, + + tearDown: sauce +}