mirror of
https://github.com/gchq/CyberChef
synced 2024-12-29 14:03:10 +00:00
Merge pull request #1786 from zb3/fix-overwritten-output
This commit is contained in:
commit
42ad9a49f3
3 changed files with 69 additions and 1 deletions
|
@ -160,7 +160,12 @@ class App {
|
||||||
// has completed.
|
// has completed.
|
||||||
if (this.autoBakePause) return false;
|
if (this.autoBakePause) return false;
|
||||||
|
|
||||||
if (this.autoBake_ && !this.baking) {
|
if (this.baking) {
|
||||||
|
this.manager.worker.cancelBakeForAutoBake();
|
||||||
|
this.baking = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.autoBake_) {
|
||||||
log.debug("Auto-baking");
|
log.debug("Auto-baking");
|
||||||
this.manager.worker.bakeInputs({
|
this.manager.worker.bakeInputs({
|
||||||
nums: [this.manager.tabs.getActiveTab("input")],
|
nums: [this.manager.tabs.getActiveTab("input")],
|
||||||
|
|
|
@ -322,6 +322,28 @@ class WorkerWaiter {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cancels the current bake making it possible to autobake again
|
||||||
|
*/
|
||||||
|
cancelBakeForAutoBake() {
|
||||||
|
if (this.totalOutputs > 1) {
|
||||||
|
this.cancelBake();
|
||||||
|
} else {
|
||||||
|
// In this case the UI changes can be skipped
|
||||||
|
|
||||||
|
for (let i = this.chefWorkers.length - 1; i >= 0; i--) {
|
||||||
|
if (this.chefWorkers[i].active) {
|
||||||
|
this.removeChefWorker(this.chefWorkers[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.inputs = [];
|
||||||
|
this.inputNums = [];
|
||||||
|
this.totalOutputs = 0;
|
||||||
|
this.loadingOutputs = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancels the current bake by terminating and removing all ChefWorkers
|
* Cancels the current bake by terminating and removing all ChefWorkers
|
||||||
*
|
*
|
||||||
|
|
|
@ -167,6 +167,33 @@ module.exports = {
|
||||||
browser.expect.element("#output-text .cm-status-bar .eol-value").text.to.equal("LF");
|
browser.expect.element("#output-text .cm-status-bar .eol-value").text.to.equal("LF");
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"Autobaking the latest input": browser => {
|
||||||
|
// Use the sleep recipe to simulate a long running task
|
||||||
|
utils.loadRecipe(browser, "Sleep", "input", [2000]);
|
||||||
|
|
||||||
|
browser.waitForElementVisible("#stale-indicator");
|
||||||
|
|
||||||
|
// Enable previously disabled autobake
|
||||||
|
browser.click("#auto-bake-label");
|
||||||
|
|
||||||
|
browser.sendKeys("#input-text .cm-content", "1");
|
||||||
|
|
||||||
|
browser.pause(500);
|
||||||
|
|
||||||
|
// Make another change while the previous input is being baked
|
||||||
|
browser.sendKeys("#input-text .cm-content", "2");
|
||||||
|
|
||||||
|
browser
|
||||||
|
.waitForElementNotVisible("#stale-indicator")
|
||||||
|
.waitForElementNotVisible("#output-loader");
|
||||||
|
|
||||||
|
// Ensure we got the latest input baked
|
||||||
|
utils.expectOutput(browser, "input12");
|
||||||
|
|
||||||
|
// Turn autobake off again
|
||||||
|
browser.click("#auto-bake-label");
|
||||||
|
},
|
||||||
|
|
||||||
"Special content": browser => {
|
"Special content": browser => {
|
||||||
/* Special characters are rendered correctly */
|
/* Special characters are rendered correctly */
|
||||||
utils.setInput(browser, SPECIAL_CHARS, false);
|
utils.setInput(browser, SPECIAL_CHARS, false);
|
||||||
|
@ -645,6 +672,20 @@ module.exports = {
|
||||||
},
|
},
|
||||||
|
|
||||||
"Loading from URL": browser => {
|
"Loading from URL": browser => {
|
||||||
|
utils.clear(browser);
|
||||||
|
|
||||||
|
/* Side panel displays correct info */
|
||||||
|
utils.uploadFile(browser, "files/TowelDay.jpeg");
|
||||||
|
|
||||||
|
browser
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-toggle-shown")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-thumbnail")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-name")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-size")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-type")
|
||||||
|
.waitForElementVisible("#input-text .cm-file-details .file-details-loaded");
|
||||||
|
|
||||||
/* Complex deep link populates the input correctly (encoding, eol, input) */
|
/* Complex deep link populates the input correctly (encoding, eol, input) */
|
||||||
browser
|
browser
|
||||||
.urlHash("recipe=To_Base64('A-Za-z0-9%2B/%3D')&input=VGhlIHNoaXBzIGh1bmcgaW4gdGhlIHNreSBpbiBtdWNoIHRoZSBzYW1lIHdheSB0aGF0IGJyaWNrcyBkb24ndC4M&ienc=21866&oenc=1201&ieol=FF&oeol=PS")
|
.urlHash("recipe=To_Base64('A-Za-z0-9%2B/%3D')&input=VGhlIHNoaXBzIGh1bmcgaW4gdGhlIHNreSBpbiBtdWNoIHRoZSBzYW1lIHdheSB0aGF0IGJyaWNrcyBkb24ndC4M&ienc=21866&oenc=1201&ieol=FF&oeol=PS")
|
||||||
|
|
Loading…
Reference in a new issue