chrome-devtools-frontend
Version:
Chrome DevTools UI
153 lines (142 loc) • 3.43 kB
text/typescript
// Copyright 2023 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.
import * as Trace from '../../../../models/trace/trace.js';
import {describeWithLocale} from '../../../../testing/EnvironmentHelpers.js';
import * as PerfUI from './perf_ui.js';
const {Milli: MilliSeconds} = Trace.Types.Timing;
describeWithLocale('TimelineGrid', () => {
it('calculates a set of dividers for the grid', async () => {
const calculator = new PerfUI.TimelineOverviewCalculator.TimelineOverviewCalculator();
calculator.setDisplayWidth(200);
calculator.setBounds(MilliSeconds(0), MilliSeconds(200));
const dividers = PerfUI.TimelineGrid.TimelineGrid.calculateGridOffsets(calculator);
assert.deepEqual(dividers, {
offsets: [
{
position: 0,
time: 0,
},
{
position: 100,
time: 100,
},
{
position: 200,
time: 200,
},
],
precision: 0,
});
});
it('ups the precision if it is showing decimal values', async () => {
const calculator = new PerfUI.TimelineOverviewCalculator.TimelineOverviewCalculator();
calculator.setDisplayWidth(1000);
calculator.setBounds(MilliSeconds(0), MilliSeconds(2));
const dividers = PerfUI.TimelineGrid.TimelineGrid.calculateGridOffsets(calculator);
assert.deepEqual(dividers, {
offsets: [
{
position: 0,
time: 0,
},
{
position: 100,
time: 0.2,
},
{
position: 200,
time: 0.4,
},
{
position: 300,
time: 0.6,
},
{
position: 400,
time: 0.8,
},
{
position: 500,
time: 1,
},
{
position: 600,
time: 1.2,
},
{
position: 700,
time: 1.4,
},
{
position: 800,
time: 1.6,
},
{
position: 900,
time: 1.8,
},
{
position: 1000,
time: 2,
},
],
precision: 1,
});
});
it('generates more dividers if there is more pixel room', async () => {
const calculator = new PerfUI.TimelineOverviewCalculator.TimelineOverviewCalculator();
calculator.setDisplayWidth(1000);
calculator.setBounds(MilliSeconds(0), MilliSeconds(200));
const dividers = PerfUI.TimelineGrid.TimelineGrid.calculateGridOffsets(calculator);
assert.deepEqual(dividers, {
offsets: [
{
position: 0,
time: 0,
},
{
position: 100,
time: 20,
},
{
position: 200,
time: 40,
},
{
position: 300,
time: 60,
},
{
position: 400,
time: 80,
},
{
position: 500,
time: 100,
},
{
position: 600,
time: 120,
},
{
position: 700,
time: 140,
},
{
position: 800,
time: 160,
},
{
position: 900,
time: 180,
},
{
position: 1000,
time: 200,
},
],
precision: 0,
});
});
});