diff options
Diffstat (limited to 'netwerk/test/browser/browser_test_data_channel_observer.js')
-rw-r--r-- | netwerk/test/browser/browser_test_data_channel_observer.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/netwerk/test/browser/browser_test_data_channel_observer.js b/netwerk/test/browser/browser_test_data_channel_observer.js new file mode 100644 index 0000000000..e03bbc72e6 --- /dev/null +++ b/netwerk/test/browser/browser_test_data_channel_observer.js @@ -0,0 +1,35 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const TEST_URI = "data:text/html;charset=utf-8,<h1>Test"; + +let created = false; + +add_task(async function test_data_channel_observer() { + setupObserver(); + let tab = await BrowserTestUtils.addTab(gBrowser, TEST_URI); + await BrowserTestUtils.waitForCondition(() => created); + ok(created, "We received observer notification"); + await BrowserTestUtils.removeTab(tab); +}); + +function setupObserver() { + const observer = { + QueryInterface: ChromeUtils.generateQI(["nsIObserver"]), + + observe: function observe(subject, topic) { + switch (topic) { + case "data-channel-opened": + let channelURI = subject.QueryInterface(Ci.nsIChannel).URI.spec; + if (channelURI === TEST_URI) { + Services.obs.removeObserver(observer, "data-channel-opened"); + created = true; + } + break; + } + }, + }; + Services.obs.addObserver(observer, "data-channel-opened"); +} |