'use strict' var contractHelper = require('../helpers/contracts') var init = require('../helpers/init') var sauce = require('./sauce') var sources = { 'sources': { 'browser/Untitled.sol': `pragma solidity ^0.4.0; contract TestContract { function f() returns (uint) { return 8; } function g() returns (uint, string, bool, uint) { uint payment = 345; bool payed = true; string memory comment = "comment_comment_"; uint month = 4; return (payment, comment, payed, month); } }` } } module.exports = { before: function (browser, done) { init(browser, done) }, '@sources': function () { return sources }, 'Compiling': function (browser) { runTests(browser) }, tearDown: sauce } function runTests (browser) { browser .waitForElementVisible('.newFile', 10000) .click('.compileView') contractHelper.testContracts(browser, sources.sources['browser/Untitled.sol'], ['browser/Untitled.sol:TestContract'], function () { browser.click('.runView') .click('#runTabView div[class^="create"]') .waitForElementPresent('.instance button[title="f - transact (not payable)"]') .click('.instance button[title="f - transact (not payable)"]') .waitForElementPresent('#editor-container div[class^="terminal"] span[id="tx0xa178c603400a184ce5fedbcfab392d9b77822f6ffa7facdec693aded214523bc"]') .assert.containsText('#editor-container div[class^="terminal"] span[id="tx0xa178c603400a184ce5fedbcfab392d9b77822f6ffa7facdec693aded214523bc"]', '[vm] from:0xca3...a733c, to:browser/Untitled.sol:TestContract.f() 0x692...77b3a, value:0 wei, data:0x261...21ff0, 0 logs, hash:0xa17...523bc') .click('#editor-container div[class^="terminal"] span[id="tx0xa178c603400a184ce5fedbcfab392d9b77822f6ffa7facdec693aded214523bc"] button[class^="details"]') .assert.containsText('#editor-container div[class^="terminal"] span[id="tx0xa178c603400a184ce5fedbcfab392d9b77822f6ffa7facdec693aded214523bc"] table[class^="txTable"] #decodedoutput', `{ "0": "uint256: 8" }`) .click('.instance button[title="g - transact (not payable)"]') .waitForElementPresent('#editor-container div[class^="terminal"] span[id="tx0xb1532162e2e31397dc1e07ed0a1cf08f728e9b4487c6f9ed79d2f39410c92781"]') .click('#editor-container div[class^="terminal"] span[id="tx0xb1532162e2e31397dc1e07ed0a1cf08f728e9b4487c6f9ed79d2f39410c92781"] button[class^="details"]') .assert.containsText('#editor-container div[class^="terminal"] span[id="tx0xb1532162e2e31397dc1e07ed0a1cf08f728e9b4487c6f9ed79d2f39410c92781"] table[class^="txTable"] #decodedoutput', `{ "0": "uint256: 345", "1": "string: comment_comment_", "2": "bool: true", "3": "uint256: 4" }`) .end() }) }