// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {assertThrows, assertTrue} from 'chrome://webui-test/chai_assert.js';
suite('manager tests', function() {
const doNothing = function() {};
const emptyClientRenderer = {
playerAdded: doNothing,
playerRemoved: doNothing,
playerUpdated: doNothing,
};
setup(function() {
window.pm = new Manager(emptyClientRenderer);
});
teardown(function() {
window.pm = null;
});
// Test a normal case of .addPlayer
test('add player', function() {
window.pm.addPlayer('someid');
assertTrue(undefined !== window.pm.players_['someid']);
});
// On occasion, the backend will add an existing ID multiple times.
// make sure this doesn't break anything.
test('add player already existing', function() {
window.pm.addPlayer('someid');
window.pm.addPlayer('someid');
assertTrue(undefined !== window.pm.players_['someid']);
});
// If the removal is set, make sure that a player
// gets removed from the PlayerManager.
test('remove player', function() {
window.pm.addPlayer('someid');
assertTrue(undefined !== window.pm.players_['someid']);
window.pm.removePlayer('someid');
assertTrue(undefined === window.pm.players_['someid']);
});
// Trying to select a non-existent player should throw
// an exception
test('select non existent', function() {
assertThrows(function() {
window.pm.selectPlayer('someId');
});
});
});