arkpar
10 years ago
14 changed files with 285 additions and 114 deletions
@ -0,0 +1,140 @@ |
|||
function test_defaultTransactionSequence() |
|||
{ |
|||
newProject(); |
|||
editContract( |
|||
"contract Contract {\r" + |
|||
" function Contract() {\r" + |
|||
" uint x = 69;\r" + |
|||
" uint y = 5;\r" + |
|||
" for (uint i = 0; i < y; ++i) {\r" + |
|||
" x += 42;\r" + |
|||
" z += x;\r" + |
|||
" }\r" + |
|||
" }\r" + |
|||
" uint z;\r" + |
|||
"}\r" |
|||
); |
|||
if (!ts.waitForSignal(mainApplication.clientModel, "runComplete()", 5000)) |
|||
fail("Error running transaction"); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.transactionModel, "count", 3); |
|||
} |
|||
|
|||
function test_transactionWithParameter() |
|||
{ |
|||
newProject(); |
|||
editContract( |
|||
"contract Contract {\r" + |
|||
" function setZ(uint256 x) {\r" + |
|||
" z = x;\r" + |
|||
" }\r" + |
|||
" function getZ() returns(uint256) {\r" + |
|||
" return z;\r" + |
|||
" }\r" + |
|||
" uint z;\r" + |
|||
"}\r" |
|||
); |
|||
mainApplication.projectModel.stateListModel.editState(0); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
var transactionDialog = mainApplication.projectModel.stateDialog.transactionDialog; |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("setZ"); |
|||
clickElement(transactionDialog, 140, 300); |
|||
ts.typeString("442", transactionDialog); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("getZ"); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.acceptAndClose(); |
|||
mainApplication.mainContent.startQuickDebugging(); |
|||
if (!ts.waitForSignal(mainApplication.clientModel, "runComplete()", 5000)) |
|||
fail("Error running transaction"); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.transactionModel, "count", 5); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.transactionModel.get(4), "returned", "(442)"); |
|||
} |
|||
|
|||
function test_constructorParameters() |
|||
{ |
|||
newProject(); |
|||
editContract( |
|||
"contract Contract {\r" + |
|||
" function Contract(uint256 x) {\r" + |
|||
" z = x;\r" + |
|||
" }\r" + |
|||
" function getZ() returns(uint256) {\r" + |
|||
" return z;\r" + |
|||
" }\r" + |
|||
" uint z;\r" + |
|||
"}\r" |
|||
); |
|||
mainApplication.projectModel.stateListModel.editState(0); |
|||
mainApplication.projectModel.stateDialog.model.editTransaction(2); |
|||
var transactionDialog = mainApplication.projectModel.stateDialog.transactionDialog; |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
clickElement(transactionDialog, 140, 300); |
|||
ts.typeString("442", transactionDialog); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("getZ"); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.acceptAndClose(); |
|||
mainApplication.mainContent.startQuickDebugging(); |
|||
if (!ts.waitForSignal(mainApplication.clientModel, "runComplete()", 5000)) |
|||
fail("Error running transaction"); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.transactionModel, "count", 4); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.transactionModel.get(3), "returned", "(442)"); |
|||
} |
|||
|
|||
function test_arrayParametersAndStorage() |
|||
{ |
|||
newProject(); |
|||
editContract( |
|||
" contract ArrayTest {\r" + |
|||
" function setM(uint256[] x) external\r" + |
|||
" {\r" + |
|||
" m = x;\r" + |
|||
" s = 5;\r" + |
|||
" }\r" + |
|||
" \r" + |
|||
" function setMV(uint72[5] x) external\r" + |
|||
" {\r" + |
|||
" mv = x;\r" + |
|||
" s = 42;\r" + |
|||
" }\r" + |
|||
" \r" + |
|||
" uint256[] m;\r" + |
|||
" uint72[5] mv;\r" + |
|||
" uint256 s;\r" + |
|||
" }\r"); |
|||
|
|||
mainApplication.projectModel.stateListModel.editState(0); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
var transactionDialog = mainApplication.projectModel.stateDialog.transactionDialog; |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("setM"); |
|||
clickElement(transactionDialog, 140, 300); |
|||
ts.typeString("4,5,6,2,10", transactionDialog); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("setMV"); |
|||
clickElement(transactionDialog, 140, 300); |
|||
ts.typeString("13,35,1,4", transactionDialog); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.acceptAndClose(); |
|||
mainApplication.mainContent.startQuickDebugging(); |
|||
if (!ts.waitForSignal(mainApplication.clientModel, "debugDataReady(QObject*)", 5000)) |
|||
fail("Error running transaction"); |
|||
//debug setM
|
|||
mainApplication.clientModel.debugRecord(3); |
|||
mainApplication.mainContent.rightPane.debugSlider.value = mainApplication.mainContent.rightPane.debugSlider.maximumValue; |
|||
tryCompare(mainApplication.mainContent.rightPane.solStorage.item.value, "m", ["4","5","6","2","10"]); |
|||
tryCompare(mainApplication.mainContent.rightPane.solStorage.item.value, "s", "5"); |
|||
//debug setMV
|
|||
mainApplication.clientModel.debugRecord(4); |
|||
mainApplication.mainContent.rightPane.debugSlider.value = mainApplication.mainContent.rightPane.debugSlider.maximumValue - 1; |
|||
tryCompare(mainApplication.mainContent.rightPane.solStorage.item.value, "mv", ["13","35","1","4","0"]); |
|||
tryCompare(mainApplication.mainContent.rightPane.solStorage.item.value, "s", "42"); |
|||
tryCompare(mainApplication.mainContent.rightPane.solCallStack.listModel, 0, "setMV"); |
|||
} |
@ -0,0 +1,71 @@ |
|||
//Test case to cover Mix tutorial
|
|||
|
|||
function test_tutorial() |
|||
{ |
|||
newProject(); |
|||
editContract( |
|||
"contract Rating {\r" + |
|||
" function setRating(bytes32 _key, uint256 _value) {\r" + |
|||
" ratings[_key] = _value;\r" + |
|||
" }\r" + |
|||
" mapping (bytes32 => uint256) public ratings;\r" + |
|||
"}\r" |
|||
); |
|||
editHtml( |
|||
"<!doctype>\r" + |
|||
"<html>\r" + |
|||
"<head>\r" + |
|||
"<script type='text/javascript'>\r" + |
|||
"function getRating() {\r" + |
|||
" var param = document.getElementById('query').value;\r" + |
|||
" var res = contracts['Rating'].contract.ratings(param);\r" + |
|||
" document.getElementById('queryres').innerText = res;\r" + |
|||
"}\r" + |
|||
"function setRating() {\r" + |
|||
" var key = document.getElementById('key').value;\r" + |
|||
" var value = parseInt(document.getElementById('value').value);\r" + |
|||
" var res = contracts['Rating'].contract.setRating(key, value);\r" + |
|||
"}\r" + |
|||
"</script>\r" + |
|||
"</head>\r" + |
|||
"<body bgcolor='#E6E6FA'>\r" + |
|||
" <h1>Ratings</h1>\r" + |
|||
" <div>\r" + |
|||
" Store:\r" + |
|||
" <input type='string' id='key'>\r" + |
|||
" <input type='number' id='value'>\r" + |
|||
" <button onclick='setRating()'>Save</button>\r" + |
|||
" </div>\r" + |
|||
" <div>\r" + |
|||
" Query:\r" + |
|||
" <input type='string' id='query' onkeyup='getRating()'>\r" + |
|||
" <div id='queryres'></div>\r" + |
|||
" </div>\r" + |
|||
"</body>\r" + |
|||
"</html>\r" |
|||
); |
|||
|
|||
mainApplication.projectModel.stateListModel.editState(0); |
|||
mainApplication.projectModel.stateDialog.model.addTransaction(); |
|||
var transactionDialog = mainApplication.projectModel.stateDialog.transactionDialog; |
|||
ts.waitForRendering(transactionDialog, 3000); |
|||
transactionDialog.selectFunction("setRating"); |
|||
clickElement(transactionDialog, 180, 310); |
|||
ts.typeString("Titanic", transactionDialog); |
|||
clickElement(transactionDialog, 180, 330); |
|||
ts.typeString("2", transactionDialog); |
|||
transactionDialog.acceptAndClose(); |
|||
mainApplication.projectModel.stateDialog.acceptAndClose(); |
|||
mainApplication.mainContent.startQuickDebugging(); |
|||
if (!ts.waitForSignal(mainApplication.clientModel, "debugDataReady(QObject*)", 5000)) |
|||
fail("Error running transaction"); |
|||
wait(1); |
|||
clickElement(mainApplication.mainContent.webView.webView, 1, 1); |
|||
ts.typeString("\t\t\t\t"); |
|||
ts.typeString("Titanic"); |
|||
tryCompare(mainApplication.mainContent.rightPane.transactionLog.callModel, "count", 8); //wait for 8 calls
|
|||
mainApplication.mainContent.webView.getContent(); |
|||
ts.waitForSignal(mainApplication.mainContent.webView, "webContentReady()", 5000); |
|||
var body = mainApplication.mainContent.webView.webContent; |
|||
verify(body.indexOf("<div id=\"queryres\">2</div>") != -1, "Web content not updated") |
|||
} |
Loading…
Reference in new issue