diff options
Diffstat (limited to 'comm/suite/components/tests/browser/browser_465215.js')
-rw-r--r-- | comm/suite/components/tests/browser/browser_465215.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/comm/suite/components/tests/browser/browser_465215.js b/comm/suite/components/tests/browser/browser_465215.js new file mode 100644 index 0000000000..f34bd780b0 --- /dev/null +++ b/comm/suite/components/tests/browser/browser_465215.js @@ -0,0 +1,39 @@ +/* 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/. */ + +function test() { + /** Test for Bug 465215 **/ + + waitForExplicitFinish(); + + let uniqueName = "bug 465215"; + let uniqueValue1 = "as good as unique: " + Date.now(); + let uniqueValue2 = "as good as unique: " + Math.random(); + + // set a unique value on a new, blank tab + let tab1 = gBrowser.addTab(); + tab1.linkedBrowser.addEventListener("load", function testTab1LBLoad() { + tab1.linkedBrowser.removeEventListener("load", testTab1LBLoad, true); + ss.setTabValue(tab1, uniqueName, uniqueValue1); + + // duplicate the tab with that value + let tab2 = ss.duplicateTab(window, tab1); + is(ss.getTabValue(tab2, uniqueName), uniqueValue1, "tab value was duplicated"); + + ss.setTabValue(tab2, uniqueName, uniqueValue2); + isnot(ss.getTabValue(tab1, uniqueName), uniqueValue2, "tab values aren't sync'd"); + + // overwrite the tab with the value which should remove it + ss.setTabState(tab1, JSON.stringify({ entries: [] })); + tab1.linkedBrowser.addEventListener("load", function testTab1LBLoad2() { + tab1.linkedBrowser.removeEventListener("load", testTab1LBLoad2, true); + is(ss.getTabValue(tab1, uniqueName), "", "tab value was cleared"); + + // clean up + gBrowser.removeTab(tab2); + gBrowser.removeTab(tab1); + finish(); + }, true); + }, true); +} |