Scaffold: Remember cookies set in browser by default

Making this configurable - it's worth testing translators to make sure
that they *aren't* dependent on some specific cookie configuration,
apart from obvious cases like login-gated sites.
This commit is contained in:
Abe Jellinek 2024-03-26 14:22:08 -04:00
parent 37ac6f9058
commit a7044db15e
3 changed files with 21 additions and 8 deletions

View file

@ -58,7 +58,8 @@ function fix2028(str) {
}
var Scaffold = new function () {
var _browser, _frames = [], _document;
var _browser;
var _cookieSandbox;
var _translatorsLoadedPromise;
var _translatorProvider = null;
var _lastModifiedTime = 0;
@ -83,8 +84,8 @@ var Scaffold = new function () {
this.onLoad = async function (e) {
if (e.target !== document) return;
_document = document;
_browser = document.getElementById('browser');
_cookieSandbox = new Zotero.CookieSandbox(_browser);
window.messageManager.addMessageListener('Scaffold:Load', ({ data }) => {
document.getElementById("browser-url").value = data.url;
@ -1914,6 +1915,8 @@ var Scaffold = new function () {
testsByType[test.type].push(test);
}
let rememberCookies = document.getElementById('checkbox-remember-cookies').checked;
for (let [type, testsOfType] of Object.entries(testsByType)) {
if (testsOfType.length) {
let tester = new Zotero_TranslatorTester(
@ -1922,6 +1925,12 @@ var Scaffold = new function () {
_debug,
_translatorProvider
);
if (rememberCookies) {
tester.setCookieSandbox(_cookieSandbox);
}
else {
tester.setCookieSandbox(new Zotero.CookieSandbox());
}
tester.setTests(testsOfType);
tester.runTests(callback);
}
@ -2024,12 +2033,6 @@ var Scaffold = new function () {
this.testsToUpdate = tests.slice();
this.numTestsTotal = this.testsToUpdate.length;
this.newTests = [];
this.tester = new Zotero_TranslatorTester(
_getTranslatorFromPane(),
"web",
_debug,
_translatorProvider
);
};
TestUpdater.prototype.updateTests = function (testDoneCallback, doneCallback) {

View file

@ -505,6 +505,15 @@
<button observes="validate-tests" label="&scaffold.testing.delete;" tooltiptext="Delete the selected tests" oncommand="Scaffold.deleteSelectedTests()"/>
<button observes="validate-tests" label="&scaffold.testing.run;" tooltiptext="Run the selected tests" oncommand="Scaffold.runSelectedTests()"/>
<button observes="validate-tests" label="&scaffold.testing.update;" tooltiptext="Run the selected tests and update the test definitions with the latest data" oncommand="Scaffold.updateSelectedTests()"/>
<hbox flex="1" pack="end">
<checkbox
id="checkbox-remember-cookies"
label="&scaffold.testing.rememberCookies;"
native="true"
checked="true"
/>
</hbox>
</hbox>
</vbox>
<splitter/>

View file

@ -74,6 +74,7 @@
<!ENTITY scaffold.testing.delete "Delete">
<!ENTITY scaffold.testing.run "Run">
<!ENTITY scaffold.testing.update "Run and Update">
<!ENTITY scaffold.testing.rememberCookies "Remember cookies">
<!ENTITY scaffold.testing.create.web "Create Web Test">
<!ENTITY scaffold.testing.create.import "Create Import Test">
<!ENTITY scaffold.testing.create.search "Create Search Test">