diff --git a/.circleci/config.yml b/.circleci/config.yml index 46f15113e89..ca6dcad0b8b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,7 @@ jobs: remix-ide: docker: # specify the version you desire here - - image: circleci/node:9.11.2 + - image: circleci/node:9.11.2-browsers # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images @@ -32,7 +32,20 @@ jobs: key: dep-bundle-29-{{ checksum "package.json" }} paths: - ~/repo/node_modules - - run: npm run lint && npm run test && npm run make-mock-compiler && npm run build + - run: npm run lint && npm run test && npm run make-mock-compiler + - run: + name: Download Selenium + command: wget http://selenium-release.storage.googleapis.com/3.5/selenium-server-standalone-3.5.3.jar + - run: + name: Download Gecko driver + command: wget https://github.com/mozilla/geckodriver/releases/download/v0.24.0/geckodriver-v0.24.0-linux64.tar.gz && tar -xzf geckodriver-v0.24.0-linux64.tar.gz + - run: + name: Start Selenium + command: java -Dwebdriver.gecko.driver="geckodriver" -jar selenium-server-standalone-3.5.3.jar + background: true + - run: + name: Fix Firefox testing + command: apt-get purge -y firefox && wget https://sourceforge.net/projects/ubuntuzilla/files/mozilla/apt/pool/main/f/firefox-mozilla-build/firefox-mozilla-build_55.0.1-0ubuntu1_amd64.deb && sudo dpkg -i firefox-mozilla-build_55.0.1-0ubuntu1_amd64.deb - run: ./ci/browser_tests.sh workflows: diff --git a/ci/browser_tests.sh b/ci/browser_tests.sh index f25dac4ac91..8002ababdb6 100755 --- a/ci/browser_tests.sh +++ b/ci/browser_tests.sh @@ -11,34 +11,14 @@ setupRemixd () { cd .. } -if test $(uname -s) = "Darwin" -then - OS="osx" - FILEFORMAT="zip" -else - OS="linux" - FILEFORMAT="tar.gz" -fi -SC_VERSION="4.5.1" -SAUCECONNECT_URL="https://saucelabs.com/downloads/sc-$SC_VERSION-$OS.$FILEFORMAT" -SAUCECONNECT_USERNAME="yanneth" -SAUCECONNECT_ACCESSKEY="1f5a4560-b02b-41aa-b52b-f033aad30870" BUILD_ID=${CIRCLE_BUILD_NUM:-${TRAVIS_JOB_NUMBER}} echo "$BUILD_ID" -SAUCECONNECT_JOBIDENTIFIER="browsersolidity_tests_${BUILD_ID}" -SAUCECONNECT_READYFILE="sc.ready" TEST_EXITCODE=0 npm run serve & - setupRemixd -wget "$SAUCECONNECT_URL" -tar -zxvf sc-"$SC_VERSION"-"$OS"."$FILEFORMAT" -./sc-"$SC_VERSION"-"$OS"/bin/sc -u "$SAUCECONNECT_USERNAME" -k "$SAUCECONNECT_ACCESSKEY" -i "$SAUCECONNECT_JOBIDENTIFIER" --no-ssl-bump-domains all --readyfile "$SAUCECONNECT_READYFILE" & -while [ ! -f "$SAUCECONNECT_READYFILE" ]; do - sleep .5 -done +sleep 5 npm run nightwatch_remote_chrome || TEST_EXITCODE=1 npm run nightwatch_remote_firefox || TEST_EXITCODE=1 diff --git a/nightwatch.js b/nightwatch.js index 046dfa2c281..560e55763a2 100644 --- a/nightwatch.js +++ b/nightwatch.js @@ -1,7 +1,5 @@ 'use strict' -var buildId = process.env.CIRCLE_BUILD_NUM || process.env.TRAVIS_JOB_NUMBER - module.exports = { 'src_folders': ['test-browser/tests'], 'output_folder': 'reports', @@ -12,13 +10,8 @@ module.exports = { 'test_settings': { 'default': { - 'launch_url': 'http://ondemand.saucelabs.com:80', - 'selenium_host': 'ondemand.saucelabs.com', - 'selenium_port': 80, - 'silent': true, - 'username': 'yanneth', - 'access_key': '1f5a4560-b02b-41aa-b52b-f033aad30870', - 'use_ssl': false, + 'selenium_port': 4444, + 'selenium_host': 'localhost', 'globals': { 'waitForConditionTimeout': 10000, 'asyncHookTimeout': 100000 @@ -30,9 +23,7 @@ module.exports = { 'desiredCapabilities': { 'browserName': 'firefox', 'javascriptEnabled': true, - 'acceptSslCerts': true, - 'build': 'build-' + buildId, - 'tunnel-identifier': 'browsersolidity_tests_' + buildId + 'acceptSslCerts': true } }, @@ -41,8 +32,6 @@ module.exports = { 'browserName': 'chrome', 'javascriptEnabled': true, 'acceptSslCerts': true, - 'build': 'build-' + buildId, - 'tunnel-identifier': 'browsersolidity_tests_' + buildId, 'chromeOptions': { 'args': ['window-size=2560,1440', 'start-fullscreen'] } @@ -53,11 +42,7 @@ module.exports = { 'desiredCapabilities': { 'browserName': 'safari', 'javascriptEnabled': true, - 'platform': 'macOS 10.13', - 'version': '11.0', - 'acceptSslCerts': true, - 'build': 'build-' + buildId, - 'tunnel-identifier': 'browsersolidity_tests_' + buildId + 'acceptSslCerts': true } }, @@ -65,18 +50,11 @@ module.exports = { 'desiredCapabilities': { 'browserName': 'internet explorer', 'javascriptEnabled': true, - 'platform': 'Windows 10', - 'acceptSslCerts': true, - 'version': '11.103', - 'build': 'build-' + buildId, - 'tunnel-identifier': 'browsersolidity_tests_' + buildId + 'acceptSslCerts': true } }, 'local': { - 'launch_url': 'http://localhost:8080', - 'selenium_port': 4444, - 'selenium_host': 'localhost', 'desiredCapabilities': { 'browserName': 'chrome', 'javascriptEnabled': true, diff --git a/test-browser/helpers/contracts.js b/test-browser/helpers/contracts.js index 417867e78f5..49dc98cbf78 100644 --- a/test-browser/helpers/contracts.js +++ b/test-browser/helpers/contracts.js @@ -125,6 +125,7 @@ function verifyCallReturnValue (browser, address, checks, done) { } return ret }, [address], function (result) { + console.log('verifyCallReturnValue', result) for (var k in checks) { browser.assert.equal(result.value[k], checks[k]) } diff --git a/test-browser/tests/generalTests.js b/test-browser/tests/generalTests.js index 046982e3685..6fd639b034d 100644 --- a/test-browser/tests/generalTests.js +++ b/test-browser/tests/generalTests.js @@ -180,7 +180,7 @@ function testSignature (browser, callback) { .getAttribute(instanceSelector, 'id', (result) => { // skip 'instance' part of e.g. 'instance0x692a70d2e424a56d2c6c27aa97d1a86395877b3a' const address = result.value.slice('instance'.length) - browser.clickFunction('ecrecovery - call', {types: 'bytes32 hash, bytes sig', values: `"${hash.value}","${signature.value}"`}).perform( + browser.clickFunction('ecrecovery - call', {types: 'bytes32 hash, bytes sig', values: `"${hash.value}","${signature.value}"`}).pause(1000).perform( () => { contractHelper.verifyCallReturnValue( browser, diff --git a/test-browser/tests/sauce.js b/test-browser/tests/sauce.js index add631aacc0..5294a9d403a 100644 --- a/test-browser/tests/sauce.js +++ b/test-browser/tests/sauce.js @@ -1,17 +1,14 @@ -const https = require('https') +// const https = require('https') module.exports = function sauce (callback) { + return callback() + /* const currentTest = this.client.currentTest const username = this.client.options.username const sessionId = this.client.capabilities['webdriver.remote.sessionid'] const accessKey = this.client.options.accessKey - if (!this.client.launch_url.match(/saucelabs/)) { - console.log('Not saucelabs ...') - return callback() - } - if (!username || !accessKey || !sessionId) { console.log(this.client) console.log('No username, accessKey or sessionId') @@ -59,4 +56,5 @@ module.exports = function sauce (callback) { console.log('Error', error) callback() } + */ }