Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
dac60a5a
Commit
dac60a5a
authored
Jun 20, 2019
by
yann300
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move helpers to nightwatch commands
parent
f4d9507c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
557 additions
and
0 deletions
+557
-0
addAtAddressInstance.js
test-browser/commands/addAtAddressInstance.js
+33
-0
addFile.js
test-browser/commands/addFile.js
+35
-0
checkTerminalFilter.js
test-browser/commands/checkTerminalFilter.js
+35
-0
checkVariableDebug.js
test-browser/commands/checkVariableDebug.js
+38
-0
createContract.js
test-browser/commands/createContract.js
+22
-0
getAddressAtPositionInRunModule.js
test-browser/commands/getAddressAtPositionInRunModule.js
+25
-0
gotoVmTraceStep.js
test-browser/commands/gotoVmTraceStep.js
+38
-0
removeFile.js
test-browser/commands/removeFile.js
+44
-0
renameFile.js
test-browser/commands/renameFile.js
+53
-0
selectContract.js
test-browser/commands/selectContract.js
+22
-0
signMessage.js
test-browser/commands/signMessage.js
+41
-0
switchFile.js
test-browser/commands/switchFile.js
+24
-0
testConstantFunction.js
test-browser/commands/testConstantFunction.js
+35
-0
testContract.js
test-browser/commands/testContract.js
+27
-0
verifyCallReturnValue.js
test-browser/commands/verifyCallReturnValue.js
+33
-0
verifyContract.js
test-browser/commands/verifyContract.js
+52
-0
contracts.js
test-browser/helpers/contracts.js
+0
-0
No files found.
test-browser/commands/addAtAddressInstance.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
addAtAddressInstance
extends
EventEmitter
{
command
(
address
,
isValidFormat
,
isValidChecksum
)
{
this
.
api
.
perform
((
done
)
=>
{
addInstance
(
this
.
api
,
address
,
isValidFormat
,
isValidChecksum
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
addInstance
(
browser
,
address
,
isValidFormat
,
isValidChecksum
,
callback
)
{
browser
.
clickLaunchIcon
(
'run'
).
clearValue
(
'.ataddressinput'
).
setValue
(
'.ataddressinput'
,
address
,
function
()
{
browser
.
click
(
'div[class^="atAddress"]'
)
.
execute
(
function
()
{
var
ret
=
document
.
querySelector
(
'div[class^="modal-body"] div'
).
innerHTML
document
.
querySelector
(
'#modal-footer-ok'
).
click
()
return
ret
},
[],
function
(
result
)
{
if
(
!
isValidFormat
)
{
browser
.
assert
.
equal
(
result
.
value
,
'Invalid address.'
)
}
else
if
(
!
isValidChecksum
)
{
browser
.
assert
.
equal
(
result
.
value
,
'Invalid checksum address.'
)
}
callback
()
})
})
}
module
.
exports
=
addAtAddressInstance
test-browser/commands/addFile.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
AddFile
extends
EventEmitter
{
command
(
name
,
content
)
{
this
.
api
.
perform
((
done
)
=>
{
addFile
(
this
.
api
,
name
,
content
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
addFile
(
browser
,
name
,
content
,
done
)
{
browser
.
clickLaunchIcon
(
'run'
).
clickLaunchIcon
(
'fileExplorers'
).
click
(
'.newFile'
)
.
perform
((
client
,
done
)
=>
{
browser
.
execute
(
function
(
fileName
)
{
if
(
fileName
!==
'Untitled.sol'
)
{
document
.
querySelector
(
'#modal-dialog #prompt_text'
).
setAttribute
(
'value'
,
fileName
)
}
document
.
querySelector
(
'#modal-footer-ok'
).
click
()
},
[
name
],
function
(
result
)
{
console
.
log
(
result
)
done
()
})
})
.
setEditorValue
(
content
.
content
)
.
pause
(
1000
)
.
perform
(
function
()
{
done
()
})
}
module
.
exports
=
AddFile
test-browser/commands/checkTerminalFilter.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
CheckTerminalFilter
extends
EventEmitter
{
command
(
filter
,
test
)
{
this
.
api
.
perform
((
done
)
=>
{
checkFilter
(
this
.
api
,
filter
,
test
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
checkFilter
(
browser
,
filter
,
test
,
done
)
{
if
(
browser
.
options
.
desiredCapabilities
.
browserName
===
'chrome'
)
{
// nightwatch deos not handle well that part.... works locally
done
()
return
}
var
filterClass
=
'#editor-container div[class^="search"] input[class^="filter"]'
browser
.
setValue
(
filterClass
,
filter
,
function
()
{
browser
.
execute
(
function
()
{
return
document
.
querySelector
(
'#editor-container div[class^="journal"]'
).
innerHTML
===
test
},
[],
function
(
result
)
{
browser
.
clearValue
(
filterClass
).
setValue
(
filterClass
,
''
,
function
()
{
if
(
!
result
.
value
)
{
browser
.
assert
.
fail
(
'useFilter on '
+
filter
+
' '
+
test
,
'info about error'
,
''
)
}
done
()
})
})
})
}
module
.
exports
=
CheckTerminalFilter
test-browser/commands/checkVariableDebug.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
const
deepequal
=
require
(
'deep-equal'
)
class
CreateContract
extends
EventEmitter
{
command
(
id
,
debugValue
)
{
this
.
api
.
perform
((
done
)
=>
{
checkDebug
(
this
.
api
,
id
,
debugValue
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
checkDebug
(
browser
,
id
,
debugValue
,
done
)
{
// id is soliditylocals or soliditystate
browser
.
execute
(
function
(
id
)
{
return
document
.
querySelector
(
'#'
+
id
+
' .dropdownrawcontent'
).
innerText
},
[
id
],
function
(
result
)
{
console
.
log
(
id
+
' '
+
result
.
value
)
var
value
try
{
value
=
JSON
.
parse
(
result
.
value
)
}
catch
(
e
)
{
browser
.
assert
.
fail
(
'cant parse solidity state'
,
e
.
message
,
''
)
done
()
return
}
var
equal
=
deepequal
(
debugValue
,
value
)
if
(
!
equal
)
{
browser
.
assert
.
fail
(
'checkDebug on '
+
id
,
'info about error'
,
''
)
}
done
()
})
}
module
.
exports
=
CreateContract
test-browser/commands/createContract.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
CreateContract
extends
EventEmitter
{
command
(
inputParams
)
{
this
.
api
.
perform
((
done
)
=>
{
createContract
(
this
.
api
,
inputParams
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
createContract
(
browser
,
inputParams
,
callback
)
{
browser
.
clickLaunchIcon
(
'settings'
).
clickLaunchIcon
(
'run'
)
.
setValue
(
'div[class^="contractActionsContainerSingle"] input'
,
inputParams
,
function
()
{
browser
.
click
(
'#runTabView button[class^="instanceButton"]'
).
pause
(
500
).
perform
(
function
()
{
callback
()
})
})
}
module
.
exports
=
CreateContract
test-browser/commands/getAddressAtPositionInRunModule.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
GetAddressAtPositionInRunModule
extends
EventEmitter
{
command
(
index
,
cb
)
{
this
.
api
.
perform
((
done
)
=>
{
getAddressAtPosition
(
this
.
api
,
index
,
(
pos
)
=>
{
cb
(
pos
)
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
getAddressAtPosition
(
browser
,
index
,
callback
)
{
index
=
index
+
2
browser
.
execute
(
function
(
index
)
{
return
document
.
querySelector
(
'.instance:nth-of-type('
+
index
+
')'
).
getAttribute
(
'id'
).
replace
(
'instance'
,
''
)
},
[
index
],
function
(
result
)
{
callback
(
result
.
value
)
})
}
module
.
exports
=
GetAddressAtPositionInRunModule
test-browser/commands/gotoVmTraceStep.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
GoToVmTraceStep
extends
EventEmitter
{
command
(
step
,
incr
)
{
this
.
api
.
perform
((
done
)
=>
{
goToVMtraceStep
(
this
.
api
,
step
,
incr
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
goToVMtraceStep
(
browser
,
step
,
incr
,
done
)
{
if
(
!
incr
)
incr
=
0
browser
.
execute
(
function
(
step
)
{
return
document
.
querySelector
(
'#stepdetail'
).
innerHTML
},
[
step
],
function
(
result
)
{
if
(
result
.
value
.
indexOf
(
'vm trace step: '
+
step
)
!==
-
1
)
{
done
()
}
else
if
(
incr
>
1000
)
{
console
.
log
(
result
)
browser
.
assert
.
fail
(
'goToVMtraceStep fails'
,
'info about error'
,
''
)
done
()
}
else
{
incr
++
browser
.
click
(
'#intoforward'
)
.
perform
(()
=>
{
setTimeout
(()
=>
{
goToVMtraceStep
(
browser
,
step
,
done
,
incr
)
},
200
)
})
}
})
}
module
.
exports
=
GoToVmTraceStep
test-browser/commands/removeFile.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
RemoveFile
extends
EventEmitter
{
command
(
path
)
{
this
.
api
.
perform
((
done
)
=>
{
removeFile
(
this
.
api
,
path
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
removeFile
(
browser
,
path
,
done
)
{
browser
.
execute
(
function
(
path
,
value
)
{
function
contextMenuClick
(
element
)
{
var
evt
=
element
.
ownerDocument
.
createEvent
(
'MouseEvents'
)
var
RIGHT_CLICK_BUTTON_CODE
=
2
// the same for FF and IE
evt
.
initMouseEvent
(
'contextmenu'
,
true
,
true
,
element
.
ownerDocument
.
defaultView
,
1
,
0
,
0
,
0
,
0
,
false
,
false
,
false
,
false
,
RIGHT_CLICK_BUTTON_CODE
,
null
)
if
(
document
.
createEventObject
)
{
// dispatch for IE
return
element
.
fireEvent
(
'onclick'
,
evt
)
}
else
{
// dispatch for firefox + others
return
!
element
.
dispatchEvent
(
evt
)
}
}
contextMenuClick
(
document
.
querySelector
(
'[data-path="'
+
path
+
'"]'
))
},
[
path
],
function
(
result
)
{
browser
.
click
(
'#menuitemdelete'
)
.
pause
(
500
)
.
click
(
'#modal-footer-ok'
)
.
waitForElementNotPresent
(
'[data-path="'
+
path
+
'"]'
)
.
perform
(()
=>
{
done
()
})
})
}
module
.
exports
=
RemoveFile
test-browser/commands/renameFile.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
RenameFile
extends
EventEmitter
{
command
(
path
,
newFileName
,
renamedPath
)
{
this
.
api
.
perform
((
done
)
=>
{
renameFile
(
this
.
api
,
path
,
newFileName
,
renamedPath
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
renameFile
(
browser
,
path
,
newFileName
,
renamedPath
,
done
)
{
browser
.
execute
(
function
(
path
)
{
function
contextMenuClick
(
element
)
{
var
evt
=
element
.
ownerDocument
.
createEvent
(
'MouseEvents'
)
var
RIGHT_CLICK_BUTTON_CODE
=
2
// the same for FF and IE
evt
.
initMouseEvent
(
'contextmenu'
,
true
,
true
,
element
.
ownerDocument
.
defaultView
,
1
,
0
,
0
,
0
,
0
,
false
,
false
,
false
,
false
,
RIGHT_CLICK_BUTTON_CODE
,
null
)
if
(
document
.
createEventObject
)
{
// dispatch for IE
return
element
.
fireEvent
(
'onclick'
,
evt
)
}
else
{
// dispatch for firefox + others
return
!
element
.
dispatchEvent
(
evt
)
}
}
contextMenuClick
(
document
.
querySelector
(
'[data-path="'
+
path
+
'"]'
))
},
[
path
],
function
(
result
)
{
browser
.
click
(
'#menuitemrename'
)
.
perform
((
client
,
doneSetValue
)
=>
{
browser
.
execute
(
function
(
path
,
addvalue
)
{
document
.
querySelector
(
'[data-path="'
+
path
+
'"]'
).
innerHTML
=
addvalue
},
[
path
,
newFileName
],
()
=>
{
doneSetValue
()
})
})
.
click
(
'body'
)
// blur
.
pause
(
500
)
.
click
(
'#modal-footer-ok'
)
.
waitForElementNotPresent
(
'[data-path="'
+
path
+
'"]'
)
.
waitForElementPresent
(
'[data-path="'
+
renamedPath
+
'"]'
)
.
perform
(()
=>
{
done
()
})
})
}
module
.
exports
=
RenameFile
test-browser/commands/selectContract.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
SelectContract
extends
EventEmitter
{
command
(
contractName
)
{
this
.
api
.
perform
((
done
)
=>
{
selectContract
(
this
.
api
,
contractName
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
selectContract
(
browser
,
contractName
,
callback
)
{
browser
.
clickLaunchIcon
(
'settings'
).
clickLaunchIcon
(
'run'
)
.
setValue
(
'#runTabView select[class^="contractNames"]'
,
contractName
).
perform
(()
=>
{
callback
()
})
}
module
.
exports
=
SelectContract
test-browser/commands/signMessage.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
SelectContract
extends
EventEmitter
{
command
(
msg
)
{
this
.
api
.
perform
((
done
)
=>
{
signMsg
(
this
.
api
,
msg
,
(
hash
,
signature
)
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
signMsg
(
browser
,
msg
,
cb
)
{
let
hash
,
signature
browser
.
waitForElementPresent
(
'i[id="remixRunSignMsg"]'
)
.
click
(
'i[id="remixRunSignMsg"]'
)
.
waitForElementPresent
(
'textarea[id="prompt_text"]'
)
.
setValue
(
'textarea[id="prompt_text"]'
,
msg
,
()
=>
{
browser
.
modalFooterOKClick
().
perform
(
(
client
,
done
)
=>
{
browser
.
getText
(
'span[id="remixRunSignMsgHash"]'
,
(
v
)
=>
{
hash
=
v
;
done
()
})
}
)
.
perform
(
(
client
,
done
)
=>
{
browser
.
getText
(
'span[id="remixRunSignMsgSignature"]'
,
(
v
)
=>
{
signature
=
v
;
done
()
})
}
)
.
modalFooterOKClick
()
.
perform
(
()
=>
{
cb
(
hash
,
signature
)
}
)
})
}
module
.
exports
=
SelectContract
test-browser/commands/switchFile.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
SwitchFile
extends
EventEmitter
{
command
(
contractName
)
{
this
.
api
.
perform
((
done
)
=>
{
switchFile
(
this
.
api
,
contractName
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
switchFile
(
browser
,
name
,
done
)
{
browser
.
clickLaunchIcon
(
'settings'
).
clickLaunchIcon
(
'fileExplorers'
)
.
click
(
'li[key="'
+
name
+
'"]'
)
.
pause
(
2000
)
.
perform
(()
=>
{
done
()
})
}
module
.
exports
=
SwitchFile
test-browser/commands/testConstantFunction.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
TestConstantFunction
extends
EventEmitter
{
command
(
address
,
fnFullName
,
expectedInput
,
expectedOutput
)
{
this
.
api
.
perform
((
done
)
=>
{
testConstantFunction
(
this
.
api
,
address
,
fnFullName
,
expectedInput
,
expectedOutput
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
testConstantFunction
(
browser
,
address
,
fnFullName
,
expectedInput
,
expectedOutput
,
cb
)
{
browser
.
waitForElementPresent
(
'.instance button[title="'
+
fnFullName
+
'"]'
).
perform
(
function
(
client
,
done
)
{
client
.
execute
(
function
()
{
document
.
querySelector
(
'#runTabView'
).
scrollTop
=
document
.
querySelector
(
'#runTabView'
).
scrollHeight
},
[],
function
()
{
if
(
expectedInput
)
{
client
.
setValue
(
'#runTabView input[title="'
+
expectedInput
.
types
+
'"]'
,
expectedInput
.
values
,
function
()
{})
}
done
()
})
})
.
click
(
'.instance button[title="'
+
fnFullName
+
'"]'
)
.
pause
(
1000
)
.
waitForElementPresent
(
'#instance'
+
address
+
' div[class^="contractActionsContainer"] div[class^="value"]'
)
.
scrollInto
(
'#instance'
+
address
+
' div[class^="contractActionsContainer"] div[class^="value"]'
)
.
assert
.
containsText
(
'#instance'
+
address
+
' div[class^="contractActionsContainer"] div[class^="value"]'
,
expectedOutput
).
perform
(()
=>
{
cb
()
})
}
module
.
exports
=
TestConstantFunction
test-browser/commands/testContract.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
TestContract
extends
EventEmitter
{
command
(
fileName
,
contractCode
,
compiledContractNames
)
{
this
.
api
.
perform
((
done
)
=>
{
testContracts
(
this
.
api
,
fileName
,
contractCode
,
compiledContractNames
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
testContracts
(
browser
,
fileName
,
contractCode
,
compiledContractNames
,
callback
)
{
browser
.
clickLaunchIcon
(
'solidity'
)
.
clearValue
(
'#input textarea'
)
.
addFile
(
fileName
,
contractCode
)
.
pause
(
1000
)
.
verifyContract
(
compiledContractNames
)
.
perform
(()
=>
{
callback
()
})
}
module
.
exports
=
TestContract
test-browser/commands/verifyCallReturnValue.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
VerifyCallReturnValue
extends
EventEmitter
{
command
(
address
,
checks
)
{
this
.
api
.
perform
((
done
)
=>
{
verifyCallReturnValue
(
this
.
api
,
address
,
checks
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
verifyCallReturnValue
(
browser
,
address
,
checks
,
done
)
{
browser
.
execute
(
function
(
address
)
{
var
nodes
=
document
.
querySelectorAll
(
'#instance'
+
address
+
' div[class^="contractActionsContainer"] div[class^="value"]'
)
var
ret
=
[]
for
(
var
k
=
0
;
k
<
nodes
.
length
;
k
++
)
{
var
text
=
nodes
[
k
].
innerText
?
nodes
[
k
].
innerText
:
nodes
[
k
].
textContent
ret
.
push
(
text
.
replace
(
'
\
n'
,
''
))
}
return
ret
},
[
address
],
function
(
result
)
{
console
.
log
(
'verifyCallReturnValue'
,
result
)
for
(
var
k
in
checks
)
{
browser
.
assert
.
equal
(
result
.
value
[
k
],
checks
[
k
])
}
done
()
})
}
module
.
exports
=
VerifyCallReturnValue
test-browser/commands/verifyContract.js
0 → 100644
View file @
dac60a5a
const
EventEmitter
=
require
(
'events'
)
class
VerifyContract
extends
EventEmitter
{
command
(
compiledContractNames
)
{
this
.
api
.
perform
((
done
)
=>
{
verifyContract
(
this
.
api
,
compiledContractNames
,
()
=>
{
done
()
this
.
emit
(
'complete'
)
})
})
return
this
}
}
function
getCompiledContracts
(
browser
,
callback
)
{
browser
.
clickLaunchIcon
(
'solidity'
).
execute
(
function
()
{
var
contracts
=
document
.
querySelectorAll
(
'#compileTabView select option'
)
if
(
!
contracts
)
{
return
null
}
else
{
var
ret
=
[]
for
(
var
c
=
0
;
c
<
contracts
.
length
;
c
++
)
{
ret
.
push
(
contracts
[
c
].
value
)
}
return
ret
}
},
[],
function
(
result
)
{
callback
(
result
)
})
}
function
verifyContract
(
browser
,
compiledContractNames
,
callback
)
{
getCompiledContracts
(
browser
,
(
result
)
=>
{
if
(
result
.
value
)
{
for
(
var
contract
in
compiledContractNames
)
{
console
.
log
(
' - '
+
compiledContractNames
[
contract
])
if
(
result
.
value
.
indexOf
(
compiledContractNames
[
contract
])
===
-
1
)
{
browser
.
assert
.
fail
(
'compiled contract '
+
compiledContractNames
+
' not found'
,
'info about error'
,
''
)
browser
.
end
()
return
}
}
}
else
{
browser
.
assert
.
fail
(
'compiled contract '
+
compiledContractNames
+
' not found - none found'
,
'info about error'
,
''
)
browser
.
end
()
}
console
.
log
(
'contracts all found '
+
compiledContractNames
)
callback
()
})
}
module
.
exports
=
VerifyContract
test-browser/helpers/contracts.js
deleted
100644 → 0
View file @
f4d9507c
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment