test_register_no_id.js (1668B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 var userAgentID = "9a2f9efe-2ebb-4bcb-a5d9-9e2b73d30afe"; 7 var channelID = "264c2ba0-f6db-4e84-acdb-bd225b62d9e3"; 8 9 function run_test() { 10 do_get_profile(); 11 setPrefs({ 12 userAgentID, 13 requestTimeout: 1000, 14 retryBaseInterval: 150, 15 }); 16 run_next_test(); 17 } 18 19 add_task(async function test_register_no_id() { 20 let registers = 0; 21 let helloDone; 22 let helloPromise = new Promise(resolve => (helloDone = after(2, resolve))); 23 24 PushServiceWebSocket._generateID = () => channelID; 25 PushService.init({ 26 serverURI: "wss://push.example.org/", 27 makeWebSocket(uri) { 28 return new MockWebSocket(uri, { 29 onHello() { 30 this.serverSendMsg( 31 JSON.stringify({ 32 messageType: "hello", 33 status: 200, 34 uaid: userAgentID, 35 }) 36 ); 37 helloDone(); 38 }, 39 onRegister(request) { 40 registers++; 41 equal(request.channelID, channelID, "Register: wrong channel ID"); 42 this.serverSendMsg( 43 JSON.stringify({ 44 messageType: "register", 45 status: 200, 46 }) 47 ); 48 }, 49 }); 50 }, 51 }); 52 53 await Assert.rejects( 54 PushService.register({ 55 scope: "https://example.com/incomplete", 56 originAttributes: ChromeUtils.originAttributesToSuffix({ 57 inIsolatedMozBrowser: false, 58 }), 59 }), 60 /Registration error/, 61 "Expected error for incomplete register response" 62 ); 63 64 await helloPromise; 65 equal(registers, 1, "Wrong register count"); 66 });