remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
remix-project/test-browser/init.js

109 lines
3.5 KiB

9 years ago
/* global web3Override */
module.exports = function (browser, callback) {
extendBrowser(browser)
browser
.url('http://127.0.0.1:8080')
injectScript('./test/resources/testWeb3.js', browser, function () {
callback()
})
}
function readFile (filename, callback) {
var fs = require('fs')
try {
console.log('reading ' + filename)
fs.readFile(filename, 'utf8', callback)
} catch (e) {
console.log(e)
callback(e)
}
}
function injectScript (file, browser, callback) {
readFile(file, function (error, result) {
if (!error) {
browser.execute(function (data) {
eval.call(null, data) // eslint-disable-line
var vmdebugger = document.getElementById('app').vmdebugger
vmdebugger.web3.eth.getCode = web3Override.getCode
vmdebugger.web3.debug.traceTransaction = web3Override.traceTransaction
vmdebugger.web3.debug.storageAt = web3Override.storageAt
vmdebugger.web3.eth.getTransaction = web3Override.getTransaction
vmdebugger.web3.eth.getTransactionFromBlock = web3Override.getTransactionFromBlock
vmdebugger.web3.eth.getBlockNumber = web3Override.getBlockNumber
}, [result], function () {
callback()
})
}
})
}
function extendBrowser (browser) {
browser.assertCurrentSelectedItem = function (expected) {
browser.getValue('#asmitems', function (result) {
9 years ago
browser.expect.element('#asmitems option[value="' + result.value + '"]').text.to.equal(expected)
9 years ago
})
return browser
}
browser.assertSticker = function (vmtracestepinfo, stepinfo, addmemoryinfo, gasinfo, remaininggasinfo, loadedaddressinfo) {
browser.expect.element('#vmtracestepinfo').text.to.equal(vmtracestepinfo)
browser.expect.element('#stepinfo').text.to.equal(stepinfo)
browser.expect.element('#addmemoryinfo').text.to.equal(addmemoryinfo)
browser.expect.element('#gasinfo').text.to.equal(gasinfo)
browser.expect.element('#remaininggasinfo').text.to.equal(remaininggasinfo)
browser.expect.element('#loadedaddressinfo').text.to.equal(loadedaddressinfo)
return browser
}
browser.assertStack = function (value) {
return assertPanel('#stackpanel', browser, value)
}
browser.assertStorageChanges = function (value) {
return assertPanel('#storagepanel', browser, value)
}
browser.assertMemory = function (value) {
return assertPanel('#memorypanel', browser, value)
}
browser.assertCallData = function (value) {
return assertPanel('#calldatapanel', browser, value)
}
browser.assertCallStack = function (value) {
return assertPanel('#callstackpanel', browser, value)
}
browser.assertStackValue = function (index, value) {
return assertPanelValue('#stackpanel', browser, index, value)
}
browser.assertStorageChangesValue = function (index, value) {
return assertPanelValue('#storagepanel', browser, index, value)
}
browser.assertMemoryValue = function (index, value) {
return assertPanelValue('#memorypanel', browser, index, value)
}
browser.assertCallStackValue = function (index, value) {
return assertPanelValue('#callstackpanel', browser, index, value)
}
}
function assertPanel (id, browser, value) {
browser.expect.element(id + ' #basicpanel').text.to.equal(value)
return browser
}
function assertPanelValue (id, browser, index, value, done) {
browser.getText(id + ' #basicpanel', function (result) {
var values = result.value.split('\n')
browser.assert.equal(values[index], value)
})
return browser
}