1 /******************************************************************************* 2 * Copyright (c) 2000, 2013 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.ui.tests.api; 15 16 import org.eclipse.swt.widgets.Shell; 17 import org.eclipse.ui.IWorkbenchActionConstants; 18 import org.eclipse.ui.IWorkbenchPage; 19 import org.eclipse.ui.IWorkbenchWindow; 20 import org.eclipse.ui.tests.harness.util.ArrayUtil; 21 import org.eclipse.ui.tests.harness.util.UITestCase; 22 import org.junit.Ignore; 23 import org.junit.Test; 24 import org.junit.runner.RunWith; 25 import org.junit.runners.JUnit4; 26 27 @RunWith(JUnit4.class) 28 public class IWorkbenchWindowTest extends UITestCase { 29 30 private IWorkbenchWindow fWin; 31 IWorkbenchWindowTest()32 public IWorkbenchWindowTest() { 33 super(IWorkbenchWindowTest.class.getSimpleName()); 34 } 35 36 @Override doSetUp()37 protected void doSetUp() throws Exception { 38 super.doSetUp(); 39 fWin = openTestWindow(); 40 } 41 42 @Test testClose()43 public void testClose() throws Throwable { 44 assertEquals(fWin.close(), true); 45 assertEquals( 46 ArrayUtil.contains(fWorkbench.getWorkbenchWindows(), fWin), 47 false); 48 } 49 50 @Test testGetActivePage()51 public void testGetActivePage() throws Throwable { 52 /* 53 * Commented out because until test case can be updated to work 54 * with new window/page/perspective implementation 55 * 56 IWorkbenchPage page1, page2; 57 page1 = openTestPage(fWin); 58 assertEquals(fWin.getActivePage(), page1); 59 60 page2 = openTestPage(fWin); 61 assertEquals(fWin.getActivePage(), page2); 62 63 fWin.setActivePage(page1); 64 assertEquals(fWin.getActivePage(), page1); 65 66 fWin.setActivePage(page2); 67 assertEquals(fWin.getActivePage(), page2); 68 69 //no pages 70 closeAllPages(fWin); 71 assertNull(fWin.getActivePage()); 72 */ 73 } 74 75 @Test 76 @Ignore XXXtestSetActivePage()77 public void XXXtestSetActivePage() throws Throwable { 78 openTestPage(fWin, 5); 79 IWorkbenchPage[] pages = fWin.getPages(); 80 81 for (IWorkbenchPage page : pages) { 82 fWin.setActivePage(page); 83 assertEquals(page, fWin.getActivePage()); 84 } 85 86 fWin.setActivePage(null); 87 assertNull(fWin.getActivePage()); 88 } 89 90 @Test testGetPages()91 public void testGetPages() throws Throwable { 92 /* 93 * Commented out because until test case can be updated to work 94 * with new window/page/perspective implementation 95 * 96 int totalBefore; 97 IWorkbenchPage[] pages, domainPages; 98 99 totalBefore = fWin.getPages().length; 100 int num = 5; 101 pages = openTestPage(fWin, num); 102 assertEquals(fWin.getPages().length, totalBefore + num); 103 104 domainPages = fWin.getPages(); 105 for (int i = 0; i < pages.length; i++) 106 assertEquals(ArrayUtil.contains(domainPages, pages[i]), true); 107 108 closeAllPages(fWin); 109 assertEquals(fWin.getPages().length, 0); 110 */ 111 } 112 113 @Test testGetShell()114 public void testGetShell() { 115 Shell sh = fWin.getShell(); 116 assertNotNull(sh); 117 } 118 119 @Test testGetWorkbench()120 public void testGetWorkbench() { 121 IWorkbenchWindow win = fWorkbench.getActiveWorkbenchWindow(); 122 assertEquals(win.getWorkbench(), fWorkbench); 123 } 124 125 /** 126 * tests openPage(String) 127 */ 128 @Test testOpenPage()129 public void testOpenPage() throws Throwable { 130 /* 131 * Commented out because until test case can be updated to work 132 * with new window/page/perspective implementation 133 * 134 IWorkbenchPage page = null; 135 try { 136 page = fWin.openPage(ResourcesPlugin.getWorkspace()); 137 assertNotNull(page); 138 assertEquals(fWin.getActivePage(), page); 139 } finally { 140 if (page != null) 141 page.close(); 142 } 143 */ 144 } 145 146 /** 147 * tests openPage(String, IAdaptable) 148 */ 149 @Test testOpenPage2()150 public void testOpenPage2() throws Throwable { 151 /* 152 * Commented out because until test case can be updated to work 153 * with new window/page/perspective implementation 154 * 155 IWorkbenchPage page = null; 156 try { 157 page = fWin.openPage(EmptyPerspective.PERSP_ID, ResourcesPlugin.getWorkspace()); 158 assertNotNull(page); 159 assertEquals(fWin.getActivePage(), page); 160 assertEquals( 161 fWin.getActivePage().getPerspective().getId(), 162 EmptyPerspective.PERSP_ID); 163 } finally { 164 if (page != null) 165 page.close(); 166 } 167 168 //test openPage() fails 169 try { 170 page = fWin.openPage("*************", ResourcesPlugin.getWorkspace()); 171 fail(); 172 } catch (WorkbenchException ex) { 173 } 174 175 page.close(); 176 */ 177 } 178 179 @Test testIsApplicationMenu()180 public void testIsApplicationMenu() { 181 String[] ids = { IWorkbenchActionConstants.M_FILE, 182 IWorkbenchActionConstants.M_WINDOW, }; 183 184 for (String id : ids) { 185 assertEquals(fWin.isApplicationMenu(id), true); 186 } 187 188 ids = new String[] { IWorkbenchActionConstants.M_EDIT, 189 IWorkbenchActionConstants.M_HELP, 190 IWorkbenchActionConstants.M_LAUNCH }; 191 192 for (String id : ids) { 193 assertEquals(fWin.isApplicationMenu(id), false); 194 } 195 } 196 } 197