Merge pull request #471 from ethereum/fix#469

Make sure contents accessed by their external URL are properly handled
pull/478/head
David Disu 4 years ago committed by GitHub
commit e668b89cdf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 28
      apps/remix-ide-e2e/src/tests/debugger.test.ts
  2. 2
      apps/remix-ide/src/app/files/fileProvider.js

@ -72,7 +72,28 @@ module.exports = {
.click('*[data-id="buttonNavigatorJumpNextBreakpoint"]')
.pause(2000)
.assert.containsText('*[data-id="stepdetail"]', 'vm trace step:\n184')
.assert.containsText('*[data-id="stepdetail"]', 'execution step:\n184')
.assert.containsText('*[data-id="stepdetail"]', 'execution step:\n184')
},
'Should display solidity imported code while debugging github import': function (browser: NightwatchBrowser) {
browser
.clickLaunchIcon('solidity')
.setSolidityCompilerVersion('soljson-v0.6.12+commit.27d51765.js')
.clickLaunchIcon('udapp')
.testContracts('externalImport.sol', sources[1]['browser/externalImport.sol'], ['ERC20'])
.selectContract('ERC20')
.createContract('"tokenName", "symbol"')
.debugTransaction(2)
.pause(2000)
.goToVMTraceStep(10)
.getEditorValue((content) => {
browser.assert.ok(content.indexOf(`constructor (string memory name, string memory symbol) public {
_name = name;
_symbol = symbol;
_decimals = 18;
}`) != -1,
'current displayed content is not from the ERC20 source code')
})
.end()
},
@ -112,5 +133,10 @@ const sources = [
}
`
}
},
{
'browser/externalImport.sol': {content: 'import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; contract test7 {}'}
}
]

@ -70,6 +70,7 @@ class FileProvider {
}
_exists (path) {
path = this.getPathFromUrl(path) || path // ensure we actually use the normalized path from here
var unprefixedpath = this.removePrefix(path)
return path === this.type ? true : window.remixFileSystem.existsSync(unprefixedpath)
}
@ -148,6 +149,7 @@ class FileProvider {
}
isFile (path) {
path = this.getPathFromUrl(path) || path // ensure we actually use the normalized path from here
path = this.removePrefix(path)
return window.remixFileSystem.statSync(path).isFile()
}

Loading…
Cancel
Save