${this.txBrowser.render()}
${this.stepManager.render()}
diff --git a/src/ui/FullStoragesChanges.js b/src/ui/FullStoragesChanges.js
index d78847d0fe..512448bcb5 100644
--- a/src/ui/FullStoragesChanges.js
+++ b/src/ui/FullStoragesChanges.js
@@ -27,8 +27,7 @@ FullStoragesChanges.prototype.init = function () {
self.traceManager.getAddresses(function (error, addresses) {
if (!error) {
self.addresses = addresses
- self.basicPanel.data = {}
- self.basicPanel.update()
+ self.basicPanel.update({})
}
})
@@ -49,8 +48,7 @@ FullStoragesChanges.prototype.init = function () {
self.traceManager.getStorageAt(index, null, function (error, result) {
if (!error) {
storageJSON[self.addresses[k]] = result
- self.basicPanel.data = storageJSON
- self.basicPanel.update()
+ self.basicPanel.update(storageJSON)
}
}, self.addresses[k])
}
diff --git a/src/ui/MemoryPanel.js b/src/ui/MemoryPanel.js
index 369d0cc63b..cd6161109f 100644
--- a/src/ui/MemoryPanel.js
+++ b/src/ui/MemoryPanel.js
@@ -23,11 +23,10 @@ MemoryPanel.prototype.init = function () {
self.traceManager.getMemoryAt(index, function (error, memory) {
if (error) {
console.log(error)
- self.basicPanel.data = {}
+ self.basicPanel.update({})
} else if (self.parent.currentStepIndex === index) {
- self.basicPanel.data = util.formatMemory(memory, 16)
+ self.basicPanel.update(util.formatMemory(memory, 16))
}
- self.basicPanel.update()
})
})
}
diff --git a/src/ui/StackPanel.js b/src/ui/StackPanel.js
index e2afa43e23..927af283a7 100644
--- a/src/ui/StackPanel.js
+++ b/src/ui/StackPanel.js
@@ -22,22 +22,21 @@ StackPanel.prototype.init = function () {
self.traceManager.getStackAt(index, function (error, stack) {
if (error) {
- self.basicPanel.data = {}
+ self.basicPanel.update({})
console.log(error)
} else if (self.parent.currentStepIndex === index) {
- self.basicPanel.data = self.format(stack)
+ self.basicPanel.update(self.format(stack))
}
- self.basicPanel.update()
})
})
}
StackPanel.prototype.format = function (stack) {
var ret = []
- for (var key in stack) {
- var hex = ui.normalizeHex(stack[key])
+ stack.map(function (item, i) {
+ var hex = ui.normalizeHex(item)
ret.push(hex)
- }
+ })
return ret
}
diff --git a/src/ui/StepDetail.js b/src/ui/StepDetail.js
index b0bc4f04a4..e2a1ae1cc7 100644
--- a/src/ui/StepDetail.js
+++ b/src/ui/StepDetail.js
@@ -14,19 +14,19 @@ function StepDetail (_parent, _traceManager) {
}
StepDetail.prototype.render = function () {
- return yo`
`
}
StepDetail.prototype.init = function () {
var self = this
this.parent.register('traceUnloaded', this, function () {
self.detail = initDetail()
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
this.parent.register('newTraceLoaded', this, function () {
self.detail = initDetail()
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
this.parent.register('indexChanged', this, function (index) {
@@ -41,8 +41,7 @@ StepDetail.prototype.init = function () {
} else {
self.detail.step = step
}
- self.basicPanel.data = self.detail
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
self.traceManager.getMemExpand(index, function (error, addmem) {
@@ -52,8 +51,7 @@ StepDetail.prototype.init = function () {
} else {
self.detail.addmemory = addmem
}
- self.basicPanel.data = self.detail
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
self.traceManager.getStepCost(index, function (error, gas) {
@@ -63,8 +61,7 @@ StepDetail.prototype.init = function () {
} else {
self.detail.gas = gas
}
- self.basicPanel.data = self.detail
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
self.traceManager.getCurrentCalledAddressAt(index, function (error, address) {
@@ -74,8 +71,7 @@ StepDetail.prototype.init = function () {
} else {
self.detail.loadedAddress = address
}
- self.basicPanel.data = self.detail
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
self.traceManager.getRemainingGas(index, function (error, remaingas) {
@@ -85,8 +81,7 @@ StepDetail.prototype.init = function () {
} else {
self.detail.remainingGas = remaingas
}
- self.basicPanel.data = self.detail
- self.basicPanel.update()
+ self.basicPanel.update(self.detail)
})
})
}
diff --git a/src/ui/StoragePanel.js b/src/ui/StoragePanel.js
index d4fde442d3..454f0aac9b 100644
--- a/src/ui/StoragePanel.js
+++ b/src/ui/StoragePanel.js
@@ -25,11 +25,10 @@ StoragePanel.prototype.init = function () {
self.traceManager.getStorageAt(index, self.parent.tx, function (error, storage) {
if (error) {
console.log(error)
- self.basicPanel.data = {}
+ self.basicPanel.update({})
} else if (self.parent.currentStepIndex === index) {
- self.basicPanel.data = storage
+ self.basicPanel.update(storage)
}
- self.basicPanel.update()
}, self.address)
})
}
diff --git a/src/ui/TxBrowser.js b/src/ui/TxBrowser.js
index 6362d228ea..be734871d7 100644
--- a/src/ui/TxBrowser.js
+++ b/src/ui/TxBrowser.js
@@ -136,13 +136,13 @@ TxBrowser.prototype.render = function () {
var self = this
var view = yo`
${this.connectionSetting()}
-
-
+
+
-
+
${this.basicPanel.render()}
`
diff --git a/src/ui/VmDebugger.js b/src/ui/VmDebugger.js
index 08a5a05210..303df0206a 100644
--- a/src/ui/VmDebugger.js
+++ b/src/ui/VmDebugger.js
@@ -1,5 +1,5 @@
'use strict'
-var ListView = require('./ListView')
+var CodeListView = require('./CodeListView')
var CalldataPanel = require('./CalldataPanel')
var MemoryPanel = require('./MemoryPanel')
var CallstackPanel = require('./CallstackPanel')
@@ -11,7 +11,7 @@ var DropdownPanel = require('./DropdownPanel')
var yo = require('yo-yo')
function VmDebugger (_parent, _traceManager, _codeManager) {
- this.asmCode = new ListView(_parent, _codeManager)
+ this.asmCode = new CodeListView(_parent, _codeManager)
this.stackPanel = new StackPanel(_parent, _traceManager)
this.storagePanel = new StoragePanel(_parent, _traceManager)
this.memoryPanel = new MemoryPanel(_parent, _traceManager)
@@ -49,8 +49,7 @@ function VmDebugger (_parent, _traceManager, _codeManager) {
VmDebugger.prototype.render = function () {
var view = yo`
-
-
+
${this.asmCode.render()}
${this.stepDetail.render()}
${this.stackPanel.render()}
@@ -60,8 +59,7 @@ VmDebugger.prototype.render = function () {
${this.callstackPanel.render()}
${this.returnValuesPanel.render()}
${this.fullStoragesChangesPanel.render()}
-
-
+
`
if (!this.view) {
this.view = view
diff --git a/src/ui/styles/basicStyles.js b/src/ui/styles/basicStyles.js
index cf1b93869d..eb6c91c5c3 100644
--- a/src/ui/styles/basicStyles.js
+++ b/src/ui/styles/basicStyles.js
@@ -21,10 +21,10 @@ module.exports = {
},
instructionsList: {
'width': '72%',
- 'height': '330px',
'overflow-y': 'scroll',
'list-style-type': 'none',
- 'margin': 'auto'
+ 'margin': 'auto',
+ 'max-height': '500px'
},
transactionInfo: {
'margin-top': '5px'
@@ -32,10 +32,10 @@ module.exports = {
panel: {
container: {
'border': '1px solid',
- 'width': '600px'
+ 'width': '70%'
},
tableContainer: {
- 'height': '300px',
+ 'height': '50%',
'overflow-y': 'auto'
},
table: {
@@ -52,10 +52,6 @@ module.exports = {
display: {
'display': 'block'
},
- sticker: {
- 'vertical-align': 'top',
- 'margin': '5px'
- },
inline: {
'display': 'inline-block'
},
diff --git a/src/ui/styles/sliderStyles.js b/src/ui/styles/sliderStyles.js
index b559d69149..208e6602ad 100644
--- a/src/ui/styles/sliderStyles.js
+++ b/src/ui/styles/sliderStyles.js
@@ -1,16 +1,6 @@
'use strict'
module.exports = {
rule: {
- 'width': '600px'
- },
- runner: {
- 'position': 'absolute',
- 'width': '16px',
- 'height': '16px',
- 'margin': '0',
- 'padding': '0',
- 'overflow': 'hidden',
- 'border': '1px solid #a4bed4',
- 'background-color': '#f1f7ff'
+ 'width': '98%'
}
}
diff --git a/test-browser/init.js b/test-browser/init.js
index 11a014f8a2..b39a74cd25 100644
--- a/test-browser/init.js
+++ b/test-browser/init.js
@@ -1,87 +1,38 @@
-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 = document.getElementById('app').vmdebugger
- data = JSON.parse(data)
- var uiTestweb3 = {}
- uiTestweb3.eth = {}
- uiTestweb3.debug = {}
- uiTestweb3.eth.getCode = function (address, callback) {
- if (callback) {
- callback(null, data.testCodes[address])
- } else {
- return data.testCodes[address]
- }
- }
-
- uiTestweb3.debug.traceTransaction = function (txHash, options, callback) {
- callback(null, data.testTraces[txHash])
- }
-
- uiTestweb3.debug.storageAt = function (blockNumber, txIndex, address, callback) {
- callback(null, {})
- }
-
- uiTestweb3.eth.getTransaction = function (txHash, callback) {
- if (callback) {
- callback(null, data.testTxs[txHash])
- } else {
- return data.testTxs[txHash]
- }
- }
-
- uiTestweb3.eth.getTransactionFromBlock = function (blockNumber, txIndex, callback) {
- if (callback) {
- callback(null, data.testTxsByBlock[blockNumber + '-' + txIndex])
- } else {
- return data.testTxsByBlock[blockNumber + '-' + txIndex]
- }
- }
-
- uiTestweb3.eth.getBlockNumber = function (callback) { callback(null, 'web3 modified for testing purposes :)') }
-
- uiTestweb3.eth.providers = { 'HttpProvider': function (url) {} }
-
- uiTestweb3.eth.setProvider = function (provider) {}
-
- uiTestweb3.currentProvider = {host: 'web3 modified for testing purposes :)'}
-
- vmdebugger.addProvider('TEST', uiTestweb3)
- vmdebugger.switchProvider('TEST')
- }, [result], function () {
+ .injectScript('test/resources/insertTestWeb3.js', function () {
+ // wait for the script to load test web3...
+ setTimeout(function () {
callback()
- })
- }
- })
+ }, 5000)
+ })
}
function extendBrowser (browser) {
browser.assertCurrentSelectedItem = function (expected) {
- browser.getValue('#asmitems', function (result) {
- browser.expect.element('#asmitems option[value="' + result.value + '"]').text.to.equal(expected)
+ browser.execute(function (id) {
+ var node = document.querySelector('#asmcodes ul li[selected="selected"] span')
+ return node.innerText
+ }, [''], function (returnValue) {
+ browser.assert.equal(returnValue.value, expected)
+ })
+ return browser
+ }
+
+ browser.retrieveInnerText = function (selector, callback) {
+ browser.execute(function (selector) {
+ var node = document.querySelector(selector)
+ return node ? node.innerText : ''
+ }, [selector], function (returnValue) {
+ callback(returnValue.value)
})
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)
+ browser.assertStepDetail = function (vmtracestepinfo, stepinfo, addmemoryinfo, gasinfo, remaininggasinfo, loadedaddressinfo) {
+ assertPanel('#stepdetail', browser, ['vmTraceStep' + vmtracestepinfo, 'step' + stepinfo, 'addmemory' + addmemoryinfo, 'gas' + gasinfo, 'remainingGas' + remaininggasinfo, 'loadedAddress' + loadedaddressinfo])
return browser
}
@@ -177,29 +128,31 @@ browser.fireEvent = function (el, key, times, callback) {
}
function assertPanel (id, browser, value) {
- browser.expect.element(id + ' #basicpanel').text.to.equal(value)
- return browser
-}
-
-function assertPanelValue (id, browser, index, value) {
- getInnerText(id + ' #basicpanel', browser, function (result) {
- var values
- if (result.value.indexOf('\r\n') !== -1) {
- values = result.value.split('\r\n')
- } else if (result.value.indexOf('\n') !== -1) {
- values = result.value.split('\n')
- } else if (result.value.indexOf('\r') !== -1) {
- values = result.value.split('\r')
+ var selector = id + ' .dropdownpanel div div'
+ browser.execute(function (id) {
+ var node = document.querySelector(id)
+ var ret = []
+ for (var k in node.children) {
+ if (node.children[k].innerText) {
+ ret.push(node.children[k].innerText)
+ }
}
- browser.assert.equal(values[index], value)
+ return ret
+ }, [selector], function (returnValues) {
+ value.map(function (item, index) {
+ browser.assert.equal(returnValues.value[index], value[index])
+ })
})
return browser
}
-function getInnerText (id, browser, callback) {
- browser.execute(function (data) {
- return document.querySelector(data).innerText
- }, [id], function (result) {
- callback(result)
+function assertPanelValue (id, browser, index, value) {
+ var selector = id + ' .dropdownpanel div div'
+ browser.execute(function (id, index) {
+ var node = document.querySelector(id)
+ return node.children[index].innerText
+ }, [selector, index], function (returnValues) {
+ browser.assert.equal(returnValues.value, value)
})
+ return browser
}
diff --git a/test-browser/vmdebugger.js b/test-browser/vmdebugger.js
index 507bac135b..8ae1a6999f 100644
--- a/test-browser/vmdebugger.js
+++ b/test-browser/vmdebugger.js
@@ -5,7 +5,9 @@ var sauce = require('./sauce')
module.exports = {
beforeEach: function (browser, done) {
try {
- init(browser, done)
+ init(browser, function () {
+ done()
+ })
} catch (e) {
var mes = 'error ' + e.message
console.log(mes)
@@ -14,42 +16,38 @@ module.exports = {
},
'vmdebugger': function (browser) {
- loadTrace(browser)
- browser.click('#unload')
loadTraceNotFound(browser)
- browser.click('#unload')
+ .click('#unload')
+ loadTrace(browser)
+ .click('#unload')
panels(browser)
- browser.click('#unload')
+ .click('#unload')
slider(browser)
- browser.click('#unload')
+ .click('#unload')
stepping(browser)
- browser.click('#unload')
- sticker(browser)
- browser.end()
+ .click('#unload')
+ stepdetail(browser)
+ .end()
},
tearDown: sauce
}
-function loadTrace (browser) {
+function loadTraceNotFound (browser) {
browser
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942zcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .assert.containsText('#txhash', '
')
+ .assert.attributeContains('#txinfo .dropdownpanel button', 'data-clipboard-text', '')
return browser
}
-function loadTraceNotFound (browser) {
+function loadTrace (browser) {
browser
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .waitForElementVisible('#vmdebugger', 1000)
- .expect.element('#txhash').text.to.equal('0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
- browser.expect.element('#txfrom').text.to.equal('0x00101c5bfa3fc8bad02c9f5fd65b069306251915')
- browser.expect.element('#txto').text.to.equal('0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
- browser.expect.element('#txto').text.to.equal('0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
+ .assert.attributeContains('#txinfo .dropdownpanel button', 'data-clipboard-text', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
browser.click('#unload')
.waitForElementNotVisible('#vmdebugger', 1000)
return browser
@@ -60,22 +58,21 @@ function panels (browser) {
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .waitForElementVisible('#vmdebugger', 1000)
.click('#nextcall')
- .assertStack('0x\n0x60\n0x65\n0x38\n0x55\n0x60fe47b1')
- .assertStorageChanges('0x00 0x38')
- .assertCallData('0x60fe47b10000000000000000000000000000000000000000000000000000000000000038')
- .assertCallStack('0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
+ .assertStack(['0x', '0x60', '0x65', '0x38', '0x55', '0x60fe47b1'])
+ .assertStorageChanges(['0x000x38'])
+ .assertCallData(['0x60fe47b10000000000000000000000000000000000000000000000000000000000000038'])
+ .assertCallStack(['0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5'])
.assertStackValue(1, '0x60')
- .assertMemoryValue(6, '0x60\t\t60606040526040516020806045833981\t????R??Q????E?9?')
- .assertMemoryValue(7, '0x70\t\t01604052808051906020019091905050\t???R??Q???????PP')
- .assertMemoryValue(8, '0x80\t\t5b806001016000600050819055505b50\t?????????P??UP?P')
+ .assertMemoryValue(6, '0x6060606040526040516020806045833981\t????R??Q????E?9?')
+ .assertMemoryValue(7, '0x7001604052808051906020019091905050\t???R??Q???????PP')
+ .assertMemoryValue(8, '0x805b806001016000600050819055505b50\t?????????P??UP?P')
.click('#intoforward') // CREATE
- .assertStack('')
- .assertStorageChanges('')
- .assertMemory('')
- .assertCallData('0x0000000000000000000000000000000000000000000000000000000000000000000000000000006060606040526040516020806045833981016040528080519060200190919050505b806001016000600050819055')
- .assertCallStack('0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5\n(Contract Creation - Step 63)')
+ .assertStack(['Empty'])
+ .assertStorageChanges(['Empty'])
+ .assertMemory(['Empty'])
+ .assertCallData(['0x0000000000000000000000000000000000000000000000000000000000000000000000000000006060606040526040516020806045833981016040528080519060200190919050505b806001016000600050819055'])
+ .assertCallStack(['0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5', '(Contract Creation - Step 63)'])
return browser
}
@@ -84,7 +81,6 @@ function slider (browser) {
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .waitForElementVisible('#vmdebugger', 1000)
.click('#intoforward')
.click('#intoforward')
.click('#intoforward')
@@ -114,7 +110,6 @@ function stepping (browser) {
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .waitForElementVisible('#vmdebugger', 1000)
.click('#intoforward')
.click('#intoforward')
.assertCurrentSelectedItem('004 MSTORE')
@@ -136,12 +131,11 @@ function stepping (browser) {
return browser
}
-function sticker (browser) {
+function stepdetail (browser) {
browser
.clearValue('#txinput')
.setValue('#txinput', '0x20ef65b8b186ca942fcccd634f37074dde49b541c27994fc7596740ef44cfd51')
.click('#load')
- .waitForElementVisible('#vmdebugger', 1000)
.click('#intoforward')
.click('#intoforward')
.click('#intoforward')
@@ -161,13 +155,13 @@ function sticker (browser) {
.end()
})
*/
- .assertSticker('6', '6', '', '3', '84476', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
+ .assertStepDetail('6', '6', '', '3', '84476', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
.click('#nextcall')
- .assertSticker('63', '63', '', '32000', '79283', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
+ .assertStepDetail('63', '63', '', '32000', '79283', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
.click('#intoforward')
.click('#overforward')
- .assertSticker('108', '44', '', '0', '27145', '(Contract Creation - Step 63)')
+ .assertStepDetail('108', '44', '', '0', '27145', '(Contract Creation - Step 63)')
.click('#intoforward')
- .assertSticker('109', '64', '', '3', '25145', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
+ .assertStepDetail('109', '64', '', '3', '25145', '0x0d3a18d64dfe4f927832ab58d6451cecc4e517c5')
return browser
}
diff --git a/test/resources/insertTestWeb3.js b/test/resources/insertTestWeb3.js
new file mode 100644
index 0000000000..f475de6329
--- /dev/null
+++ b/test/resources/insertTestWeb3.js
@@ -0,0 +1,77 @@
+function loadJSON (url, callback) {
+ var xobj = new XMLHttpRequest()
+ xobj.overrideMimeType('application/json')
+ xobj.open('GET', url, true)
+ xobj.onreadystatechange = function () {
+ if (xobj.readyState == 4 && xobj.status == '200') {
+ callback(xobj.responseText)
+ }
+ }
+ xobj.send(null)
+}
+
+function loadTestWeb3 (data) {
+ var container = document.getElementById('app')
+ var vmdebugger = container.debugger
+ var uiTestweb3 = {}
+ uiTestweb3.eth = {}
+ uiTestweb3.debug = {}
+ uiTestweb3.eth.getCode = function (address, callback) {
+ if (callback) {
+ callback(null, data.testCodes[address])
+ } else {
+ return data.testCodes[address]
+ }
+ }
+
+ uiTestweb3.debug.traceTransaction = function (txHash, options, callback) {
+ callback(null, data.testTraces[txHash])
+ }
+
+ uiTestweb3.debug.storageAt = function (blockNumber, txIndex, address, callback) {
+ callback(null, {})
+ }
+
+ uiTestweb3.eth.getTransaction = function (txHash, callback) {
+ if (callback) {
+ callback(null, data.testTxs[txHash])
+ } else {
+ return data.testTxs[txHash]
+ }
+ }
+
+ uiTestweb3.eth.getTransactionFromBlock = function (blockNumber, txIndex, callback) {
+ if (callback) {
+ callback(null, data.testTxsByBlock[blockNumber + '-' + txIndex])
+ } else {
+ return data.testTxsByBlock[blockNumber + '-' + txIndex]
+ }
+ }
+
+ uiTestweb3.eth.getBlockNumber = function (callback) { callback(null, 'web3 modified for testing purposes :)') }
+
+ uiTestweb3.providers = { 'HttpProvider': function (url) {} }
+
+ uiTestweb3.setProvider = function (provider) {}
+
+ uiTestweb3.currentProvider = {host: 'web3 modified for testing purposes :)'}
+ vmdebugger.addProvider('TEST', uiTestweb3)
+ vmdebugger.switchProvider('TEST')
+}
+
+function waitForRemix (data) {
+ setTimeout(function () {
+ if (!document.getElementById('app').debugger) {
+ waitForRemix(data)
+ } else {
+ loadTestWeb3(data)
+ }
+ }, 500)
+}
+
+loadJSON('/test/resources/testWeb3.json', function (result) {
+ var data = JSON.parse(result)
+ waitForRemix(data)
+})
+
+