forked from mirrors/gecko-dev
The current test had complicated logic in the test module "command.sys.mjs" which means we were asserting the test module more than the actual behavior of MessageHandler/SessionData. Instead, we use a simpler test module, and precisely assert all the updates we receive for session data updates. Also taking the opportunity to add some tests when updating session data items from several categories. Differential Revision: https://phabricator.services.mozilla.com/D166969
33 lines
866 B
JavaScript
33 lines
866 B
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
import { Module } from "chrome://remote/content/shared/messagehandler/Module.sys.mjs";
|
|
|
|
class SessionDataUpdateModule extends Module {
|
|
#sessionDataUpdates;
|
|
|
|
constructor(messageHandler) {
|
|
super(messageHandler);
|
|
this.#sessionDataUpdates = [];
|
|
}
|
|
|
|
destroy() {}
|
|
|
|
/**
|
|
* Commands
|
|
*/
|
|
|
|
_applySessionData(params) {
|
|
const filteredSessionData = params.sessionData.filter(item =>
|
|
this.messageHandler.matchesContext(item.contextDescriptor)
|
|
);
|
|
this.#sessionDataUpdates.push(filteredSessionData);
|
|
}
|
|
|
|
getSessionDataUpdates() {
|
|
return this.#sessionDataUpdates;
|
|
}
|
|
}
|
|
|
|
export const sessiondataupdate = SessionDataUpdateModule;
|