1212
1313import static org .junit .Assert .assertTrue ;
1414
15+ import java .io .IOException ;
1516import java .io .InputStream ;
1617import java .util .Arrays ;
1718import java .util .Set ;
2122import org .eclipse .core .resources .IMarker ;
2223import org .eclipse .core .resources .IProject ;
2324import org .eclipse .core .resources .IResource ;
24- import org .eclipse .core .resources .ResourcesPlugin ;
25+ import org .eclipse .core .resources .IncrementalProjectBuilder ;
2526import org .eclipse .core .runtime .CoreException ;
2627import org .eclipse .jface .preference .IPreferenceStore ;
2728import org .eclipse .jface .text .TextSelection ;
3637import org .eclipse .ui .IWorkbenchPage ;
3738import org .eclipse .ui .PlatformUI ;
3839import org .eclipse .ui .ide .IDE ;
39- import org .eclipse .ui .part .FileEditorInput ;
4040import org .eclipse .ui .tests .harness .util .DisplayHelper ;
4141import org .eclipse .ui .texteditor .ITextEditor ;
4242import org .eclipse .ui .texteditor .ITextEditorActionConstants ;
@@ -74,66 +74,57 @@ public void closeAndDeleteAll() throws CoreException {
7474
7575 @ Test
7676 public void testGenericEditorHasMavenExtensionEnabled () throws Exception {
77- project = ResourcesPlugin .getWorkspace ().getRoot ().getProject ("test" + System .currentTimeMillis ());
78- project .create (null );
79- project .open (null );
77+ project = createMavenProject ("test" + System .currentTimeMillis (), "pom.xml" );
8078 IFile pomFile = project .getFile ("pom.xml" );
81- pomFile . create ( getClass (). getResourceAsStream ( "pom.xml" ), true , null );
82- ITextEditor editorPart = (ITextEditor )IDE .openEditor (page , pomFile , GENERIC_EDITOR );
79+
80+ ITextEditor editorPart = (ITextEditor ) IDE .openEditor (page , pomFile , GENERIC_EDITOR );
8381 Display display = page .getWorkbenchWindow ().getShell ().getDisplay ();
8482 assertTrue ("Missing diagnostic report" , DisplayHelper .waitForCondition (display , WAIT_TIMEOUT , () -> {
85- try {
86- return Arrays .stream (pomFile .findMarkers (IMarker .PROBLEM , true , IResource .DEPTH_ZERO )).anyMatch (marker ->
87- marker .getAttribute (IMarker .SEVERITY , -1 ) == IMarker .SEVERITY_ERROR &&
88- marker .getAttribute (IMarker .MESSAGE , "" ).contains ("artifactId" )
89- );
90- } catch (CoreException e ) {
91- return false ;
92- }
83+ try {
84+ project .build (IncrementalProjectBuilder .INCREMENTAL_BUILD , monitor );
85+ return Arrays .stream (pomFile .findMarkers (IMarker .PROBLEM , true , IResource .DEPTH_INFINITE ))
86+ .anyMatch (marker -> marker .getAttribute (IMarker .SEVERITY , -1 ) == IMarker .SEVERITY_ERROR
87+ && marker .getAttribute (IMarker .MESSAGE , "" ).contains ("artifactId" ));
88+ } catch (CoreException e ) {
89+ return false ;
9390 }
94- ));
95- int offset = editorPart .getDocumentProvider ().getDocument (editorPart .getEditorInput ()).get ().indexOf ("</scope>" );
96- Set <Shell > beforeShells = Arrays .stream (display .getShells ()).filter (Shell ::isVisible ).collect (Collectors .toSet ());
91+ }));
92+ int offset = editorPart .getDocumentProvider ().getDocument (editorPart .getEditorInput ()).get ()
93+ .indexOf ("</scope>" );
94+ Set <Shell > beforeShells = Arrays .stream (display .getShells ()).filter (Shell ::isVisible )
95+ .collect (Collectors .toSet ());
9796 editorPart .getSelectionProvider ().setSelection (new TextSelection (offset , 0 ));
9897 editorPart .getAction (ITextEditorActionConstants .CONTENT_ASSIST ).run ();
9998 assertTrue ("Missing completion proposals" , DisplayHelper .waitForCondition (display , WAIT_TIMEOUT , () -> {
100- Set <Shell > afterShells = Arrays .stream (display .getShells ()).filter (Shell ::isVisible ).collect (Collectors .toSet ());
99+ Set <Shell > afterShells = Arrays .stream (display .getShells ()).filter (Shell ::isVisible )
100+ .collect (Collectors .toSet ());
101101 afterShells .removeAll (beforeShells );
102- return afterShells .stream ()
103- .flatMap (shell -> Arrays .stream (shell .getChildren ()))
104- .filter (Table .class ::isInstance )
105- .map (Table .class ::cast )
106- .findFirst ()
107- .map (table -> Boolean .valueOf (Arrays .stream (table .getItems ()).map (TableItem ::getText ).anyMatch ("compile" ::equals )))
108- .orElse (Boolean .FALSE ).booleanValue ();
102+ return afterShells .stream ().flatMap (shell -> Arrays .stream (shell .getChildren ()))
103+ .filter (Table .class ::isInstance ).map (Table .class ::cast ).findFirst ()
104+ .map (table -> Arrays .stream (table .getItems ()).map (TableItem ::getText ).anyMatch ("compile" ::equals ))
105+ .orElse (Boolean .FALSE ).booleanValue ();
109106 }));
110107 }
111108
112109 @ Test
113- public void testEditorOpenOnSourcePage () throws CoreException {
110+ public void testEditorOpenOnSourcePage () throws Exception {
114111 IPreferenceStore preferenceStore = M2EUIPluginActivator .getDefault ().getPreferenceStore ();
115112 preferenceStore .setValue (MavenPreferenceConstants .P_DEFAULT_POM_EDITOR_PAGE , true );
116- project = ResourcesPlugin .getWorkspace ().getRoot ().getProject ("test" + System .currentTimeMillis ());
117- project .create (null );
118- project .open (null );
113+
114+ project = createMavenProject ("test" + System .currentTimeMillis (), "pom.xml" );
119115 IFile pomFile = project .getFile ("pom.xml" );
120- pomFile . create ( getClass (). getResourceAsStream ( "pom.xml" ), true , null );
121- MavenPomEditor editor = (MavenPomEditor )page .openEditor (new FileEditorInput ( pomFile ) , MavenPomEditor .EDITOR_ID );
116+
117+ MavenPomEditor editor = (MavenPomEditor ) IDE .openEditor (page , pomFile , MavenPomEditor .EDITOR_ID );
122118 Assert .assertNotNull (editor .getSourcePage ());
123119 Assert .assertEquals (editor .getSourcePage (), editor .getActiveEditor ());
124120 }
125121
126122 @ Test
127123 public void testOpenChildThenParentResolvesParent () throws Exception {
128- try (InputStream content = getClass ().getResourceAsStream ("pom-parent.xml" )) {
129- createProject ("parent" , content );
130- }
131- IProject child = null ;
132- try (InputStream content = getClass ().getResourceAsStream ("pom-child.xml" )) {
133- child = createProject ("child" , content );
134- }
124+ createMavenProject ("parent" , "pom-parent.xml" );
125+ IProject child = createMavenProject ("child" , "pom-child.xml" );
135126 IFile pomFile = child .getFile ("pom.xml" );
136- page .openEditor (new FileEditorInput ( pomFile ) , GENERIC_EDITOR );
127+ IDE .openEditor (page , pomFile , GENERIC_EDITOR );
137128 Display display = page .getWorkbenchWindow ().getShell ().getDisplay ();
138129 assertTrue ("Expected marker not published" , DisplayHelper .waitForCondition (display , WAIT_TIMEOUT , () -> {
139130 try {
@@ -147,4 +138,11 @@ public void testOpenChildThenParentResolvesParent() throws Exception {
147138 }
148139 }));
149140 }
141+
142+ private IProject createMavenProject (String projectName , String pomFileName ) throws CoreException , IOException {
143+ try (InputStream pomContent = getClass ().getResourceAsStream (pomFileName )) {
144+ return createProject (projectName , pomContent );
145+ }
146+ }
147+
150148}
0 commit comments