Merge pull request #437 from ethereum/callPlugin

call plugin using URL params  after page load
pull/5370/head
yann300 4 years ago committed by GitHub
commit 0d828c0baf
  1. 10
      apps/remix-ide-e2e/src/tests/workspace.test.ts
  2. 21
      apps/remix-ide/src/app.js

@ -5,7 +5,7 @@ import sauce from './sauce'
module.exports = {
before: function (browser: NightwatchBrowser, done: VoidFunction) {
init(browser, done, 'http://127.0.0.1:8080?plugins=solidity,udapp', false)
init(browser, done, 'http://127.0.0.1:8080?plugins=solidity,udapp&plugincall=fileManager//open//3_Ballot.sol', false)
},
'CheckSolidityActivatedAndUDapp': function (browser: NightwatchBrowser) {
@ -13,6 +13,14 @@ module.exports = {
.waitForElementVisible('#icon-panel', 10000)
.clickLaunchIcon('solidity')
.clickLaunchIcon('udapp')
},
'Editor should be focused on the 3_Ballot.sol': function (browser: NightwatchBrowser) {
browser
.pause(5000)
.getEditorValue((content) => {
browser.assert.ok(content.indexOf('contract Ballot {') != -1, 'content doesn\'t include Ballot contract')
})
.end()
},

@ -404,11 +404,21 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
// Set workspace after initial activation
if (Array.isArray(workspace)) {
try {
await appManager.activatePlugin(workspace)
} catch (e) {
console.error(e)
appManager.activatePlugin(workspace).then(() => {
// If plugins are loaded from the URL params, we focus on the last one.
if (pluginLoader.current === 'queryParams' && workspace.length > 0) menuicons.select(workspace[workspace.length - 1])
if (params.plugincall) {
const callDetails = params.plugincall.split('//')
if (callDetails.length > 1) {
toolTip(`initiating ${callDetails[0]} ...`)
// @todo(remove the timeout when activatePlugin is on 0.3.0)
setTimeout(() => {
appManager.call(...callDetails).catch(console.error)
}, 5000)
}
}
}).catch(console.error)
} else {
// activate solidity plugin
appManager.ensureActivated('solidity')
@ -419,9 +429,6 @@ Please make a backup of your contracts and start using http://remix.ethereum.org
const framingService = new FramingService(sidePanel, menuicons, mainview, this._components.resizeFeature)
framingService.start(params)
// If plugins are loaded from the URL params, we focus on the last one.
if (pluginLoader.current === 'queryParams' && Array.isArray(workspace) && workspace.length > 0) menuicons.select(workspace[workspace.length - 1])
// get the file list from the parent iframe
loadFileFromParent(fileManager)

Loading…
Cancel
Save