diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js | |
parent | Initial commit. (diff) | |
download | thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js')
-rw-r--r-- | dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js b/dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js new file mode 100644 index 0000000000..e3e6383371 --- /dev/null +++ b/dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js @@ -0,0 +1,70 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const { HttpServer } = ChromeUtils.import("resource://testing-common/httpd.js"); + +var httpServer = null; + +function listenHandler(metadata, response) { + Assert.ok(true, "Start listening"); + httpServer.stop(do_test_finished); + response.setHeader("Retry-After", "10"); + response.setStatusLine(metadata.httpVersion, 500, "Retry"); +} + +httpServer = new HttpServer(); +httpServer.registerPathHandler("/subscriptionNoKey", listenHandler); +httpServer.start(-1); + +function run_test() { + do_get_profile(); + setPrefs({ + "testing.allowInsecureServerURL": true, + "http2.retryInterval": 1000, + "http2.maxRetries": 2, + }); + + run_next_test(); +} + +add_task(async function test1() { + let db = PushServiceHttp2.newPushDB(); + registerCleanupFunction(() => { + return db.drop().then(() => db.close()); + }); + + do_test_pending(); + + var serverURL = "http://localhost:" + httpServer.identity.primaryPort; + + let record = { + subscriptionUri: serverURL + "/subscriptionNoKey", + pushEndpoint: serverURL + "/pushEndpoint", + pushReceiptEndpoint: serverURL + "/pushReceiptEndpoint", + scope: "https://example.com/page", + originAttributes: "", + quota: Infinity, + systemRecord: true, + }; + + await db.put(record); + + let notifyPromise = promiseObserverNotification( + PushServiceComponent.subscriptionChangeTopic, + _ => true + ); + + PushService.init({ + serverURI: serverURL + "/subscribe", + db, + }); + + await notifyPromise; + + let aRecord = await db.getByKeyID(serverURL + "/subscriptionNoKey"); + ok(aRecord, "The record should still be there"); + ok(aRecord.p256dhPublicKey, "There should be a public key"); + ok(aRecord.p256dhPrivateKey, "There should be a private key"); +}); |