Search in sources :

Example 1 with LaunchShortcut

use of org.python.pydev.debug.ui.launching.LaunchShortcut in project Pydev by fabioz.

the class PyCodeCoverageTestWorkbench method testPyCodeCoverageView.

public void testPyCodeCoverageView() throws Exception {
    final PyCodeCoverageView view = PyCodeCoverageView.getView(true);
    // At this point it should have no folder selected and the option to run things in coverage should be
    // set to false.
    assertTrue(!PyCoveragePreferences.getAllRunsDoCoverage());
    assertTrue(PyCodeCoverageView.getChosenDir() == null);
    assertTrue(!view.allRunsGoThroughCoverage.getSelection());
    assertTrue(!PyCoveragePreferences.getInternalAllRunsDoCoverage());
    view.allRunsGoThroughCoverage.setSelection(true);
    view.allRunsGoThroughCoverage.notifyListeners(SWT.Selection, new Event());
    assertTrue(PyCoveragePreferences.getInternalAllRunsDoCoverage());
    assertTrue(!PyCoveragePreferences.getAllRunsDoCoverage());
    view.setSelectedContainer(sourceFolder);
    TreeViewer treeViewer = view.getTreeViewer();
    ITreeContentProvider cp = (ITreeContentProvider) treeViewer.getContentProvider();
    Object[] elements = cp.getElements(treeViewer.getInput());
    assertEquals(1, elements.length);
    ILabelProvider labelProvider = (ILabelProvider) treeViewer.getLabelProvider();
    assertEquals("pack_cov", labelProvider.getText(elements[0]));
    TestCaseUtils.assertContentsEqual(getInitialCoverageText(), view.getCoverageText());
    Object[] expandedElements = treeViewer.getExpandedElements();
    assertEquals(0, expandedElements.length);
    treeViewer.expandAll();
    expandedElements = treeViewer.getExpandedElements();
    assertEquals(1, expandedElements.length);
    view.executeRefreshAction(new NullProgressMonitor());
    expandedElements = treeViewer.getExpandedElements();
    assertEquals(1, expandedElements.length);
    assertTrue(PyCoveragePreferences.getAllRunsDoCoverage());
    final IWorkbench workBench = PydevPlugin.getDefault().getWorkbench();
    Display display = workBench.getDisplay();
    // Make sure to run the UI thread.
    final PyEdit modCovEditor = (PyEdit) PyOpenEditor.doOpenEditor(modCov);
    try {
        display.syncExec(new Runnable() {

            @Override
            public void run() {
                LaunchShortcut launchShortcut = new LaunchShortcut();
                launchShortcut.launch(modCovEditor, "run");
            }
        });
        final String modCovCoverageText = StringUtils.replaceNewLines(getModCovCoverageText(), "\n");
        // Should be enough time for the refresh to happen!
        goToManual(10000, new ICallback<Boolean, Object>() {

            @Override
            public Boolean call(Object arg) {
                return modCovCoverageText.equals(StringUtils.replaceNewLines(view.getCoverageText(), "\n"));
            }
        });
        TestCaseUtils.assertContentsEqual(modCovCoverageText, view.getCoverageText());
    // goToManual();
    } finally {
        try {
            modCovEditor.close(false);
        } catch (Exception e) {
        // ignore anything here
        }
    }
}
Also used : ITreeContentProvider(org.eclipse.jface.viewers.ITreeContentProvider) NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) TreeViewer(org.eclipse.jface.viewers.TreeViewer) ILabelProvider(org.eclipse.jface.viewers.ILabelProvider) LaunchShortcut(org.python.pydev.debug.ui.launching.LaunchShortcut) IWorkbench(org.eclipse.ui.IWorkbench) Event(org.eclipse.swt.widgets.Event) PyEdit(org.python.pydev.editor.PyEdit) Display(org.eclipse.swt.widgets.Display)

Aggregations

NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)1 ILabelProvider (org.eclipse.jface.viewers.ILabelProvider)1 ITreeContentProvider (org.eclipse.jface.viewers.ITreeContentProvider)1 TreeViewer (org.eclipse.jface.viewers.TreeViewer)1 Display (org.eclipse.swt.widgets.Display)1 Event (org.eclipse.swt.widgets.Event)1 IWorkbench (org.eclipse.ui.IWorkbench)1 LaunchShortcut (org.python.pydev.debug.ui.launching.LaunchShortcut)1 PyEdit (org.python.pydev.editor.PyEdit)1