blob: 69b78027c9b300cac963d3fd02ccf4cabafaffbf [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2016 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
package org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests.latency;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
import org.eclipse.swtbot.swt.finder.results.Result;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.latency.PatternLatencyTableView;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IViewReference;
import org.junit.Test;
/**
* Test the pattern latency table
*
* @author Jean-Christian Kouame
*/
public class PatternLatencyTableViewTest extends PatternLatencyViewTestBase {
private static final String COLUMN_HEADER = "Name";
private static final String SYSTEM_CALL_PREFIX = "sys_";
private static final String VIEW_ID = PatternLatencyTableView.ID;
private static final String VIEW_TITLE = "Latency Table";
private PatternLatencyTableView fLatencyView;
private AbstractSegmentStoreTableViewer fTable;
/**
* Test the latency view data
*/
@Test
public void testData() {
getTable();
WaitUtils.waitForJobs();
assertNotNull(fTable);
SWTBotTable tableBot = new SWTBotTable(fTable.getTableViewer().getTable());
fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
tableBot.header(COLUMN_HEADER).click();
fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
tableBot.header(COLUMN_HEADER).click();
fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
}
/**
* Get the table associated to the view
*/
private void getTable() {
SWTBotView viewBot = fBot.viewById(VIEW_ID);
final IViewReference viewReference = viewBot.getViewReference();
IViewPart viewPart = UIThreadRunnable.syncExec(new Result<IViewPart>() {
@Override
public IViewPart run() {
return viewReference.getView(true);
}
});
assertNotNull(viewPart);
if (!(viewPart instanceof PatternLatencyTableView)) {
fail("Could not instanciate view");
}
fLatencyView = (PatternLatencyTableView) viewPart;
fTable = fLatencyView.getSegmentStoreViewer();
assertNotNull(fTable);
}
@Override
protected String getViewId() {
return VIEW_ID;
}
@Override
protected String getViewTitle() {
return VIEW_TITLE;
}
}