From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../test_updateRecordNoEncryptionKeys_http2.js | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js (limited to 'dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js') 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..0d58cb60b6 --- /dev/null +++ b/dom/push/test/xpcshell/test_updateRecordNoEncryptionKeys_http2.js @@ -0,0 +1,72 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const { HttpServer } = ChromeUtils.importESModule( + "resource://testing-common/httpd.sys.mjs" +); + +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"); +}); -- cgit v1.2.3