From 0aba0089b3bd8c56287f71bb1dcab29a2139c11e Mon Sep 17 00:00:00 2001 From: Nikolai Ommundsen Date: Thu, 23 Aug 2018 13:54:11 +0200 Subject: [PATCH] Tests for chrome.gcm --- types/chrome-apps/index.d.ts | 17 +++++------------ types/chrome-apps/test/index.ts | 8 ++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/types/chrome-apps/index.d.ts b/types/chrome-apps/index.d.ts index 053b3b67cf..7ce488deeb 100644 --- a/types/chrome-apps/index.d.ts +++ b/types/chrome-apps/index.d.ts @@ -4181,16 +4181,9 @@ declare namespace chrome { */ const MAX_MESSAGE_SIZE: integer; - interface IGCMData { - 'collapse_key'?: never; - 'goog'?: never; - 'goog.'?: never; - 'GOOG'?: never; - 'GOOG.'?: never; - 'google'?: never; - 'GOOGLE'?: never; - [key: string]: any; - } + type DisallowedKeys = 'collapse_key' | 'goog' | 'goog.' | 'GOOG' | 'GOOG.' | 'google' | 'GOOGLE'; + type IGCMDataSend = Record, any>; + type IGCMDataReceive = Record; interface OutgoingMessage { /** The ID of the server to send the message to as assigned by Google API Console. */ @@ -4208,12 +4201,12 @@ declare namespace chrome { * * Sum of all key/value pairs should not exceed gcm.MAX_MESSAGE_SIZE. **/ - data: IGCMData; + data: IGCMDataSend; } interface IncomingMessage { /** The message data. */ - data: IGCMData; + data: IGCMDataReceive; /** * Optional. * The sender who issued the message. diff --git a/types/chrome-apps/test/index.ts b/types/chrome-apps/test/index.ts index a34b29c6c1..6537914a5e 100644 --- a/types/chrome-apps/test/index.ts +++ b/types/chrome-apps/test/index.ts @@ -775,6 +775,14 @@ gcmMessage.data = { /*goog: 'any', should not be allowed, and it is not :) */ test: true }; +const eventHandler = (message: chrome.gcm.IncomingMessage) => { + console.log('From: ', message.from, 'collapseKey:', message.collapseKey); + return message.data['google']; +} +chrome.gcm.onMessage.addListener(eventHandler); +chrome.gcm.onMessage.removeListener(eventHandler); +chrome.gcm.onMessagesDeleted.addListener(() => { }); +chrome.gcm.onSendError.addListener((error) => { console.error(error.detail, error.errorMessage, error.messageId); }); // #endregion