blob: f14d9c03304977a1ff34ff97220df90a16feb725 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
'use strict';
suite('<app-management-main-view>', function() {
let mainView;
let fakeHandler;
let appIdCounter;
/**
* @param {number} numApps
*/
async function addApps(numApps) {
for (let i = 0; i < numApps; i++) {
await fakeHandler.addApp((appIdCounter++).toString());
}
}
setup(function() {
appIdCounter = 0;
fakeHandler = setupFakeHandler();
replaceStore();
mainView = document.createElement('app-management-main-view');
replaceBody(mainView);
});
test('simple app addition', async function() {
// Ensure there is no apps initially
expectEquals(
0, mainView.root.querySelectorAll('app-management-app-item').length);
const appId = '1';
await fakeHandler.addApp(appId);
let appItems = mainView.root.querySelectorAll('app-management-app-item');
expectEquals(1, appItems.length);
expectEquals(appId, appItems[0].app.id);
});
test('more apps bar visibility', async function() {
// The more apps bar shouldn't appear when there are 4 apps.
await addApps(4);
expectEquals(
4, mainView.root.querySelectorAll('app-management-app-item').length);
expectTrue(mainView.$['expander-row'].hidden);
// The more apps bar appears when there are 5 apps.
await addApps(1);
expectEquals(
5, mainView.root.querySelectorAll('app-management-app-item').length);
expectFalse(mainView.$['expander-row'].hidden);
});
test('notifications sublabel collapsibility', async function() {
// The three spans contains collapsible attribute.
await addApps(4);
const pieces = await mainView.getNotificationSublabelPieces_();
expectTrue(pieces.filter(p => p.arg === '$1')[0].collapsible);
expectTrue(pieces.filter(p => p.arg === '$2')[0].collapsible);
expectTrue(pieces.filter(p => p.arg === '$3')[0].collapsible);
// Checking ",and other x apps" is non-collapsible
await addApps(6);
const pieces2 = await mainView.getNotificationSublabelPieces_();
expectFalse(pieces2.filter(p => p.arg === '$4')[0].collapsible);
});
});