From 58a9598243623519de849fa8031b341960407cfb Mon Sep 17 00:00:00 2001 From: ioedeveloper Date: Mon, 22 Jun 2020 14:03:53 +0100 Subject: [PATCH] Filemanager external api e2e tests --- package.json | 1 + src/app/files/fileManager.js | 2 +- test-browser/tests/fileManager_api.test.js | 143 +++++++++++++++++++++ 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 test-browser/tests/fileManager_api.test.js diff --git a/package.json b/package.json index 56d94c86a8..d023f34f3e 100644 --- a/package.json +++ b/package.json @@ -187,6 +187,7 @@ "nightwatch_local_editor": "nightwatch ./test-browser/tests/editor.test.js --config nightwatch.js --env chrome ", "nightwatch_local_compiler": "nightwatch ./test-browser/tests/compiler_api.test.js --config nightwatch.js --env chrome ", "nightwatch_local_txListener": "nightwatch ./test-browser/tests/txListener.test.js --config nightwatch.js --env chrome ", + "nightwatch_local_fileManager": "nightwatch ./test-browser/tests/fileManager_api.test.js --config nightwatch.js --env chrome ", "nightwatch_local_runAndDeploy": "nightwatch ./test-browser/tests/runAndDeploy.js --config nightwatch.js --env chrome-runAndDeploy ", "onchange": "onchange build/app.js -- npm-run-all lint", "prepublish": "mkdirp build; npm-run-all -ls downloadsolc_root build", diff --git a/src/app/files/fileManager.js b/src/app/files/fileManager.js index fe74117a3a..12bd9f32da 100644 --- a/src/app/files/fileManager.js +++ b/src/app/files/fileManager.js @@ -23,7 +23,7 @@ const profile = { icon: 'assets/img/fileManager.webp', permission: true, version: packageJson.version, - methods: ['file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'rename', 'readdir', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile'], + methods: ['file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'rename', 'mkdir', 'readdir', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile'], kind: 'file-system' } const errorMsg = { diff --git a/test-browser/tests/fileManager_api.test.js b/test-browser/tests/fileManager_api.test.js new file mode 100644 index 0000000000..62b4340c6d --- /dev/null +++ b/test-browser/tests/fileManager_api.test.js @@ -0,0 +1,143 @@ +'use strict' +var init = require('../helpers/init') +var sauce = require('./sauce') + +module.exports = { + before: function (browser, done) { + init(browser, done) + }, + + 'Should execute `file` api from file manager external api': function (browser) { + browser + .addFile('file.js', { content: executeFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('browser/file.js') + }, + + 'Should execute `exists` api from file manager external api': function (browser) { + browser + .addFile('exists.js', { content: executeExists }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalChildIncludes('browser/exists.js true') + .journalChildIncludes('browser/non-exists.js false') + }, + + 'Should execute `open` api from file manager external api': function (browser) { + browser + .addFile('open.js', { content: executeOpen }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('browser/3_Ballot.sol') + }, + + 'Should execute `writeFile` api from file manager external api': function (browser) { + browser + .addFile('writeFile.js', { content: executeWriteFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .openFile('browser/new_contract.sol') + .assert.containsText('[data-id="editorInput"]', 'pragma solidity ^0.6.0') + }, + + 'Should execute `readFile` api from file manager external api': function (browser) { + browser + .addFile('readFile.js', { content: executeReadFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('pragma solidity ^0.6.0') + }, + + 'Should execute `copyFile` api from file manager external api': function (browser) { + browser + .addFile('copyFile.js', { content: executeCopyFile }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .journalLastChildIncludes('pragma solidity >=0.2.0 <0.7.0;') + }, + + 'Should execute `rename` api from file manager external api': function (browser) { + browser + .addFile('renameFile.js', { content: executeRename }) + .executeScript(`remix.exeCurrent()`) + .pause(2000) + .pause(100000) + // .journalLastChildIncludes('pragma solidity >=0.2.0 <0.7.0;') + // .end() + }, + + tearDown: sauce +} + +const executeFile = ` + const run = async () => { + const result = await remix.call('fileManager', 'file') + + console.log(result) + } + + run() +` + +const executeExists = ` + const run = async () => { + const result1 = await remix.call('fileManager', 'exists', 'browser/exists.js') + const result2 = await remix.call('fileManager', 'exists', 'browser/non-exists.js') + + console.log('browser/exists.js ' + result1) + console.log('browser/non-exists.js ' + result2) + } + + run() +` + +const executeOpen = ` + const run = async () => { + await remix.call('fileManager', 'open', 'browser/3_Ballot.sol') + const result = await remix.call('fileManager', 'file') + + console.log(result) + } + + run() +` + +const executeWriteFile = ` + const run = async () => { + await remix.call('fileManager', 'writeFile', 'browser/new_contract.sol', 'pragma solidity ^0.6.0') + } + + run() +` + +const executeReadFile = ` + const run = async () => { + const result = await remix.call('fileManager', 'readFile', 'browser/new_contract.sol') + + console.log(result) + } + + run() +` + +const executeCopyFile = ` + const run = async () => { + await remix.call('fileManager', 'copyFile', 'browser/basic.sol', 'browser/new_contract.sol') + const result = await remix.call('fileManager', 'readFile', 'browser/new_contract.sol') + + console.log(result) + } + + run() +` + +const executeRename = ` + const run = async () => { + const result = await remix.call('fileManager', 'rename', 'browser/new_contract.sol', 'browser/old_contract.sol') + + console.log(result) + } + + run() +` \ No newline at end of file