mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 819351: move import script file creation/deletion to marionette actor and have it deleted on session delete. r=jgriffin
This commit is contained in:
parent
279790b352
commit
8e27609578
@ -18,13 +18,13 @@ class TestImportScript(MarionetteTestCase):
|
|||||||
os.path.join(__file__, os.path.pardir, "importscript.js"))
|
os.path.join(__file__, os.path.pardir, "importscript.js"))
|
||||||
secondjs = os.path.abspath(
|
secondjs = os.path.abspath(
|
||||||
os.path.join(__file__, os.path.pardir, "importanotherscript.js"))
|
os.path.join(__file__, os.path.pardir, "importanotherscript.js"))
|
||||||
|
|
||||||
self.marionette.import_script(firstjs)
|
self.marionette.import_script(firstjs)
|
||||||
self.marionette.import_script(secondjs)
|
self.marionette.import_script(secondjs)
|
||||||
|
|
||||||
self.assertEqual("i'm a test function!",
|
self.assertEqual("i'm a test function!",
|
||||||
self.marionette.execute_script("return testFunc();"))
|
self.marionette.execute_script("return testFunc();"))
|
||||||
|
|
||||||
self.assertEqual("i'm yet another test function!",
|
self.assertEqual("i'm yet another test function!",
|
||||||
self.marionette.execute_script("return testAnotherFunc();"))
|
self.marionette.execute_script("return testAnotherFunc();"))
|
||||||
|
|
||||||
|
@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
import os
|
||||||
|
from marionette_test import MarionetteTestCase
|
||||||
|
|
||||||
|
class TestImportScriptContent(MarionetteTestCase):
|
||||||
|
|
||||||
|
def test_importing_script_then_reusing_it(self):
|
||||||
|
test_html = self.marionette.absolute_url("test_windows.html")
|
||||||
|
self.marionette.navigate(test_html)
|
||||||
|
js = os.path.abspath(os.path.join(__file__, os.path.pardir, "importscript.js"))
|
||||||
|
self.current_window = self.marionette.current_window_handle
|
||||||
|
link = self.marionette.find_element("link text", "Open new window")
|
||||||
|
link.click()
|
||||||
|
|
||||||
|
windows = self.marionette.window_handles
|
||||||
|
windows.remove(self.current_window)
|
||||||
|
self.marionette.switch_to_window(windows[0])
|
||||||
|
|
||||||
|
self.marionette.import_script(js)
|
||||||
|
self.marionette.close()
|
||||||
|
|
||||||
|
self.marionette.switch_to_window(self.current_window)
|
||||||
|
self.assertEqual("i'm a test function!", self.marionette.execute_script("return testFunc();"))
|
||||||
|
|
@ -13,6 +13,8 @@ skip = false
|
|||||||
|
|
||||||
[test_getstatus.py]
|
[test_getstatus.py]
|
||||||
[test_import_script.py]
|
[test_import_script.py]
|
||||||
|
[test_import_script_content.py.py]
|
||||||
|
b2g = false
|
||||||
[test_click.py]
|
[test_click.py]
|
||||||
b2g = false
|
b2g = false
|
||||||
[test_selected.py]
|
[test_selected.py]
|
||||||
|
@ -1880,16 +1880,17 @@ MarionetteDriverActor.prototype = {
|
|||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
// browserType remains undefined.
|
// browserType remains undefined.
|
||||||
}
|
}
|
||||||
let reg;
|
let reg = {};
|
||||||
if (!browserType || browserType != "content") {
|
if (!browserType || browserType != "content") {
|
||||||
reg = this.curBrowser.register(this.generateFrameId(message.json.value),
|
reg.id = this.curBrowser.register(this.generateFrameId(message.json.value),
|
||||||
message.json.href);
|
message.json.href);
|
||||||
}
|
}
|
||||||
this.curBrowser.elementManager.seenItems[reg] = listenerWindow; //add to seenItems
|
this.curBrowser.elementManager.seenItems[reg.id] = listenerWindow; //add to seenItems
|
||||||
|
reg.importedScripts = this.importedScripts.path;
|
||||||
if (nullPrevious && (this.curBrowser.curFrameId != null)) {
|
if (nullPrevious && (this.curBrowser.curFrameId != null)) {
|
||||||
this.sendAsync("newSession", {B2G: (appName == "B2G")});
|
this.sendAsync("newSession", {B2G: (appName == "B2G")});
|
||||||
if (this.curBrowser.newSession) {
|
if (this.curBrowser.newSession) {
|
||||||
this.sendResponse(reg);
|
this.sendResponse(reg.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return reg;
|
return reg;
|
||||||
|
@ -40,7 +40,7 @@ let listenerId = null; //unique ID of this listener
|
|||||||
let activeFrame = null;
|
let activeFrame = null;
|
||||||
let curWindow = content;
|
let curWindow = content;
|
||||||
let elementManager = new ElementManager([]);
|
let elementManager = new ElementManager([]);
|
||||||
let importedScripts = FileUtils.getFile('TmpD', ['marionettescript']);
|
let importedScripts = null;
|
||||||
|
|
||||||
// The sandbox we execute test scripts in. Gets lazily created in
|
// The sandbox we execute test scripts in. Gets lazily created in
|
||||||
// createExecuteContentSandbox().
|
// createExecuteContentSandbox().
|
||||||
@ -65,7 +65,8 @@ function registerSelf() {
|
|||||||
let register = sendSyncMessage("Marionette:register", msg);
|
let register = sendSyncMessage("Marionette:register", msg);
|
||||||
|
|
||||||
if (register[0]) {
|
if (register[0]) {
|
||||||
listenerId = register[0];
|
listenerId = register[0].id;
|
||||||
|
importedScripts = FileUtils.File(register[0].importedScripts);
|
||||||
startListeners();
|
startListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,11 +216,6 @@ function deleteSession(msg) {
|
|||||||
// reset frame to the top-most frame
|
// reset frame to the top-most frame
|
||||||
curWindow = content;
|
curWindow = content;
|
||||||
curWindow.focus();
|
curWindow.focus();
|
||||||
try {
|
|
||||||
importedScripts.remove(false);
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user