blob: 399e7e16e51cff159b8699951a5782fe23c88822 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/**
* Test that autofill autocomplete works after detaching a tab
*/
"use strict";
const URL = BASE_URL + "autocomplete_basic.html";
function checkPopup(autoCompletePopup) {
let first = autoCompletePopup.view.results[0];
const { primary, secondary } = JSON.parse(first.label);
ok(
primary.startsWith(TEST_ADDRESS_1["street-address"].split("\n")[0]),
"Check primary label is street address"
);
is(
secondary,
TEST_ADDRESS_1["address-level2"],
"Check secondary label is address-level2"
);
}
add_task(async function setup_storage() {
await setStorage(TEST_ADDRESS_1, TEST_ADDRESS_2, TEST_ADDRESS_3);
});
add_task(async function test_detach_tab_marked() {
let tab = await BrowserTestUtils.openNewForegroundTab({ gBrowser, url: URL });
let browser = tab.linkedBrowser;
const { autoCompletePopup } = browser;
// Check the page after the initial load
await openPopupOn(browser, "#street-address");
checkPopup(autoCompletePopup);
await closePopup(browser);
// Detach the tab to a new window
info("expecting tab replaced with new window");
let windowLoadedPromise = BrowserTestUtils.waitForNewWindow();
let newWin = gBrowser.replaceTabWithWindow(
gBrowser.getTabForBrowser(browser)
);
await windowLoadedPromise;
info("tab was detached");
let newBrowser = newWin.gBrowser.selectedBrowser;
ok(newBrowser, "Found new <browser>");
let newAutoCompletePopup = newBrowser.autoCompletePopup;
ok(newAutoCompletePopup, "Found new autocomplete popup");
await openPopupOn(newBrowser, "#street-address");
checkPopup(newAutoCompletePopup);
await closePopup(newBrowser);
let windowRefocusedPromise = BrowserTestUtils.waitForEvent(window, "focus");
await BrowserTestUtils.closeWindow(newWin);
await windowRefocusedPromise;
});
|