blob: 1dabe30c27010edd2186327da12f4d34ebc04db8 [file] [log] [blame]
// Copyright 2017 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.
(async function() {
TestRunner.addResult(`Tests tabbed pane tabs to show calculation.\n`);
function createFakeTab(title, width) {
function toString() {
return title;
}
return {
width: function() {
return width;
},
title: title,
toString: toString
};
}
var tabbedPane = new UI.TabbedPane();
tabbedPane.setAllowTabReorder(true, true);
var dropDownButtonMeasuredWidth = 10;
function getTabsToShowAndDumpResults(tabsOrdered, tabsHistory, totalWidth) {
var tabsToShowIndexes = UI.TabbedPane.prototype._tabsToShowIndexes.call(
tabbedPane, tabsOrdered, tabsHistory, totalWidth, dropDownButtonMeasuredWidth);
TestRunner.addResult(' tabsToShowIndexes = [' + String(tabsToShowIndexes) + ']');
}
function testWidthsAndHistory(widths, history, totalWidth) {
var tabsOrdered = [];
var tabsHistory = [];
for (var i = 0; i < widths.length; i++)
tabsOrdered.push(createFakeTab('tab ' + i, widths[i]));
for (var i = 0; i < history.length; i++)
tabsHistory.push(tabsOrdered[history[i]]);
TestRunner.addResult('Running tabs to show test:');
TestRunner.addResult(' widths = [' + String(widths) + ']');
TestRunner.addResult(' tabsHistory = [' + String(tabsHistory) + ']');
TestRunner.addResult(
' totalWidth = ' + totalWidth + ', dropDownButtonMeasuredWidth = ' + dropDownButtonMeasuredWidth);
getTabsToShowAndDumpResults(tabsOrdered, tabsHistory, totalWidth);
}
function testWithDifferentTotalWidths(widths, history) {
testWidthsAndHistory(widths, history, 370);
testWidthsAndHistory(widths, history, 360);
testWidthsAndHistory(widths, history, 350);
testWidthsAndHistory(widths, history, 300);
testWidthsAndHistory(widths, history, 250);
testWidthsAndHistory(widths, history, 200);
testWidthsAndHistory(widths, history, 150);
testWidthsAndHistory(widths, history, 100);
testWidthsAndHistory(widths, history, 60);
testWidthsAndHistory(widths, history, 50);
TestRunner.addResult('');
}
var widths = [50, 50, 60, 60, 70, 70];
testWithDifferentTotalWidths(widths, [0, 1, 2, 3, 4, 5]);
testWithDifferentTotalWidths(widths, [5, 4, 3, 2, 1, 0]);
testWithDifferentTotalWidths(widths, [0, 2, 4, 1, 3, 5]);
testWithDifferentTotalWidths(widths, [5, 3, 1, 4, 2, 0]);
tabbedPane.setAllowTabReorder(false);
testWithDifferentTotalWidths(widths, [0, 1, 2, 3, 4, 5]);
testWithDifferentTotalWidths(widths, [5, 4, 3, 2, 1, 0]);
testWithDifferentTotalWidths(widths, [0, 2, 4, 1, 3, 5]);
testWithDifferentTotalWidths(widths, [5, 3, 1, 4, 2, 0]);
TestRunner.completeTest();
})();