@eclipse-che/che-e2e 7.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/README.md +86 -0
  2. package/TestConstants.ts +263 -0
  3. package/TimeoutConstants.ts +220 -0
  4. package/dist/TestConstants.d.ts +206 -0
  5. package/dist/TestConstants.d.ts.map +1 -0
  6. package/dist/TestConstants.js +216 -0
  7. package/dist/TestConstants.js.map +1 -0
  8. package/dist/TimeoutConstants.d.ts +164 -0
  9. package/dist/TimeoutConstants.d.ts.map +1 -0
  10. package/dist/TimeoutConstants.js +175 -0
  11. package/dist/TimeoutConstants.js.map +1 -0
  12. package/dist/driver/CheReporter.d.ts +18 -0
  13. package/dist/driver/CheReporter.d.ts.map +1 -0
  14. package/dist/driver/CheReporter.js +180 -0
  15. package/dist/driver/CheReporter.js.map +1 -0
  16. package/dist/driver/ChromeDriver.d.ts +21 -0
  17. package/dist/driver/ChromeDriver.d.ts.map +1 -0
  18. package/dist/driver/ChromeDriver.js +75 -0
  19. package/dist/driver/ChromeDriver.js.map +1 -0
  20. package/dist/driver/IDriver.d.ts +14 -0
  21. package/dist/driver/IDriver.d.ts.map +1 -0
  22. package/dist/driver/IDriver.js +3 -0
  23. package/dist/driver/IDriver.js.map +1 -0
  24. package/dist/index.d.ts +67 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +92 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/inversify.config.d.ts +13 -0
  29. package/dist/inversify.config.d.ts.map +1 -0
  30. package/dist/inversify.config.js +126 -0
  31. package/dist/inversify.config.js.map +1 -0
  32. package/dist/inversify.types.d.ts +68 -0
  33. package/dist/inversify.types.d.ts.map +1 -0
  34. package/dist/inversify.types.js +72 -0
  35. package/dist/inversify.types.js.map +1 -0
  36. package/dist/pageobjects/dashboard/CreateWorkspace.d.ts +20 -0
  37. package/dist/pageobjects/dashboard/CreateWorkspace.d.ts.map +1 -0
  38. package/dist/pageobjects/dashboard/CreateWorkspace.js +65 -0
  39. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -0
  40. package/dist/pageobjects/dashboard/Dashboard.d.ts +24 -0
  41. package/dist/pageobjects/dashboard/Dashboard.d.ts.map +1 -0
  42. package/dist/pageobjects/dashboard/Dashboard.js +111 -0
  43. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -0
  44. package/dist/pageobjects/dashboard/Workspaces.d.ts +44 -0
  45. package/dist/pageobjects/dashboard/Workspaces.d.ts.map +1 -0
  46. package/dist/pageobjects/dashboard/Workspaces.js +157 -0
  47. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -0
  48. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.d.ts +42 -0
  49. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.d.ts.map +1 -0
  50. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +138 -0
  51. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -0
  52. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.d.ts +29 -0
  53. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.d.ts.map +1 -0
  54. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +97 -0
  55. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +1 -0
  56. package/dist/pageobjects/ide/ContextMenu.d.ts +22 -0
  57. package/dist/pageobjects/ide/ContextMenu.d.ts.map +1 -0
  58. package/dist/pageobjects/ide/ContextMenu.js +66 -0
  59. package/dist/pageobjects/ide/ContextMenu.js.map +1 -0
  60. package/dist/pageobjects/ide/DebugView.d.ts +32 -0
  61. package/dist/pageobjects/ide/DebugView.d.ts.map +1 -0
  62. package/dist/pageobjects/ide/DebugView.js +98 -0
  63. package/dist/pageobjects/ide/DebugView.js.map +1 -0
  64. package/dist/pageobjects/ide/DialogWindow.d.ts +28 -0
  65. package/dist/pageobjects/ide/DialogWindow.d.ts.map +1 -0
  66. package/dist/pageobjects/ide/DialogWindow.js +102 -0
  67. package/dist/pageobjects/ide/DialogWindow.js.map +1 -0
  68. package/dist/pageobjects/ide/Editor.d.ts +78 -0
  69. package/dist/pageobjects/ide/Editor.d.ts.map +1 -0
  70. package/dist/pageobjects/ide/Editor.js +463 -0
  71. package/dist/pageobjects/ide/Editor.js.map +1 -0
  72. package/dist/pageobjects/ide/Ide.d.ts +61 -0
  73. package/dist/pageobjects/ide/Ide.d.ts.map +1 -0
  74. package/dist/pageobjects/ide/Ide.js +312 -0
  75. package/dist/pageobjects/ide/Ide.js.map +1 -0
  76. package/dist/pageobjects/ide/LeftToolBar.d.ts +23 -0
  77. package/dist/pageobjects/ide/LeftToolBar.d.ts.map +1 -0
  78. package/dist/pageobjects/ide/LeftToolBar.js +81 -0
  79. package/dist/pageobjects/ide/LeftToolBar.js.map +1 -0
  80. package/dist/pageobjects/ide/NavigationBar.d.ts +9 -0
  81. package/dist/pageobjects/ide/NavigationBar.d.ts.map +1 -0
  82. package/dist/pageobjects/ide/NavigationBar.js +57 -0
  83. package/dist/pageobjects/ide/NavigationBar.js.map +1 -0
  84. package/dist/pageobjects/ide/NotificationCenter.d.ts +22 -0
  85. package/dist/pageobjects/ide/NotificationCenter.d.ts.map +1 -0
  86. package/dist/pageobjects/ide/NotificationCenter.js +76 -0
  87. package/dist/pageobjects/ide/NotificationCenter.js.map +1 -0
  88. package/dist/pageobjects/ide/OpenDialogWidget.d.ts +36 -0
  89. package/dist/pageobjects/ide/OpenDialogWidget.d.ts.map +1 -0
  90. package/dist/pageobjects/ide/OpenDialogWidget.js +100 -0
  91. package/dist/pageobjects/ide/OpenDialogWidget.js.map +1 -0
  92. package/dist/pageobjects/ide/OpenWorkspaceWidget.d.ts +17 -0
  93. package/dist/pageobjects/ide/OpenWorkspaceWidget.d.ts.map +1 -0
  94. package/dist/pageobjects/ide/OpenWorkspaceWidget.js +62 -0
  95. package/dist/pageobjects/ide/OpenWorkspaceWidget.js.map +1 -0
  96. package/dist/pageobjects/ide/PreviewWidget.d.ts +35 -0
  97. package/dist/pageobjects/ide/PreviewWidget.d.ts.map +1 -0
  98. package/dist/pageobjects/ide/PreviewWidget.js +127 -0
  99. package/dist/pageobjects/ide/PreviewWidget.js.map +1 -0
  100. package/dist/pageobjects/ide/ProjectTree.d.ts +53 -0
  101. package/dist/pageobjects/ide/ProjectTree.d.ts.map +1 -0
  102. package/dist/pageobjects/ide/ProjectTree.js +275 -0
  103. package/dist/pageobjects/ide/ProjectTree.js.map +1 -0
  104. package/dist/pageobjects/ide/QuickOpenContainer.d.ts +20 -0
  105. package/dist/pageobjects/ide/QuickOpenContainer.d.ts.map +1 -0
  106. package/dist/pageobjects/ide/QuickOpenContainer.js +70 -0
  107. package/dist/pageobjects/ide/QuickOpenContainer.js.map +1 -0
  108. package/dist/pageobjects/ide/RightToolBar.d.ts +8 -0
  109. package/dist/pageobjects/ide/RightToolBar.d.ts.map +1 -0
  110. package/dist/pageobjects/ide/RightToolBar.js +51 -0
  111. package/dist/pageobjects/ide/RightToolBar.js.map +1 -0
  112. package/dist/pageobjects/ide/Terminal.d.ts +36 -0
  113. package/dist/pageobjects/ide/Terminal.d.ts.map +1 -0
  114. package/dist/pageobjects/ide/Terminal.js +204 -0
  115. package/dist/pageobjects/ide/Terminal.js.map +1 -0
  116. package/dist/pageobjects/ide/TopMenu.d.ts +28 -0
  117. package/dist/pageobjects/ide/TopMenu.d.ts.map +1 -0
  118. package/dist/pageobjects/ide/TopMenu.js +109 -0
  119. package/dist/pageobjects/ide/TopMenu.js.map +1 -0
  120. package/dist/pageobjects/ide/plugins/GitHubPullRequestPlugin.d.ts +36 -0
  121. package/dist/pageobjects/ide/plugins/GitHubPullRequestPlugin.d.ts.map +1 -0
  122. package/dist/pageobjects/ide/plugins/GitHubPullRequestPlugin.js +128 -0
  123. package/dist/pageobjects/ide/plugins/GitHubPullRequestPlugin.js.map +1 -0
  124. package/dist/pageobjects/ide/plugins/GitPlugin.d.ts +35 -0
  125. package/dist/pageobjects/ide/plugins/GitPlugin.d.ts.map +1 -0
  126. package/dist/pageobjects/ide/plugins/GitPlugin.js +120 -0
  127. package/dist/pageobjects/ide/plugins/GitPlugin.js.map +1 -0
  128. package/dist/pageobjects/ide/plugins/KubernetesPlugin.d.ts +32 -0
  129. package/dist/pageobjects/ide/plugins/KubernetesPlugin.d.ts.map +1 -0
  130. package/dist/pageobjects/ide/plugins/KubernetesPlugin.js +107 -0
  131. package/dist/pageobjects/ide/plugins/KubernetesPlugin.js.map +1 -0
  132. package/dist/pageobjects/ide/plugins/OpenshiftPlugin.d.ts +38 -0
  133. package/dist/pageobjects/ide/plugins/OpenshiftPlugin.d.ts.map +1 -0
  134. package/dist/pageobjects/ide/plugins/OpenshiftPlugin.js +99 -0
  135. package/dist/pageobjects/ide/plugins/OpenshiftPlugin.js.map +1 -0
  136. package/dist/pageobjects/ide/plugins/PluginsView.d.ts +43 -0
  137. package/dist/pageobjects/ide/plugins/PluginsView.d.ts.map +1 -0
  138. package/dist/pageobjects/ide/plugins/PluginsView.js +166 -0
  139. package/dist/pageobjects/ide/plugins/PluginsView.js.map +1 -0
  140. package/dist/pageobjects/login/ICheLoginPage.d.ts +13 -0
  141. package/dist/pageobjects/login/ICheLoginPage.d.ts.map +1 -0
  142. package/dist/pageobjects/login/ICheLoginPage.js +12 -0
  143. package/dist/pageobjects/login/ICheLoginPage.js.map +1 -0
  144. package/dist/pageobjects/login/IOcpLoginPage.d.ts +13 -0
  145. package/dist/pageobjects/login/IOcpLoginPage.d.ts.map +1 -0
  146. package/dist/pageobjects/login/IOcpLoginPage.js +12 -0
  147. package/dist/pageobjects/login/IOcpLoginPage.js.map +1 -0
  148. package/dist/pageobjects/login/MultiUserLoginPage.d.ts +18 -0
  149. package/dist/pageobjects/login/MultiUserLoginPage.d.ts.map +1 -0
  150. package/dist/pageobjects/login/MultiUserLoginPage.js +49 -0
  151. package/dist/pageobjects/login/MultiUserLoginPage.js.map +1 -0
  152. package/dist/pageobjects/login/OcpUserLoginPage.d.ts +18 -0
  153. package/dist/pageobjects/login/OcpUserLoginPage.d.ts.map +1 -0
  154. package/dist/pageobjects/login/OcpUserLoginPage.js +53 -0
  155. package/dist/pageobjects/login/OcpUserLoginPage.js.map +1 -0
  156. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.d.ts +20 -0
  157. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.d.ts.map +1 -0
  158. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js +75 -0
  159. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +1 -0
  160. package/dist/pageobjects/login/UpdateAccountInformationPage.d.ts +24 -0
  161. package/dist/pageobjects/login/UpdateAccountInformationPage.d.ts.map +1 -0
  162. package/dist/pageobjects/login/UpdateAccountInformationPage.js +74 -0
  163. package/dist/pageobjects/login/UpdateAccountInformationPage.js.map +1 -0
  164. package/dist/pageobjects/openshift/CheLoginPage.d.ts +27 -0
  165. package/dist/pageobjects/openshift/CheLoginPage.d.ts.map +1 -0
  166. package/dist/pageobjects/openshift/CheLoginPage.js +88 -0
  167. package/dist/pageobjects/openshift/CheLoginPage.js.map +1 -0
  168. package/dist/pageobjects/openshift/OcpLoginPage.d.ts +30 -0
  169. package/dist/pageobjects/openshift/OcpLoginPage.d.ts.map +1 -0
  170. package/dist/pageobjects/openshift/OcpLoginPage.js +106 -0
  171. package/dist/pageobjects/openshift/OcpLoginPage.js.map +1 -0
  172. package/dist/pageobjects/third-parties/GitLoginPage.d.ts +27 -0
  173. package/dist/pageobjects/third-parties/GitLoginPage.d.ts.map +1 -0
  174. package/dist/pageobjects/third-parties/GitLoginPage.js +85 -0
  175. package/dist/pageobjects/third-parties/GitLoginPage.js.map +1 -0
  176. package/dist/pageobjects/third-parties/GitOauthAppsSettings.d.ts +33 -0
  177. package/dist/pageobjects/third-parties/GitOauthAppsSettings.d.ts.map +1 -0
  178. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js +110 -0
  179. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js.map +1 -0
  180. package/dist/tests/devfiles/CSlashCPlusPlus.spec.d.ts +12 -0
  181. package/dist/tests/devfiles/CSlashCPlusPlus.spec.d.ts.map +1 -0
  182. package/dist/tests/devfiles/CSlashCPlusPlus.spec.js +74 -0
  183. package/dist/tests/devfiles/CSlashCPlusPlus.spec.js.map +1 -0
  184. package/dist/tests/devfiles/DevfileSmoke.spec.d.ts +11 -0
  185. package/dist/tests/devfiles/DevfileSmoke.spec.d.ts.map +1 -0
  186. package/dist/tests/devfiles/DevfileSmoke.spec.js +48 -0
  187. package/dist/tests/devfiles/DevfileSmoke.spec.js.map +1 -0
  188. package/dist/tests/devfiles/DotNetCore.spec.d.ts +12 -0
  189. package/dist/tests/devfiles/DotNetCore.spec.d.ts.map +1 -0
  190. package/dist/tests/devfiles/DotNetCore.spec.js +82 -0
  191. package/dist/tests/devfiles/DotNetCore.spec.js.map +1 -0
  192. package/dist/tests/devfiles/Go.spec.d.ts +2 -0
  193. package/dist/tests/devfiles/Go.spec.d.ts.map +1 -0
  194. package/dist/tests/devfiles/Go.spec.js +73 -0
  195. package/dist/tests/devfiles/Go.spec.js.map +1 -0
  196. package/dist/tests/devfiles/JavaMaven.spec.d.ts +11 -0
  197. package/dist/tests/devfiles/JavaMaven.spec.d.ts.map +1 -0
  198. package/dist/tests/devfiles/JavaMaven.spec.js +61 -0
  199. package/dist/tests/devfiles/JavaMaven.spec.js.map +1 -0
  200. package/dist/tests/devfiles/JavaSpringBoot.spec.d.ts +11 -0
  201. package/dist/tests/devfiles/JavaSpringBoot.spec.d.ts.map +1 -0
  202. package/dist/tests/devfiles/JavaSpringBoot.spec.js +67 -0
  203. package/dist/tests/devfiles/JavaSpringBoot.spec.js.map +1 -0
  204. package/dist/tests/devfiles/JavaVertx.spec.d.ts +11 -0
  205. package/dist/tests/devfiles/JavaVertx.spec.d.ts.map +1 -0
  206. package/dist/tests/devfiles/JavaVertx.spec.js +61 -0
  207. package/dist/tests/devfiles/JavaVertx.spec.js.map +1 -0
  208. package/dist/tests/devfiles/NodeJS.spec.d.ts +2 -0
  209. package/dist/tests/devfiles/NodeJS.spec.d.ts.map +1 -0
  210. package/dist/tests/devfiles/NodeJS.spec.js +65 -0
  211. package/dist/tests/devfiles/NodeJS.spec.js.map +1 -0
  212. package/dist/tests/devfiles/PHPSimple.spec.d.ts +12 -0
  213. package/dist/tests/devfiles/PHPSimple.spec.d.ts.map +1 -0
  214. package/dist/tests/devfiles/PHPSimple.spec.js +75 -0
  215. package/dist/tests/devfiles/PHPSimple.spec.js.map +1 -0
  216. package/dist/tests/devfiles/Python.spec.d.ts +2 -0
  217. package/dist/tests/devfiles/Python.spec.d.ts.map +1 -0
  218. package/dist/tests/devfiles/Python.spec.js +59 -0
  219. package/dist/tests/devfiles/Python.spec.js.map +1 -0
  220. package/dist/tests/devfiles/PythonDjango.spec.d.ts +2 -0
  221. package/dist/tests/devfiles/PythonDjango.spec.d.ts.map +1 -0
  222. package/dist/tests/devfiles/PythonDjango.spec.js +62 -0
  223. package/dist/tests/devfiles/PythonDjango.spec.js.map +1 -0
  224. package/dist/tests/devfiles/Quarkus.spec.d.ts +2 -0
  225. package/dist/tests/devfiles/Quarkus.spec.d.ts.map +1 -0
  226. package/dist/tests/devfiles/Quarkus.spec.js +70 -0
  227. package/dist/tests/devfiles/Quarkus.spec.js.map +1 -0
  228. package/dist/tests/devfiles/Scala.spec.d.ts +11 -0
  229. package/dist/tests/devfiles/Scala.spec.d.ts.map +1 -0
  230. package/dist/tests/devfiles/Scala.spec.js +67 -0
  231. package/dist/tests/devfiles/Scala.spec.js.map +1 -0
  232. package/dist/tests/e2e/FactoryUrl.spec.d.ts +2 -0
  233. package/dist/tests/e2e/FactoryUrl.spec.d.ts.map +1 -0
  234. package/dist/tests/e2e/FactoryUrl.spec.js +45 -0
  235. package/dist/tests/e2e/FactoryUrl.spec.js.map +1 -0
  236. package/dist/tests/e2e/GitPublishBranch.spec.d.ts +11 -0
  237. package/dist/tests/e2e/GitPublishBranch.spec.d.ts.map +1 -0
  238. package/dist/tests/e2e/GitPublishBranch.spec.js +88 -0
  239. package/dist/tests/e2e/GitPublishBranch.spec.js.map +1 -0
  240. package/dist/tests/e2e/GitSelfSignCert.spec.d.ts +11 -0
  241. package/dist/tests/e2e/GitSelfSignCert.spec.d.ts.map +1 -0
  242. package/dist/tests/e2e/GitSelfSignCert.spec.js +83 -0
  243. package/dist/tests/e2e/GitSelfSignCert.spec.js.map +1 -0
  244. package/dist/tests/e2e/GitSsh.spec.d.ts +11 -0
  245. package/dist/tests/e2e/GitSsh.spec.d.ts.map +1 -0
  246. package/dist/tests/e2e/GitSsh.spec.js +118 -0
  247. package/dist/tests/e2e/GitSsh.spec.js.map +1 -0
  248. package/dist/tests/e2e/OpenshiftConnector.spec.d.ts +11 -0
  249. package/dist/tests/e2e/OpenshiftConnector.spec.d.ts.map +1 -0
  250. package/dist/tests/e2e/OpenshiftConnector.spec.js +122 -0
  251. package/dist/tests/e2e/OpenshiftConnector.spec.js.map +1 -0
  252. package/dist/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.d.ts +2 -0
  253. package/dist/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.d.ts.map +1 -0
  254. package/dist/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js +53 -0
  255. package/dist/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js.map +1 -0
  256. package/dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.d.ts +2 -0
  257. package/dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.d.ts.map +1 -0
  258. package/dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.js +51 -0
  259. package/dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.js.map +1 -0
  260. package/dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.d.ts +2 -0
  261. package/dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.d.ts.map +1 -0
  262. package/dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js +51 -0
  263. package/dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js.map +1 -0
  264. package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.d.ts +2 -0
  265. package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.d.ts.map +1 -0
  266. package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js +200 -0
  267. package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js.map +1 -0
  268. package/dist/tests/e2e_happy_path/HappyPath.spec.d.ts +11 -0
  269. package/dist/tests/e2e_happy_path/HappyPath.spec.d.ts.map +1 -0
  270. package/dist/tests/e2e_happy_path/HappyPath.spec.js +309 -0
  271. package/dist/tests/e2e_happy_path/HappyPath.spec.js.map +1 -0
  272. package/dist/tests/intelij/IntelijOpenWorkspace.spec.d.ts +11 -0
  273. package/dist/tests/intelij/IntelijOpenWorkspace.spec.d.ts.map +1 -0
  274. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js +43 -0
  275. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js.map +1 -0
  276. package/dist/tests/load_test/LoadTest.spec.d.ts +11 -0
  277. package/dist/tests/load_test/LoadTest.spec.d.ts.map +1 -0
  278. package/dist/tests/load_test/LoadTest.spec.js +44 -0
  279. package/dist/tests/load_test/LoadTest.spec.js.map +1 -0
  280. package/dist/tests/login/LinkCheAndOcpUsers.spec.d.ts +11 -0
  281. package/dist/tests/login/LinkCheAndOcpUsers.spec.d.ts.map +1 -0
  282. package/dist/tests/login/LinkCheAndOcpUsers.spec.js +39 -0
  283. package/dist/tests/login/LinkCheAndOcpUsers.spec.js.map +1 -0
  284. package/dist/tests/login/Login.spec.d.ts +11 -0
  285. package/dist/tests/login/Login.spec.d.ts.map +1 -0
  286. package/dist/tests/login/Login.spec.js +26 -0
  287. package/dist/tests/login/Login.spec.js.map +1 -0
  288. package/dist/tests/plugins/GitHubPullRequestPlugin.spec.d.ts +11 -0
  289. package/dist/tests/plugins/GitHubPullRequestPlugin.spec.d.ts.map +1 -0
  290. package/dist/tests/plugins/GitHubPullRequestPlugin.spec.js +122 -0
  291. package/dist/tests/plugins/GitHubPullRequestPlugin.spec.js.map +1 -0
  292. package/dist/tests/plugins/InstallPluginUsingUI.spec.d.ts +11 -0
  293. package/dist/tests/plugins/InstallPluginUsingUI.spec.d.ts.map +1 -0
  294. package/dist/tests/plugins/InstallPluginUsingUI.spec.js +69 -0
  295. package/dist/tests/plugins/InstallPluginUsingUI.spec.js.map +1 -0
  296. package/dist/tests/plugins/JavaPlugin.spec.d.ts +2 -0
  297. package/dist/tests/plugins/JavaPlugin.spec.d.ts.map +1 -0
  298. package/dist/tests/plugins/JavaPlugin.spec.js +82 -0
  299. package/dist/tests/plugins/JavaPlugin.spec.js.map +1 -0
  300. package/dist/tests/plugins/PhpPlugin.spec.d.ts +2 -0
  301. package/dist/tests/plugins/PhpPlugin.spec.d.ts.map +1 -0
  302. package/dist/tests/plugins/PhpPlugin.spec.js +94 -0
  303. package/dist/tests/plugins/PhpPlugin.spec.js.map +1 -0
  304. package/dist/tests/plugins/PythonPlugin.spec.d.ts +11 -0
  305. package/dist/tests/plugins/PythonPlugin.spec.d.ts.map +1 -0
  306. package/dist/tests/plugins/PythonPlugin.spec.js +80 -0
  307. package/dist/tests/plugins/PythonPlugin.spec.js.map +1 -0
  308. package/dist/tests/plugins/TypescriptPlugin.spec.d.ts +11 -0
  309. package/dist/tests/plugins/TypescriptPlugin.spec.d.ts.map +1 -0
  310. package/dist/tests/plugins/TypescriptPlugin.spec.js +147 -0
  311. package/dist/tests/plugins/TypescriptPlugin.spec.js.map +1 -0
  312. package/dist/tests/plugins/VscodeKubernetesPlugin.spec.d.ts +11 -0
  313. package/dist/tests/plugins/VscodeKubernetesPlugin.spec.d.ts.map +1 -0
  314. package/dist/tests/plugins/VscodeKubernetesPlugin.spec.js +76 -0
  315. package/dist/tests/plugins/VscodeKubernetesPlugin.spec.js.map +1 -0
  316. package/dist/tests/plugins/VscodeShellcheckPlugin.spec.d.ts +11 -0
  317. package/dist/tests/plugins/VscodeShellcheckPlugin.spec.d.ts.map +1 -0
  318. package/dist/tests/plugins/VscodeShellcheckPlugin.spec.js +89 -0
  319. package/dist/tests/plugins/VscodeShellcheckPlugin.spec.js.map +1 -0
  320. package/dist/tests/plugins/VscodeValePlugin.spec.d.ts +11 -0
  321. package/dist/tests/plugins/VscodeValePlugin.spec.d.ts.map +1 -0
  322. package/dist/tests/plugins/VscodeValePlugin.spec.js +77 -0
  323. package/dist/tests/plugins/VscodeValePlugin.spec.js.map +1 -0
  324. package/dist/tests/plugins/VscodeXmlPlugin.spec.d.ts +11 -0
  325. package/dist/tests/plugins/VscodeXmlPlugin.spec.d.ts.map +1 -0
  326. package/dist/tests/plugins/VscodeXmlPlugin.spec.js +98 -0
  327. package/dist/tests/plugins/VscodeXmlPlugin.spec.js.map +1 -0
  328. package/dist/tests/plugins/VscodeYamlPlugin.spec.d.ts +11 -0
  329. package/dist/tests/plugins/VscodeYamlPlugin.spec.d.ts.map +1 -0
  330. package/dist/tests/plugins/VscodeYamlPlugin.spec.js +96 -0
  331. package/dist/tests/plugins/VscodeYamlPlugin.spec.js.map +1 -0
  332. package/dist/testsLibrary/CodeExecutionTests.d.ts +49 -0
  333. package/dist/testsLibrary/CodeExecutionTests.d.ts.map +1 -0
  334. package/dist/testsLibrary/CodeExecutionTests.js +222 -0
  335. package/dist/testsLibrary/CodeExecutionTests.js.map +1 -0
  336. package/dist/testsLibrary/LanguageServerTests.d.ts +36 -0
  337. package/dist/testsLibrary/LanguageServerTests.d.ts.map +1 -0
  338. package/dist/testsLibrary/LanguageServerTests.js +237 -0
  339. package/dist/testsLibrary/LanguageServerTests.js.map +1 -0
  340. package/dist/testsLibrary/ProjectAndFileTests.d.ts +28 -0
  341. package/dist/testsLibrary/ProjectAndFileTests.d.ts.map +1 -0
  342. package/dist/testsLibrary/ProjectAndFileTests.js +100 -0
  343. package/dist/testsLibrary/ProjectAndFileTests.js.map +1 -0
  344. package/dist/testsLibrary/WorkspaceHandlingTests.d.ts +29 -0
  345. package/dist/testsLibrary/WorkspaceHandlingTests.d.ts.map +1 -0
  346. package/dist/testsLibrary/WorkspaceHandlingTests.js +87 -0
  347. package/dist/testsLibrary/WorkspaceHandlingTests.js.map +1 -0
  348. package/dist/utils/AnimationChecker.d.ts +16 -0
  349. package/dist/utils/AnimationChecker.d.ts.map +1 -0
  350. package/dist/utils/AnimationChecker.js +45 -0
  351. package/dist/utils/AnimationChecker.js.map +1 -0
  352. package/dist/utils/BrowserTabsUtil.d.ts +28 -0
  353. package/dist/utils/BrowserTabsUtil.d.ts.map +1 -0
  354. package/dist/utils/BrowserTabsUtil.js +115 -0
  355. package/dist/utils/BrowserTabsUtil.js.map +1 -0
  356. package/dist/utils/DriverHelper.d.ts +76 -0
  357. package/dist/utils/DriverHelper.d.ts.map +1 -0
  358. package/dist/utils/DriverHelper.js +616 -0
  359. package/dist/utils/DriverHelper.js.map +1 -0
  360. package/dist/utils/KeycloackUrlHandler.d.ts +15 -0
  361. package/dist/utils/KeycloackUrlHandler.d.ts.map +1 -0
  362. package/dist/utils/KeycloackUrlHandler.js +30 -0
  363. package/dist/utils/KeycloackUrlHandler.js.map +1 -0
  364. package/dist/utils/Logger.d.ts +39 -0
  365. package/dist/utils/Logger.d.ts.map +1 -0
  366. package/dist/utils/Logger.js +84 -0
  367. package/dist/utils/Logger.js.map +1 -0
  368. package/dist/utils/PreferencesHandler.d.ts +52 -0
  369. package/dist/utils/PreferencesHandler.d.ts.map +1 -0
  370. package/dist/utils/PreferencesHandler.js +139 -0
  371. package/dist/utils/PreferencesHandler.js.map +1 -0
  372. package/dist/utils/Sanitizer.d.ts +13 -0
  373. package/dist/utils/Sanitizer.d.ts.map +1 -0
  374. package/dist/utils/Sanitizer.js +29 -0
  375. package/dist/utils/Sanitizer.js.map +1 -0
  376. package/dist/utils/ScreenCatcher.d.ts +12 -0
  377. package/dist/utils/ScreenCatcher.d.ts.map +1 -0
  378. package/dist/utils/ScreenCatcher.js +107 -0
  379. package/dist/utils/ScreenCatcher.js.map +1 -0
  380. package/dist/utils/VCS/CheGitApi.d.ts +8 -0
  381. package/dist/utils/VCS/CheGitApi.d.ts.map +1 -0
  382. package/dist/utils/VCS/CheGitApi.js +42 -0
  383. package/dist/utils/VCS/CheGitApi.js.map +1 -0
  384. package/dist/utils/VCS/github/GitHubUtil.d.ts +15 -0
  385. package/dist/utils/VCS/github/GitHubUtil.d.ts.map +1 -0
  386. package/dist/utils/VCS/github/GitHubUtil.js +106 -0
  387. package/dist/utils/VCS/github/GitHubUtil.js.map +1 -0
  388. package/dist/utils/WorkspaceNameHandler.d.ts +17 -0
  389. package/dist/utils/WorkspaceNameHandler.d.ts.map +1 -0
  390. package/dist/utils/WorkspaceNameHandler.js +60 -0
  391. package/dist/utils/WorkspaceNameHandler.js.map +1 -0
  392. package/dist/utils/requestHandlers/CheApiRequestHandler.d.ts +28 -0
  393. package/dist/utils/requestHandlers/CheApiRequestHandler.d.ts.map +1 -0
  394. package/dist/utils/requestHandlers/CheApiRequestHandler.js +100 -0
  395. package/dist/utils/requestHandlers/CheApiRequestHandler.js.map +1 -0
  396. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.d.ts +18 -0
  397. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.d.ts.map +1 -0
  398. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.js +33 -0
  399. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -0
  400. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.d.ts +14 -0
  401. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.d.ts.map +1 -0
  402. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.js +12 -0
  403. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.js.map +1 -0
  404. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.d.ts +5 -0
  405. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.d.ts.map +1 -0
  406. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.js +50 -0
  407. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.js.map +1 -0
  408. package/dist/utils/requestHandlers/tokens/ITokenHandler.d.ts +13 -0
  409. package/dist/utils/requestHandlers/tokens/ITokenHandler.d.ts.map +1 -0
  410. package/dist/utils/requestHandlers/tokens/ITokenHandler.js +12 -0
  411. package/dist/utils/requestHandlers/tokens/ITokenHandler.js.map +1 -0
  412. package/dist/utils/workspace/ITestWorkspaceUtil.d.ts +25 -0
  413. package/dist/utils/workspace/ITestWorkspaceUtil.d.ts.map +1 -0
  414. package/dist/utils/workspace/ITestWorkspaceUtil.js +12 -0
  415. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +1 -0
  416. package/dist/utils/workspace/TestWorkspaceUtil.d.ts +34 -0
  417. package/dist/utils/workspace/TestWorkspaceUtil.d.ts.map +1 -0
  418. package/dist/utils/workspace/TestWorkspaceUtil.js +233 -0
  419. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -0
  420. package/dist/utils/workspace/WorkspaceStatus.d.ts +15 -0
  421. package/dist/utils/workspace/WorkspaceStatus.d.ts.map +1 -0
  422. package/dist/utils/workspace/WorkspaceStatus.js +19 -0
  423. package/dist/utils/workspace/WorkspaceStatus.js.map +1 -0
  424. package/driver/CheReporter.ts +202 -0
  425. package/driver/ChromeDriver.ts +71 -0
  426. package/driver/IDriver.ts +14 -0
  427. package/files/devfiles/plugins/GitHubPullRequestPlugin.yaml +11 -0
  428. package/files/devfiles/plugins/InstallPluginUsingUI.yaml +3 -0
  429. package/files/devfiles/plugins/Java11PluginTest.yaml +17 -0
  430. package/files/devfiles/plugins/PhpPluginTest.yaml +47 -0
  431. package/files/devfiles/plugins/PythonPluginTest.yaml +14 -0
  432. package/files/devfiles/plugins/TypescriptNodeDebug2PluginTest.yaml +49 -0
  433. package/files/devfiles/plugins/VscodeKubernetesPlugin.yaml +12 -0
  434. package/files/devfiles/plugins/VscodeShellcheckPlugin.yaml +12 -0
  435. package/files/devfiles/plugins/VscodeValePlugin.yaml +42 -0
  436. package/files/devfiles/plugins/VscodeXmlPlugin.yaml +12 -0
  437. package/files/devfiles/plugins/VscodeYamlPlugin.yaml +12 -0
  438. package/files/happy-path/containers-happy-path.yaml +127 -0
  439. package/files/happy-path/happy-path-workspace.yaml +95 -0
  440. package/files/happy-path/petclinic-classpath.txt +49 -0
  441. package/generateIndex.sh +35 -0
  442. package/index.ts +67 -0
  443. package/initDefaultValues.sh +27 -0
  444. package/initDevfileTests.sh +48 -0
  445. package/initPluginTest.sh +9 -0
  446. package/inversify.config.ts +134 -0
  447. package/inversify.types.ts +71 -0
  448. package/mocha-all-devfiles.opts +8 -0
  449. package/mocha-all-factories.opts +8 -0
  450. package/mocha-all-plugins.opts +7 -0
  451. package/mocha-connector.opts +7 -0
  452. package/mocha-devworkspace-happy-path.opts +7 -0
  453. package/mocha-factory.opts +7 -0
  454. package/mocha-git-publish-branch.opts +7 -0
  455. package/mocha-git-self-sign-cert.opts +7 -0
  456. package/mocha-git-ssh.opts +7 -0
  457. package/mocha-happy-path.opts +8 -0
  458. package/mocha-java-vertx.opts +7 -0
  459. package/mocha-load.opts +7 -0
  460. package/mocha-single-devfile.opts +6 -0
  461. package/mocha-wkspc-creation-and-ls.opts +7 -0
  462. package/mocha.intelij.opts +7 -0
  463. package/mocha.ocp.link.opts +6 -0
  464. package/mocha.opts +7 -0
  465. package/mocha.single.plugin.opts +5 -0
  466. package/package.json +59 -0
  467. package/pageobjects/dashboard/CreateWorkspace.ts +58 -0
  468. package/pageobjects/dashboard/Dashboard.ts +112 -0
  469. package/pageobjects/dashboard/Workspaces.ts +189 -0
  470. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +153 -0
  471. package/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.ts +96 -0
  472. package/pageobjects/ide/ContextMenu.ts +55 -0
  473. package/pageobjects/ide/DebugView.ts +88 -0
  474. package/pageobjects/ide/DialogWindow.ts +101 -0
  475. package/pageobjects/ide/Editor.ts +601 -0
  476. package/pageobjects/ide/Ide.ts +370 -0
  477. package/pageobjects/ide/LeftToolBar.ts +81 -0
  478. package/pageobjects/ide/NavigationBar.ts +41 -0
  479. package/pageobjects/ide/NotificationCenter.ts +75 -0
  480. package/pageobjects/ide/OpenDialogWidget.ts +92 -0
  481. package/pageobjects/ide/OpenWorkspaceWidget.ts +48 -0
  482. package/pageobjects/ide/PreviewWidget.ts +135 -0
  483. package/pageobjects/ide/ProjectTree.ts +335 -0
  484. package/pageobjects/ide/QuickOpenContainer.ts +59 -0
  485. package/pageobjects/ide/RightToolBar.ts +34 -0
  486. package/pageobjects/ide/Terminal.ts +245 -0
  487. package/pageobjects/ide/TopMenu.ts +103 -0
  488. package/pageobjects/ide/plugins/GitHubPullRequestPlugin.ts +130 -0
  489. package/pageobjects/ide/plugins/GitPlugin.ts +118 -0
  490. package/pageobjects/ide/plugins/KubernetesPlugin.ts +113 -0
  491. package/pageobjects/ide/plugins/OpenshiftPlugin.ts +87 -0
  492. package/pageobjects/ide/plugins/PluginsView.ts +191 -0
  493. package/pageobjects/login/ICheLoginPage.ts +13 -0
  494. package/pageobjects/login/IOcpLoginPage.ts +13 -0
  495. package/pageobjects/login/MultiUserLoginPage.ts +33 -0
  496. package/pageobjects/login/OcpUserLoginPage.ts +38 -0
  497. package/pageobjects/login/RegularUserOcpCheLoginPage.ts +61 -0
  498. package/pageobjects/login/UpdateAccountInformationPage.ts +70 -0
  499. package/pageobjects/openshift/CheLoginPage.ts +91 -0
  500. package/pageobjects/openshift/OcpLoginPage.ts +113 -0
  501. package/pageobjects/third-parties/GitLoginPage.ts +81 -0
  502. package/pageobjects/third-parties/GitOauthAppsSettings.ts +110 -0
  503. package/tests/devfiles/CSlashCPlusPlus.spec.ts +81 -0
  504. package/tests/devfiles/DevfileSmoke.spec.ts +53 -0
  505. package/tests/devfiles/DotNetCore.spec.ts +90 -0
  506. package/tests/devfiles/Go.spec.ts +84 -0
  507. package/tests/devfiles/JavaMaven.spec.ts +67 -0
  508. package/tests/devfiles/JavaSpringBoot.spec.ts +74 -0
  509. package/tests/devfiles/JavaVertx.spec.ts +68 -0
  510. package/tests/devfiles/NodeJS.spec.ts +74 -0
  511. package/tests/devfiles/PHPSimple.spec.ts +83 -0
  512. package/tests/devfiles/Python.spec.ts +67 -0
  513. package/tests/devfiles/PythonDjango.spec.ts +70 -0
  514. package/tests/devfiles/Quarkus.spec.ts +79 -0
  515. package/tests/devfiles/Scala.spec.ts +74 -0
  516. package/tests/e2e/FactoryUrl.spec.ts +51 -0
  517. package/tests/e2e/GitPublishBranch.spec.ts +107 -0
  518. package/tests/e2e/GitSelfSignCert.spec.ts +107 -0
  519. package/tests/e2e/GitSsh.spec.ts +143 -0
  520. package/tests/e2e/OpenshiftConnector.spec.ts +142 -0
  521. package/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +61 -0
  522. package/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +59 -0
  523. package/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +61 -0
  524. package/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.ts +204 -0
  525. package/tests/e2e_happy_path/HappyPath.spec.ts +342 -0
  526. package/tests/intelij/IntelijOpenWorkspace.spec.ts +49 -0
  527. package/tests/load_test/LoadTest.spec.ts +54 -0
  528. package/tests/login/LinkCheAndOcpUsers.spec.ts +47 -0
  529. package/tests/login/Login.spec.ts +27 -0
  530. package/tests/plugins/GitHubPullRequestPlugin.spec.ts +150 -0
  531. package/tests/plugins/InstallPluginUsingUI.spec.ts +83 -0
  532. package/tests/plugins/JavaPlugin.spec.ts +108 -0
  533. package/tests/plugins/PhpPlugin.spec.ts +121 -0
  534. package/tests/plugins/PythonPlugin.spec.ts +92 -0
  535. package/tests/plugins/TypescriptPlugin.spec.ts +179 -0
  536. package/tests/plugins/VscodeKubernetesPlugin.spec.ts +89 -0
  537. package/tests/plugins/VscodeShellcheckPlugin.spec.ts +106 -0
  538. package/tests/plugins/VscodeValePlugin.spec.ts +91 -0
  539. package/tests/plugins/VscodeXmlPlugin.spec.ts +120 -0
  540. package/tests/plugins/VscodeYamlPlugin.spec.ts +117 -0
  541. package/testsLibrary/CodeExecutionTests.ts +196 -0
  542. package/testsLibrary/LanguageServerTests.ts +210 -0
  543. package/testsLibrary/ProjectAndFileTests.ts +82 -0
  544. package/testsLibrary/WorkspaceHandlingTests.ts +68 -0
  545. package/tsconfig.json +16 -0
  546. package/tslint.json +123 -0
  547. package/utils/AnimationChecker.ts +27 -0
  548. package/utils/BrowserTabsUtil.ts +120 -0
  549. package/utils/DriverHelper.ts +753 -0
  550. package/utils/KeycloackUrlHandler.ts +32 -0
  551. package/utils/Logger.ts +87 -0
  552. package/utils/PreferencesHandler.ts +120 -0
  553. package/utils/Sanitizer.ts +20 -0
  554. package/utils/ScreenCatcher.ts +74 -0
  555. package/utils/VCS/CheGitApi.ts +26 -0
  556. package/utils/VCS/github/GitHubUtil.ts +91 -0
  557. package/utils/WorkspaceNameHandler.ts +48 -0
  558. package/utils/requestHandlers/CheApiRequestHandler.ts +83 -0
  559. package/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.ts +27 -0
  560. package/utils/requestHandlers/headers/IAuthorizationHeaderHandler.ts +15 -0
  561. package/utils/requestHandlers/tokens/CheMultiuserTokenHandler.ts +39 -0
  562. package/utils/requestHandlers/tokens/ITokenHandler.ts +14 -0
  563. package/utils/workspace/ITestWorkspaceUtil.ts +26 -0
  564. package/utils/workspace/TestWorkspaceUtil.ts +275 -0
  565. package/utils/workspace/WorkspaceStatus.ts +15 -0
@@ -0,0 +1,142 @@
1
+ /*********************************************************************
2
+ * Copyright (c) 2019 Red Hat, Inc.
3
+ *
4
+ * This program and the accompanying materials are made
5
+ * available under the terms of the Eclipse Public License 2.0
6
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ **********************************************************************/
10
+
11
+ import { Key } from 'selenium-webdriver';
12
+ import { e2eContainer } from '../../inversify.config';
13
+ import { CLASSES, TYPES } from '../../inversify.types';
14
+ import { Dashboard } from '../../pageobjects/dashboard/Dashboard';
15
+ import { Ide } from '../../pageobjects/ide/Ide';
16
+ import { Buttons, Locations, OpenDialogWidget } from '../../pageobjects/ide/OpenDialogWidget';
17
+ import { OpenshiftAppExplorerToolbar, OpenshiftContextMenuItems, OpenshiftPlugin } from '../../pageobjects/ide/plugins/OpenshiftPlugin';
18
+ import { ProjectTree } from '../../pageobjects/ide/ProjectTree';
19
+ import { QuickOpenContainer } from '../../pageobjects/ide/QuickOpenContainer';
20
+ import { Terminal } from '../../pageobjects/ide/Terminal';
21
+ import { TopMenu } from '../../pageobjects/ide/TopMenu';
22
+ import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage';
23
+ import { TestConstants } from '../../TestConstants';
24
+ import { DriverHelper } from '../../utils/DriverHelper';
25
+ import { PreferencesHandler, TerminalRendererType } from '../../utils/PreferencesHandler';
26
+ import { TestWorkspaceUtil } from '../../utils/workspace/TestWorkspaceUtil';
27
+ import { TimeoutConstants } from '../../TimeoutConstants';
28
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
29
+ import CheReporter from '../../driver/CheReporter';
30
+
31
+ const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
32
+ const ide: Ide = e2eContainer.get(CLASSES.Ide);
33
+ const loginPage: ICheLoginPage = e2eContainer.get<ICheLoginPage>(TYPES.CheLogin);
34
+ const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(TYPES.WorkspaceUtil);
35
+ const openshiftPlugin: OpenshiftPlugin = e2eContainer.get(CLASSES.OpenshiftPlugin);
36
+ const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard);
37
+ const quickOpenContainer: QuickOpenContainer = e2eContainer.get(CLASSES.QuickOpenContainer);
38
+ const openDialogWidget: OpenDialogWidget = e2eContainer.get(CLASSES.OpenDialogWidget);
39
+ const preferencesHalder: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler);
40
+ const terminal: Terminal = e2eContainer.get(CLASSES.Terminal);
41
+ const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
42
+ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
43
+ const projectName: string = 'node-js';
44
+ const selectSugestionSuffix: string = '(Press \'Enter\' to confirm your input or \'Escape\' to cancel)';
45
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
46
+
47
+ suite('Openshift connector user story', async () => {
48
+ const workspacePrefixUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/dashboard/#/ide/${TestConstants.TS_SELENIUM_USERNAME}/`;
49
+ let wsName: string;
50
+
51
+ suiteSetup(async function () {
52
+ preferencesHalder.setTerminalType(TerminalRendererType.dom);
53
+ const wsConfig = await testWorkspaceUtils.getBaseDevfile();
54
+ wsName = wsConfig.metadata!.name!;
55
+ wsConfig.projects = [
56
+ {
57
+ 'name': 'node-js',
58
+ 'source': {
59
+ 'location': 'https://github.com/maxura/nodejs-hello-world.git',
60
+ 'type': 'git'
61
+ }
62
+ }
63
+ ],
64
+
65
+ wsConfig.components = [
66
+ {
67
+ 'id': 'redhat/vscode-openshift-connector/latest',
68
+ 'type': 'chePlugin'
69
+ }
70
+ ];
71
+
72
+ await browserTabsUtil.navigateTo(TestConstants.TS_SELENIUM_BASE_URL);
73
+ await loginPage.login();
74
+ await testWorkspaceUtils.createWsFromDevFile(wsConfig);
75
+ });
76
+
77
+ test('Login into workspace and open plugin', async () => {
78
+ await dashboard.openDashboard();
79
+ await browserTabsUtil.navigateTo(workspacePrefixUrl + wsName);
80
+ CheReporter.registerRunningWorkspace(wsName);
81
+ await ide.waitWorkspaceAndIde();
82
+ await projectTree.openProjectTreeContainer();
83
+ await projectTree.waitProjectImported(projectName, 'index.js');
84
+ await dashboard.waitDisappearanceNavigationMenu();
85
+ await openshiftPlugin.clickOnOpenshiftToollBarIcon();
86
+ await openshiftPlugin.waitOpenshiftConnectorTree();
87
+ });
88
+
89
+ test('Login into current cluster', async () => {
90
+ const provideAuthenticationSuffix: string = `for basic authentication to the API server ${selectSugestionSuffix}`;
91
+ const loginIntoClusterMessage: string = 'You are already logged in the cluster. Do you want to login to a different cluster?';
92
+ const openshiftIP: string = await openshiftPlugin.getClusterIP();
93
+
94
+ await openshiftPlugin.clickOnOpenshiftConnectorTree();
95
+ await openshiftPlugin.clickOnApplicationToolbarItem(OpenshiftAppExplorerToolbar.LogIntoCluster);
96
+ await ide.clickOnNotificationButton(loginIntoClusterMessage, 'Yes');
97
+ await quickOpenContainer.clickOnContainerItem('Credentials');
98
+ await quickOpenContainer.clickOnContainerItem(`https://${openshiftIP}`);
99
+ await quickOpenContainer.clickOnContainerItem('$(plus) Add new user...');
100
+ await quickOpenContainer.typeAndSelectSuggestion(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_USERNAME, `Provide Username ${provideAuthenticationSuffix}`);
101
+ await quickOpenContainer.typeAndSelectSuggestion(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_PASSWORD, `Provide Password ${provideAuthenticationSuffix}`);
102
+
103
+ await topMenu.selectOption('View', 'Find Command...');
104
+ await quickOpenContainer.typeAndSelectSuggestion('OpenShift: Set Active Project', 'OpenShift: Set Active Project');
105
+ await quickOpenContainer.typeAndSelectSuggestion(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_PROJECT, TestConstants.TS_TEST_OPENSHIFT_PLUGIN_PROJECT);
106
+ await openshiftPlugin.clickOnItemInTree(openshiftIP);
107
+ await openshiftPlugin.waitItemInTree(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_PROJECT);
108
+ });
109
+
110
+ test('Create new component with application', async () => {
111
+ await topMenu.selectOption('View', 'Find Command...');
112
+ await quickOpenContainer.typeAndSelectSuggestion('OpenShift: New Component', 'OpenShift: New Component from local folder');
113
+ await quickOpenContainer.clickOnContainerItem('$(plus) Create new Application...');
114
+ await quickOpenContainer.typeAndSelectSuggestion('node-js-app', `Provide Application name ${selectSugestionSuffix}` );
115
+ await quickOpenContainer.clickOnContainerItem('$(plus) Add new context folder.');
116
+ await openDialogWidget.selectLocationAndAddContextFolder(Locations.Root, `projects/${projectName}`, Buttons.AddContext);
117
+ await quickOpenContainer.typeAndSelectSuggestion('component-node-js', `Provide Component name ${selectSugestionSuffix}`);
118
+
119
+ await quickOpenContainer.clickOnContainerItem(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_COMPONENT_TYPE);
120
+ await quickOpenContainer.clickOnContainerItem(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_COMPONENT_VERSION);
121
+
122
+ await driverHelper.wait(TimeoutConstants.TS_PROJECT_TREE_TIMEOUT);
123
+ await openshiftPlugin.waitItemInTree(TestConstants.TS_TEST_OPENSHIFT_PLUGIN_PROJECT);
124
+ await openshiftPlugin.waitItemInTree('node-js-app');
125
+ await openshiftPlugin.waitItemInTree('component-node-js');
126
+ });
127
+
128
+ test('Push new component', async () => {
129
+ driverHelper.getDriver().switchTo().activeElement().sendKeys(Key.F1);
130
+ await quickOpenContainer.typeAndSelectSuggestion(OpenshiftContextMenuItems.Push, 'OpenShift: Push Component');
131
+ await quickOpenContainer.clickOnContainerItem('node-js-app');
132
+ await quickOpenContainer.clickOnContainerItem('component-node-js (s2i)');
133
+ await terminal.selectTabByPrefixAndWaitText('OpenShift: Push', 'Changes successfully pushed to component', 240000);
134
+ });
135
+
136
+ suite('Cleanup', async () => {
137
+ test('Remove test workspace', async () => {
138
+ await testWorkspaceUtils.cleanUpAllWorkspaces();
139
+ });
140
+ });
141
+
142
+ });
@@ -0,0 +1,61 @@
1
+ // /*********************************************************************
2
+ // * Copyright (c) 2020 Red Hat, Inc.
3
+ // *
4
+ // * This program and the accompanying materials are made
5
+ // * available under the terms of the Eclipse Public License 2.0
6
+ // * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ // *
8
+ // * SPDX-License-Identifier: EPL-2.0
9
+ // **********************************************************************/
10
+
11
+ import { e2eContainer } from '../../../inversify.config';
12
+ import { CLASSES, TYPES } from '../../../inversify.types';
13
+ import { TestConstants } from '../../../TestConstants';
14
+ import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests';
15
+ import CheReporter from '../../../driver/CheReporter';
16
+ import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil';
17
+ import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler';
18
+ import { TestWorkspaceUtil } from '../../../utils/workspace/TestWorkspaceUtil';
19
+
20
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
21
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
22
+ const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler);
23
+ const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(TYPES.WorkspaceUtil);
24
+
25
+ const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/master/src`;
26
+ const workspaceSampleName: string = 'console-java-simple';
27
+ const workspaceRootFolderName: string = 'src';
28
+ const fileName: string = 'pom.xml';
29
+ const fileFolderPath: string = `${workspaceSampleName}/${workspaceRootFolderName}/main/java/org/eclipse/che/examples`;
30
+ const tabTitle: string = 'HelloWorld.java';
31
+ let workspaceName: string;
32
+
33
+ // the suite expect user to be logged in
34
+ suite('Workspace creation via factory url', async () => {
35
+ suite('Open factory URL', async () => {
36
+ test(`Navigating to factory URL`, async () => {
37
+ await browserTabsUtil.navigateTo(factoryUrl);
38
+ });
39
+ });
40
+
41
+ suite('Wait workspace readyness', async () => {
42
+ projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, true, true);
43
+ });
44
+
45
+ suite('Check imported project', async () => {
46
+ projectAndFileTests.openFile(fileFolderPath, tabTitle);
47
+ projectAndFileTests.checkFileNotExists(`${workspaceSampleName}/${fileName}`);
48
+
49
+ projectAndFileTests.checkProjectBranchName('master');
50
+ });
51
+
52
+ suite ('Stopping and deleting the workspace', async () => {
53
+ test('Stop and remove workspace', async () => {
54
+ workspaceName = await workspaceNameHandler.getNameFromUrl();
55
+ CheReporter.registerRunningWorkspace(workspaceName);
56
+
57
+ await testWorkspaceUtils.cleanUpRunningWorkspace(workspaceName);
58
+ });
59
+ });
60
+
61
+ });
@@ -0,0 +1,59 @@
1
+ // /*********************************************************************
2
+ // * Copyright (c) 2020 Red Hat, Inc.
3
+ // *
4
+ // * This program and the accompanying materials are made
5
+ // * available under the terms of the Eclipse Public License 2.0
6
+ // * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ // *
8
+ // * SPDX-License-Identifier: EPL-2.0
9
+ // **********************************************************************/
10
+
11
+ import { e2eContainer } from '../../../inversify.config';
12
+ import { CLASSES, TYPES } from '../../../inversify.types';
13
+ import { TestConstants } from '../../../TestConstants';
14
+ import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests';
15
+ import CheReporter from '../../../driver/CheReporter';
16
+ import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil';
17
+ import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler';
18
+ import { TestWorkspaceUtil } from '../../../utils/workspace/TestWorkspaceUtil';
19
+
20
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
21
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
22
+ const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler);
23
+ const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(TYPES.WorkspaceUtil);
24
+
25
+ const factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple`;
26
+ const workspaceSampleName: string = 'console-java-simple';
27
+ const workspaceRootFolderName: string = 'src';
28
+ const fileFolderPath: string = `${workspaceSampleName}/${workspaceRootFolderName}/main/java/org/eclipse/che/examples`;
29
+ const tabTitle: string = 'HelloWorld.java';
30
+ let workspaceName: string;
31
+
32
+ // the suite expect user to be logged in
33
+ suite('Workspace creation via factory url', async () => {
34
+ suite('Open factory URL', async () => {
35
+ test(`Navigating to factory URL`, async () => {
36
+ await browserTabsUtil.navigateTo(factoryUrl);
37
+ });
38
+ });
39
+
40
+ suite('Wait workspace readyness', async () => {
41
+ projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, true, true);
42
+ });
43
+
44
+ suite('Check imported project', async () => {
45
+ projectAndFileTests.openFile(fileFolderPath, tabTitle);
46
+
47
+ projectAndFileTests.checkProjectBranchName('master');
48
+ });
49
+
50
+ suite ('Stopping and deleting the workspace', async () => {
51
+ test('Stop and remove workspace', async () => {
52
+ workspaceName = await workspaceNameHandler.getNameFromUrl();
53
+ CheReporter.registerRunningWorkspace(workspaceName);
54
+
55
+ await testWorkspaceUtils.cleanUpRunningWorkspace(workspaceName);
56
+ });
57
+ });
58
+
59
+ });
@@ -0,0 +1,61 @@
1
+ // /*********************************************************************
2
+ // * Copyright (c) 2020 Red Hat, Inc.
3
+ // *
4
+ // * This program and the accompanying materials are made
5
+ // * available under the terms of the Eclipse Public License 2.0
6
+ // * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ // *
8
+ // * SPDX-License-Identifier: EPL-2.0
9
+ // **********************************************************************/
10
+
11
+ import { e2eContainer } from '../../../inversify.config';
12
+ import { CLASSES, TYPES } from '../../../inversify.types';
13
+ import { TestConstants } from '../../../TestConstants';
14
+ import { ProjectAndFileTests } from '../../../testsLibrary/ProjectAndFileTests';
15
+ import CheReporter from '../../../driver/CheReporter';
16
+ import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil';
17
+ import { WorkspaceNameHandler } from '../../../utils/WorkspaceNameHandler';
18
+ import { TestWorkspaceUtil } from '../../../utils/workspace/TestWorkspaceUtil';
19
+
20
+ const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
21
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
22
+ const workspaceNameHandler: WorkspaceNameHandler = e2eContainer.get(CLASSES.WorkspaceNameHandler);
23
+ const testWorkspaceUtils: TestWorkspaceUtil = e2eContainer.get<TestWorkspaceUtil>(TYPES.WorkspaceUtil);
24
+
25
+ let workspaceName: string;
26
+
27
+ // the suite expect user to be logged in
28
+ suite('Workspace creation via factory url', async () => {
29
+
30
+ let factoryUrl : string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=https://github.com/che-samples/console-java-simple/tree/java1.11`;
31
+ const workspaceSampleName: string = 'console-java-simple';
32
+ const workspaceRootFolderName: string = 'src';
33
+ const fileFolderPath: string = `${workspaceSampleName}/${workspaceRootFolderName}/main/java/org/eclipse/che/examples`;
34
+ const tabTitle: string = 'HelloWorld.java';
35
+
36
+ suite('Open factory URL', async () => {
37
+ test(`Navigating to factory URL`, async () => {
38
+ await browserTabsUtil.navigateTo(factoryUrl);
39
+ });
40
+ });
41
+
42
+ suite('Wait workspace readyness', async () => {
43
+ projectAndFileTests.waitWorkspaceReadiness(workspaceSampleName, workspaceRootFolderName, true, true);
44
+
45
+ });
46
+
47
+ suite('Check imported project', async () => {
48
+ projectAndFileTests.openFile(fileFolderPath, tabTitle);
49
+ projectAndFileTests.checkProjectBranchName('java1.11');
50
+ });
51
+
52
+ suite ('Stopping and deleting the workspace', async () => {
53
+ test('Stop and remove workspace', async () => {
54
+ workspaceName = await workspaceNameHandler.getNameFromUrl();
55
+ CheReporter.registerRunningWorkspace(workspaceName);
56
+
57
+ await testWorkspaceUtils.cleanUpRunningWorkspace(workspaceName);
58
+ });
59
+ });
60
+
61
+ });
@@ -0,0 +1,204 @@
1
+ // /*********************************************************************
2
+ // * Copyright (c) 2021 Red Hat, Inc.
3
+ // *
4
+ // * This program and the accompanying materials are made
5
+ // * available under the terms of the Eclipse Public License 2.0
6
+ // * which is available at https://www.eclipse.org/legal/epl-2.0/
7
+ // *
8
+ // * SPDX-License-Identifier: EPL-2.0
9
+ // **********************************************************************/
10
+
11
+ import { e2eContainer } from '../../inversify.config';
12
+ import { CLASSES } from '../../inversify.types';
13
+ import CheReporter from '../../driver/CheReporter';
14
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
15
+ import { TestConstants } from '../../TestConstants';
16
+ import { Ide } from '../../pageobjects/ide/Ide';
17
+ import { TimeoutConstants } from '../../TimeoutConstants';
18
+ import { TopMenu } from '../../pageobjects/ide/TopMenu';
19
+ import { ProjectTree } from '../../pageobjects/ide/ProjectTree';
20
+ import { Editor } from '../../pageobjects/ide/Editor';
21
+ import { Key, error, By } from 'selenium-webdriver';
22
+ import { DriverHelper } from '../../utils/DriverHelper';
23
+ import { Logger } from '../../utils/Logger';
24
+ import { Terminal } from '../../pageobjects/ide/Terminal';
25
+ import { DialogWindow } from '../../pageobjects/ide/DialogWindow';
26
+ import * as fs from 'fs';
27
+
28
+ const ide: Ide = e2eContainer.get(CLASSES.Ide);
29
+ const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
30
+ const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
31
+ const projectName: string = 'java-spring-petclinic';
32
+ const workspaceRootFolderName: string = 'src';
33
+ const pathToJavaFolder: string = `${projectName}/${workspaceRootFolderName}/main/java/org/springframework/samples/petclinic`;
34
+ const javaFileName: string = 'PetClinicApplication.java';
35
+ const editor: Editor = e2eContainer.get(CLASSES.Editor);
36
+ const classPathFilename: string = '.classpath';
37
+ const driverHelper: DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
38
+ const codeNavigationClassName: string = 'SpringApplication.class';
39
+ const topMenu: TopMenu = e2eContainer.get(CLASSES.TopMenu);
40
+ const globalTaskScope = 'Global';
41
+ const terminal: Terminal = e2eContainer.get(CLASSES.Terminal);
42
+ const warningDialog: DialogWindow = e2eContainer.get(CLASSES.DialogWindow);
43
+
44
+
45
+ const SpringAppLocators = {
46
+ springTitleLocator: By.xpath('//div[@class=\'container-fluid\']//h2[text()=\'Welcome\']'),
47
+ springMenuButtonLocator: By.css('button[data-target=\'#main-navbar\']'),
48
+ springErrorButtonLocator: By.xpath('//div[@id=\'main-navbar\']//span[text()=\'Error\']'),
49
+ springHomeButtonLocator: By.className('navbar-brand'),
50
+ springErrorMessageLocator: By.xpath(`//h2[text()='Something happened...']`)
51
+ };
52
+
53
+ // this test checks only workspace created from "web-nodejs-sample" https://github.com/devfile/devworkspace-operator/blob/main/samples/flattened_theia-next.yaml.
54
+ suite('Workspace creation via factory url', async () => {
55
+ let factoryUrl : string = `${TestConstants.TS_SELENIUM_DEVWORKSPACE_URL}`;
56
+ const workspaceRootFolderName: string = 'src';
57
+
58
+ suite('Open factory URL', async () => {
59
+ // this is DevWorkspace test specific - we create the test ws. using factory instead of chectl
60
+ test(`Navigating to factory URL`, async () => {
61
+ await browserTabsUtil.navigateTo(factoryUrl);
62
+ });
63
+
64
+ test('Register running workspace', async () => {
65
+ CheReporter.registerRunningWorkspace(projectName);
66
+ });
67
+
68
+ test('Register running workspace', async () => {
69
+ await ide.waitIde(TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT);
70
+ // in this place we do not check 'Do you trust the authors of', 'Yes, I trust' message
71
+ // it is DevWorkspace test specific. After consuming the factory the notification does not appear
72
+ await projectTree.openProjectTreeContainer();
73
+ await projectTree.waitProjectImported(projectName, workspaceRootFolderName);
74
+ });
75
+ });
76
+ });
77
+
78
+ suite('Language server validation', async () => {
79
+ test('Java LS initialization', async () => {
80
+ await projectTree.expandPathAndOpenFile(pathToJavaFolder, javaFileName);
81
+ await editor.selectTab(javaFileName);
82
+ try {
83
+ await ide.checkLsInitializationStart('Activating Language Support for Java');
84
+ await ide.waitStatusBarTextAbsence('Activating Language Support for Java', 900_000);
85
+ } catch (err) {
86
+ if (!(err instanceof error.TimeoutError)) {
87
+ throw err;
88
+ }
89
+
90
+ console.log('Known flakiness has occurred https://github.com/eclipse/che/issues/17864');
91
+ await ide.waitStatusBarContains('Activating Java Test Runner');
92
+ await ide.waitStatusBarTextAbsence('Activating Java Test Runner', 900_000);
93
+ }
94
+
95
+ await checkJavaPathCompletion();
96
+ });
97
+
98
+ test('Autocomplete', async () => {
99
+ await editor.moveCursorToLineAndChar(javaFileName, 32, 17);
100
+ await editor.pressControlSpaceCombination(javaFileName);
101
+ await editor.waitSuggestionContainer();
102
+ await editor.waitSuggestion(javaFileName, 'SpringApplication - org.springframework.boot');
103
+ });
104
+
105
+ test('Error highlighting', async () => {
106
+ await driverHelper.getDriver().sleep(TimeoutConstants.TS_SUGGESTION_TIMEOUT); // workaround https://github.com/eclipse/che/issues/19004
107
+
108
+ const textForErrorDisplaying: string = '$';
109
+ await editor.type(javaFileName, textForErrorDisplaying, 30);
110
+
111
+ try {
112
+ await editor.waitErrorInLine(30, TimeoutConstants.TS_ERROR_HIGHLIGHTING_TIMEOUT);
113
+ } catch (err) {
114
+ Logger.debug('Workaround for the https://github.com/eclipse/che/issues/18974.');
115
+ await browserTabsUtil.refreshPage();
116
+ await ide.waitAndSwitchToIdeFrame();
117
+ await ide.waitIde();
118
+ await editor.waitErrorInLine(30, TimeoutConstants.TS_ERROR_HIGHLIGHTING_TIMEOUT * 2);
119
+ }
120
+ await editor.performKeyCombination(javaFileName, Key.chord(Key.BACK_SPACE));
121
+ await editor.waitErrorInLineDisappearance(30);
122
+ });
123
+
124
+ test('Suggestion', async () => {
125
+ await editor.moveCursorToLineAndChar(javaFileName, 32, 21);
126
+ await editor.pressControlSpaceCombination(javaFileName);
127
+ await editor.waitSuggestionWithScrolling(javaFileName, 'run(Class<?> primarySource, String... args) : ConfigurableApplicationContext', 120_000);
128
+ });
129
+
130
+ test('Codenavigation', async () => {
131
+ await editor.moveCursorToLineAndChar(javaFileName, 32, 17);
132
+ await editor.performKeyCombination(javaFileName, Key.chord(Key.CONTROL, Key.F12));
133
+ await editor.waitEditorAvailable(codeNavigationClassName, TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT * 4);
134
+ });
135
+ });
136
+ suite('Validation of workspace build and run', async () => {
137
+ test('Build application', async () => {
138
+ const taskName: string = 'build';
139
+ await topMenu.runTask(`${taskName}, ${globalTaskScope}`);
140
+ await terminal.waitIconSuccess(taskName, 500_000);
141
+ });
142
+
143
+ test('Run application', async () => {
144
+ const taskName: string = 'run';
145
+ await topMenu.runTask(`${taskName}, ${globalTaskScope}`);
146
+ await ide.waitNotification('Process 8080-tcp is now listening on port 8080. Open it ?', 120_000);
147
+ // devWs specific. After running test application we can open it just in the new window.
148
+ // the preview widget is not available yet.
149
+ await ide.clickOnNotificationButton('Process 8080-tcp is now listening on port 8080. Open it ?', 'Open In New Tab');
150
+ });
151
+ // this is DevWorkspace test specific since Theia does not provide yet preview as a widget
152
+ test('Check the running application', async () => {
153
+ await switchAppWindowAndCheck(SpringAppLocators.springTitleLocator);
154
+ });
155
+
156
+ test('Close the terminal running tasks', async () => {
157
+ await terminal.rejectTerminalProcess('run');
158
+ await terminal.closeTerminalTab('run');
159
+ await warningDialog.waitAndCloseIfAppear();
160
+ await terminal.closeTerminalTab('build');
161
+ });
162
+ });
163
+
164
+ async function checkJavaPathCompletion() {
165
+ if (await ide.isNotificationPresent('Classpath is incomplete. Only syntax errors will be reported')) {
166
+ const classpathText: string = fs.readFileSync('./files/happy-path/petclinic-classpath.txt', 'utf8');
167
+ const workaroundReportText: string = '\n############################## \n\n' +
168
+ 'Known issue: https://github.com/eclipse/che/issues/13427 \n' +
169
+ '\"Java LS \"Classpath is incomplete\" warning when loading petclinic\" \n' +
170
+ '\".classpath\" will be configured with next settings: \n\n' +
171
+ classpathText + '\n' +
172
+ '############################## \n';
173
+
174
+ console.log(workaroundReportText);
175
+
176
+ await projectTree.expandPathAndOpenFile(projectName, classPathFilename);
177
+ await editor.waitEditorAvailable(classPathFilename);
178
+ await editor.type(classPathFilename, Key.chord(Key.CONTROL, 'a'), 1);
179
+ await editor.performKeyCombination(classPathFilename, Key.DELETE);
180
+ await editor.type(classPathFilename, classpathText, 1);
181
+ await editor.waitTabWithSavedStatus(classPathFilename);
182
+ }
183
+ }
184
+
185
+ // this is DevWorkspace test specific since Theia does not provide yet preview as a widget
186
+ async function switchAppWindowAndCheck(contentLocator: By) {
187
+ const mainWindowHandle: string = await browserTabsUtil.getCurrentWindowHandle();
188
+ await browserTabsUtil.waitAndSwitchToAnotherWindow(mainWindowHandle, TimeoutConstants.TS_EDITOR_TAB_INTERACTION_TIMEOUT);
189
+
190
+ // make 3 attempts for waiting application availability with the configured period
191
+ for (let index = 0; index < 3; index++) {
192
+ let isApplicationTitleVisible: boolean = await driverHelper.isVisible(contentLocator);
193
+ if (isApplicationTitleVisible) {
194
+ console.log('----------- The Spring app is available.');
195
+ break;
196
+ } else {
197
+ console.log(`----------- The Spring app is not available. Attempt # ${index}. Waiting ${TimeoutConstants.TS_SELENIUM_DIALOG_WIDGET_TIMEOUT}s`);
198
+ await driverHelper.getDriver().sleep(TimeoutConstants.TS_SELENIUM_DIALOG_WIDGET_TIMEOUT);
199
+ await driverHelper.getDriver().navigate().refresh();
200
+ }
201
+ }
202
+ await driverHelper.waitVisibility(contentLocator);
203
+ await browserTabsUtil.switchToWindow(mainWindowHandle);
204
+ }