|
|
|
var init = require('../test/init')
|
|
|
|
module.exports = function (browser, callback) {
|
|
|
|
extendBrowser(browser)
|
|
|
|
|
|
|
|
browser
|
|
|
|
.url('http://127.0.0.1:8080')
|
|
|
|
.waitForElementPresent('#app div', 1000)
|
|
|
|
injectScript('./test/resources/testWeb3.json', browser, function () {
|
|
|
|
callback()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
function injectScript (file, browser, callback) {
|
|
|
|
init.readFile(file, function (error, result) {
|
|
|
|
if (!error) {
|
|
|
|
browser.execute(function (data) {
|
|
|
|
// var vmdebugger = window.vmdebugger // document.getElementById('app').vmdebugger
|
|
|
|
data = JSON.parse(data)
|
|
|
|
window.vmdebugger.web3.eth.getCode = function (address, callback) {
|
|
|
|
if (callback) {
|
|
|
|
callback(null, data.testCodes[address])
|
|
|
|
} else {
|
|
|
|
return data.testCodes[address]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
window.vmdebugger.web3.debug.traceTransaction = function (txHash, options, callback) {
|
|
|
|
callback(null, data.testTraces[txHash])
|
|
|
|
}
|
|
|
|
|
|
|
|
window.vmdebugger.web3.debug.storageAt = function (blockNumber, txIndex, address, callback) {
|
|
|
|
callback(null, {})
|
|
|
|
}
|
|
|
|
|
|
|
|
window.vmdebugger.web3.eth.getTransaction = function (txHash, callback) {
|
|
|
|
if (callback) {
|
|
|
|
callback(null, data.testTxs[txHash])
|
|
|
|
} else {
|
|
|
|
return data.testTxs[txHash]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
window.vmdebugger.web3.eth.getTransactionFromBlock = function (blockNumber, txIndex, callback) {
|
|
|
|
if (callback) {
|
|
|
|
callback(null, data.testTxsByBlock[blockNumber + '-' + txIndex])
|
|
|
|
} else {
|
|
|
|
return data.testTxsByBlock[blockNumber + '-' + txIndex]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
window.vmdebugger.web3.eth.getBlockNumber = function (callback) { callback('web3 modified testing purposes :)') }
|
|
|
|
|
|
|
|
window.vmdebugger.web3.eth.getBlockNumber(function (r) {
|
|
|
|
console.log('rrrr' + r)
|
|
|
|
})
|
|
|
|
}, [result], function () {
|
|
|
|
callback()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
function extendBrowser (browser) {
|
|
|
|
browser.assertCurrentSelectedItem = function (expected) {
|
|
|
|
browser.getValue('#asmitems', function (result) {
|
|
|
|
browser.expect.element('#asmitems option[value="' + result.value + '"]').text.to.equal(expected)
|
|
|
|
})
|
|
|
|
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
|
|
|
|
}
|