@eclipse-che/che-e2e 7.56.1-dev-b76c7da → 7.56.1-dev-3722260

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 (305) hide show
  1. package/TestConstants.ts +23 -0
  2. package/dist/TestConstants.js +21 -1
  3. package/dist/TestConstants.js.map +1 -1
  4. package/dist/driver/CheReporter.js +14 -4
  5. package/dist/driver/CheReporter.js.map +1 -1
  6. package/dist/driver/ChromeDriver.js +6 -4
  7. package/dist/driver/ChromeDriver.js.map +1 -1
  8. package/dist/index.js +26 -26
  9. package/dist/index.js.map +1 -1
  10. package/dist/inversify.config.js +30 -30
  11. package/dist/inversify.config.js.map +1 -1
  12. package/dist/inversify.types.js +4 -4
  13. package/dist/inversify.types.js.map +1 -1
  14. package/dist/pageobjects/dashboard/CreateWorkspace.js +9 -2
  15. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  16. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +1 -1
  17. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  18. package/dist/pageobjects/ide/{ContextMenu.js → theia/ContextMenu.js} +5 -5
  19. package/dist/pageobjects/ide/theia/ContextMenu.js.map +1 -0
  20. package/dist/pageobjects/ide/{DebugView.js → theia/DebugView.js} +6 -6
  21. package/dist/pageobjects/ide/theia/DebugView.js.map +1 -0
  22. package/dist/pageobjects/ide/{DialogWindow.js → theia/DialogWindow.js} +4 -4
  23. package/dist/pageobjects/ide/theia/DialogWindow.js.map +1 -0
  24. package/dist/pageobjects/ide/{Editor.js → theia/Editor.js} +18 -19
  25. package/dist/pageobjects/ide/theia/Editor.js.map +1 -0
  26. package/dist/pageobjects/ide/{Ide.js → theia/Ide.js} +5 -5
  27. package/dist/pageobjects/ide/theia/Ide.js.map +1 -0
  28. package/dist/pageobjects/ide/{LeftToolBar.js → theia/LeftToolBar.js} +4 -4
  29. package/dist/pageobjects/ide/theia/LeftToolBar.js.map +1 -0
  30. package/dist/pageobjects/ide/{NavigationBar.js → theia/NavigationBar.js} +3 -3
  31. package/dist/pageobjects/ide/theia/NavigationBar.js.map +1 -0
  32. package/dist/pageobjects/ide/{NotificationCenter.js → theia/NotificationCenter.js} +4 -4
  33. package/dist/pageobjects/ide/theia/NotificationCenter.js.map +1 -0
  34. package/dist/pageobjects/ide/{OpenDialogWidget.js → theia/OpenDialogWidget.js} +6 -6
  35. package/dist/pageobjects/ide/theia/OpenDialogWidget.js.map +1 -0
  36. package/dist/pageobjects/ide/{OpenEditors.js → theia/OpenEditors.js} +4 -4
  37. package/dist/pageobjects/ide/theia/OpenEditors.js.map +1 -0
  38. package/dist/pageobjects/ide/{OpenWorkspaceWidget.js → theia/OpenWorkspaceWidget.js} +4 -4
  39. package/dist/pageobjects/ide/theia/OpenWorkspaceWidget.js.map +1 -0
  40. package/dist/pageobjects/ide/{PreviewWidget.js → theia/PreviewWidget.js} +5 -5
  41. package/dist/pageobjects/ide/theia/PreviewWidget.js.map +1 -0
  42. package/dist/pageobjects/ide/{ProjectTree.js → theia/ProjectTree.js} +6 -6
  43. package/dist/pageobjects/ide/theia/ProjectTree.js.map +1 -0
  44. package/dist/pageobjects/ide/{QuickOpenContainer.js → theia/QuickOpenContainer.js} +4 -4
  45. package/dist/pageobjects/ide/theia/QuickOpenContainer.js.map +1 -0
  46. package/dist/pageobjects/ide/{RightToolBar.js → theia/RightToolBar.js} +4 -4
  47. package/dist/pageobjects/ide/theia/RightToolBar.js.map +1 -0
  48. package/dist/pageobjects/ide/{Terminal.js → theia/Terminal.js} +5 -5
  49. package/dist/pageobjects/ide/theia/Terminal.js.map +1 -0
  50. package/dist/pageobjects/ide/{TopMenu.js → theia/TopMenu.js} +5 -5
  51. package/dist/pageobjects/ide/theia/TopMenu.js.map +1 -0
  52. package/dist/pageobjects/ide/{plugins → theia/plugins}/GitHubPullRequestPlugin.js +5 -5
  53. package/dist/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.js.map +1 -0
  54. package/dist/pageobjects/ide/{plugins → theia/plugins}/GitPlugin.js +4 -4
  55. package/dist/pageobjects/ide/theia/plugins/GitPlugin.js.map +1 -0
  56. package/dist/pageobjects/ide/{plugins → theia/plugins}/KubernetesPlugin.js +4 -4
  57. package/dist/pageobjects/ide/theia/plugins/KubernetesPlugin.js.map +1 -0
  58. package/dist/pageobjects/ide/{plugins → theia/plugins}/OpenshiftPlugin.js +4 -4
  59. package/dist/pageobjects/ide/theia/plugins/OpenshiftPlugin.js.map +1 -0
  60. package/dist/pageobjects/ide/{plugins → theia/plugins}/PluginsView.js +4 -4
  61. package/dist/pageobjects/ide/theia/plugins/PluginsView.js.map +1 -0
  62. package/dist/tests/devfiles/code/JavaSpringBoot.spec.js +76 -0
  63. package/dist/tests/devfiles/code/JavaSpringBoot.spec.js.map +1 -0
  64. package/dist/tests/devfiles/{CSlashCPlusPlus.spec.js → theia/CSlashCPlusPlus.spec.js} +7 -7
  65. package/dist/tests/devfiles/theia/CSlashCPlusPlus.spec.js.map +1 -0
  66. package/dist/tests/devfiles/{DevfileSmoke.spec.js → theia/DevfileSmoke.spec.js} +6 -6
  67. package/dist/tests/devfiles/theia/DevfileSmoke.spec.js.map +1 -0
  68. package/dist/tests/devfiles/{DotNetCore.spec.js → theia/DotNetCore.spec.js} +7 -7
  69. package/dist/tests/devfiles/theia/DotNetCore.spec.js.map +1 -0
  70. package/dist/tests/devfiles/{Go.spec.js → theia/Go.spec.js} +9 -9
  71. package/dist/tests/devfiles/theia/Go.spec.js.map +1 -0
  72. package/dist/tests/devfiles/{JavaMaven.spec.js → theia/JavaMaven.spec.js} +7 -7
  73. package/dist/tests/devfiles/theia/JavaMaven.spec.js.map +1 -0
  74. package/dist/tests/devfiles/{JavaSpringBoot.spec.js → theia/JavaSpringBoot.spec.js} +7 -7
  75. package/dist/tests/devfiles/theia/JavaSpringBoot.spec.js.map +1 -0
  76. package/dist/tests/devfiles/{JavaVertx.spec.js → theia/JavaVertx.spec.js} +7 -7
  77. package/dist/tests/devfiles/theia/JavaVertx.spec.js.map +1 -0
  78. package/dist/tests/devfiles/{NodeJS.spec.js → theia/NodeJS.spec.js} +7 -7
  79. package/dist/tests/devfiles/theia/NodeJS.spec.js.map +1 -0
  80. package/dist/tests/devfiles/{PHPSimple.spec.js → theia/PHPSimple.spec.js} +7 -7
  81. package/dist/tests/devfiles/theia/PHPSimple.spec.js.map +1 -0
  82. package/dist/tests/devfiles/{Python.spec.js → theia/Python.spec.js} +7 -7
  83. package/dist/tests/devfiles/theia/Python.spec.js.map +1 -0
  84. package/dist/tests/devfiles/{PythonDjango.spec.js → theia/PythonDjango.spec.js} +6 -6
  85. package/dist/tests/devfiles/theia/PythonDjango.spec.js.map +1 -0
  86. package/dist/tests/devfiles/{Quarkus.spec.js → theia/Quarkus.spec.js} +7 -7
  87. package/dist/tests/devfiles/theia/Quarkus.spec.js.map +1 -0
  88. package/dist/tests/devfiles/{Scala.spec.js → theia/Scala.spec.js} +7 -7
  89. package/dist/tests/devfiles/theia/Scala.spec.js.map +1 -0
  90. package/dist/tests/e2e/{FactoryUrl.spec.js → theia/FactoryUrl.spec.js} +5 -5
  91. package/dist/tests/e2e/theia/FactoryUrl.spec.js.map +1 -0
  92. package/dist/tests/e2e/{GitPublishBranch.spec.js → theia/GitPublishBranch.spec.js} +5 -5
  93. package/dist/tests/e2e/theia/GitPublishBranch.spec.js.map +1 -0
  94. package/dist/tests/e2e/{GitSelfSignCert.spec.js → theia/GitSelfSignCert.spec.js} +6 -6
  95. package/dist/tests/e2e/theia/GitSelfSignCert.spec.js.map +1 -0
  96. package/dist/tests/e2e/{GitSsh.spec.js → theia/GitSsh.spec.js} +6 -6
  97. package/dist/tests/e2e/theia/GitSsh.spec.js.map +1 -0
  98. package/dist/tests/e2e/{OpenshiftConnector.spec.js → theia/OpenshiftConnector.spec.js} +11 -11
  99. package/dist/tests/e2e/theia/OpenshiftConnector.spec.js.map +1 -0
  100. package/dist/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithKeepDirectoryTest.spec.js +6 -6
  101. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js.map +1 -0
  102. package/dist/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithRootFolderTest.spec.js +6 -6
  103. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js.map +1 -0
  104. package/dist/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithSpecificBranchTest.spec.js +6 -6
  105. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js.map +1 -0
  106. package/dist/tests/e2e_happy_path/{DevWorkspaceHappyPath.spec.js → theia/DevWorkspaceHappyPath.spec.js} +8 -9
  107. package/dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js.map +1 -0
  108. package/dist/tests/e2e_happy_path/{HappyPath.spec.js → theia/HappyPath.spec.js} +8 -8
  109. package/dist/tests/e2e_happy_path/theia/HappyPath.spec.js.map +1 -0
  110. package/dist/tests/load_test/{LoadTest.spec.js → theia/LoadTest.spec.js} +5 -5
  111. package/dist/tests/load_test/theia/LoadTest.spec.js.map +1 -0
  112. package/dist/tests/plugins/{GitHubPullRequestPlugin.spec.js → theia/GitHubPullRequestPlugin.spec.js} +8 -9
  113. package/dist/tests/plugins/{GitHubPullRequestPlugin.spec.js.map → theia/GitHubPullRequestPlugin.spec.js.map} +1 -1
  114. package/dist/tests/plugins/{InstallPluginUsingUI.spec.js → theia/InstallPluginUsingUI.spec.js} +7 -8
  115. package/dist/tests/plugins/{InstallPluginUsingUI.spec.js.map → theia/InstallPluginUsingUI.spec.js.map} +1 -1
  116. package/dist/tests/plugins/{JavaPlugin.spec.js → theia/JavaPlugin.spec.js} +8 -8
  117. package/dist/tests/plugins/theia/JavaPlugin.spec.js.map +1 -0
  118. package/dist/tests/plugins/{PhpPlugin.spec.js → theia/PhpPlugin.spec.js} +7 -7
  119. package/dist/tests/plugins/theia/PhpPlugin.spec.js.map +1 -0
  120. package/dist/tests/plugins/{PythonPlugin.spec.js → theia/PythonPlugin.spec.js} +8 -8
  121. package/dist/tests/plugins/theia/PythonPlugin.spec.js.map +1 -0
  122. package/dist/tests/plugins/{TypescriptPlugin.spec.js → theia/TypescriptPlugin.spec.js} +9 -9
  123. package/dist/tests/plugins/theia/TypescriptPlugin.spec.js.map +1 -0
  124. package/dist/tests/plugins/{VscodeKubernetesPlugin.spec.js → theia/VscodeKubernetesPlugin.spec.js} +7 -7
  125. package/dist/tests/plugins/theia/VscodeKubernetesPlugin.spec.js.map +1 -0
  126. package/dist/tests/plugins/{VscodeShellcheckPlugin.spec.js → theia/VscodeShellcheckPlugin.spec.js} +7 -7
  127. package/dist/tests/plugins/theia/VscodeShellcheckPlugin.spec.js.map +1 -0
  128. package/dist/tests/plugins/{VscodeValePlugin.spec.js → theia/VscodeValePlugin.spec.js} +6 -6
  129. package/dist/tests/plugins/theia/VscodeValePlugin.spec.js.map +1 -0
  130. package/dist/tests/plugins/{VscodeXmlPlugin.spec.js → theia/VscodeXmlPlugin.spec.js} +6 -6
  131. package/dist/tests/plugins/theia/VscodeXmlPlugin.spec.js.map +1 -0
  132. package/dist/tests/plugins/{VscodeYamlPlugin.spec.js → theia/VscodeYamlPlugin.spec.js} +6 -6
  133. package/dist/tests/plugins/theia/VscodeYamlPlugin.spec.js.map +1 -0
  134. package/dist/testsLibrary/WorkspaceHandlingTests.js +3 -30
  135. package/dist/testsLibrary/WorkspaceHandlingTests.js.map +1 -1
  136. package/dist/testsLibrary/{CodeExecutionTests.js → theia/CodeExecutionTestsTheia.js} +22 -22
  137. package/dist/testsLibrary/theia/CodeExecutionTestsTheia.js.map +1 -0
  138. package/dist/testsLibrary/{LanguageServerTests.js → theia/LanguageServerTestsTheia.js} +14 -14
  139. package/dist/testsLibrary/theia/LanguageServerTestsTheia.js.map +1 -0
  140. package/dist/testsLibrary/{ProjectAndFileTests.js → theia/ProjectAndFileTestsTheia.js} +43 -15
  141. package/dist/testsLibrary/theia/ProjectAndFileTestsTheia.js.map +1 -0
  142. package/dist/utils/DriverHelper.js +1 -1
  143. package/dist/utils/DriverHelper.js.map +1 -1
  144. package/dist/utils/{PreferencesHandler.js → theia/PreferencesHandlerTheia.js} +23 -23
  145. package/dist/utils/theia/PreferencesHandlerTheia.js.map +1 -0
  146. package/driver/CheReporter.ts +16 -5
  147. package/driver/ChromeDriver.ts +7 -5
  148. package/index.ts +26 -26
  149. package/initDefaultValues.sh +2 -0
  150. package/initDevfileTests.sh +7 -3
  151. package/initPluginTest.sh +1 -1
  152. package/inversify.config.ts +30 -30
  153. package/inversify.types.ts +4 -4
  154. package/{mocha-all-devfiles.json → mocha-all-devfiles-theia.json} +2 -2
  155. package/{mocha-git-ssh.json → mocha-all-factories-code.json} +1 -1
  156. package/{mocha-all-factories.json → mocha-all-factories-theia.json} +2 -2
  157. package/mocha-all-plugins-code.json +10 -0
  158. package/{mocha-all-plugins.json → mocha-all-plugins-theia.json} +2 -2
  159. package/{mocha.json → mocha-code.json} +1 -1
  160. package/{mocha-connector.json → mocha-connector-theia.json} +1 -1
  161. package/mocha-devworkspace-happy-path-code.json +10 -0
  162. package/{mocha-devworkspace-happy-path.json → mocha-devworkspace-happy-path-theia.json} +1 -1
  163. package/mocha-factory-code.json +10 -0
  164. package/{mocha-factory.json → mocha-factory-theia.json} +1 -1
  165. package/mocha-git-publish-branch-theia.json +11 -0
  166. package/mocha-git-self-sign-cert-theia.json +11 -0
  167. package/{mocha-git-self-sign-cert.json → mocha-git-ssh-theia.json} +1 -1
  168. package/{mocha-git-publish-branch.json → mocha-happy-path-code.json} +1 -1
  169. package/{mocha-happy-path.json → mocha-happy-path-theia.json} +1 -1
  170. package/{mocha-java-vertx.json → mocha-java-maven.json} +1 -1
  171. package/{mocha-load.json → mocha-java-springboot-code.json} +1 -1
  172. package/mocha-java-springboot-theia.json +9 -0
  173. package/{mocha-wkspc-creation-and-ls.json → mocha-java-vertx-code.json} +1 -1
  174. package/mocha-java-vertx-theia.json +9 -0
  175. package/mocha-load-theia.json +9 -0
  176. package/mocha-scala.json +9 -0
  177. package/mocha-theia.json +8 -0
  178. package/mocha-ws-creation-and-ls-theia.json +9 -0
  179. package/package.json +36 -24
  180. package/pageobjects/dashboard/CreateWorkspace.ts +9 -1
  181. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +1 -1
  182. package/pageobjects/ide/{ContextMenu.ts → theia/ContextMenu.ts} +6 -6
  183. package/pageobjects/ide/{DebugView.ts → theia/DebugView.ts} +6 -6
  184. package/pageobjects/ide/{DialogWindow.ts → theia/DialogWindow.ts} +4 -4
  185. package/pageobjects/ide/{Editor.ts → theia/Editor.ts} +19 -20
  186. package/pageobjects/ide/{Ide.ts → theia/Ide.ts} +5 -5
  187. package/pageobjects/ide/{LeftToolBar.ts → theia/LeftToolBar.ts} +4 -4
  188. package/pageobjects/ide/{NavigationBar.ts → theia/NavigationBar.ts} +7 -7
  189. package/pageobjects/ide/{NotificationCenter.ts → theia/NotificationCenter.ts} +4 -4
  190. package/pageobjects/ide/{OpenDialogWidget.ts → theia/OpenDialogWidget.ts} +6 -6
  191. package/pageobjects/ide/{OpenEditors.ts → theia/OpenEditors.ts} +4 -4
  192. package/pageobjects/ide/{OpenWorkspaceWidget.ts → theia/OpenWorkspaceWidget.ts} +4 -4
  193. package/pageobjects/ide/{PreviewWidget.ts → theia/PreviewWidget.ts} +5 -5
  194. package/pageobjects/ide/{ProjectTree.ts → theia/ProjectTree.ts} +6 -6
  195. package/pageobjects/ide/{QuickOpenContainer.ts → theia/QuickOpenContainer.ts} +4 -4
  196. package/pageobjects/ide/{RightToolBar.ts → theia/RightToolBar.ts} +4 -4
  197. package/pageobjects/ide/{Terminal.ts → theia/Terminal.ts} +5 -5
  198. package/pageobjects/ide/{TopMenu.ts → theia/TopMenu.ts} +5 -5
  199. package/pageobjects/ide/{plugins → theia/plugins}/GitHubPullRequestPlugin.ts +5 -5
  200. package/pageobjects/ide/{plugins → theia/plugins}/GitPlugin.ts +4 -4
  201. package/pageobjects/ide/{plugins → theia/plugins}/KubernetesPlugin.ts +4 -4
  202. package/pageobjects/ide/{plugins → theia/plugins}/OpenshiftPlugin.ts +4 -4
  203. package/pageobjects/ide/{plugins → theia/plugins}/PluginsView.ts +4 -4
  204. package/tests/devfiles/code/JavaSpringBoot.spec.ts +77 -0
  205. package/tests/devfiles/{CSlashCPlusPlus.spec.ts → theia/CSlashCPlusPlus.spec.ts} +11 -11
  206. package/tests/devfiles/{DevfileSmoke.spec.ts → theia/DevfileSmoke.spec.ts} +10 -10
  207. package/tests/devfiles/{DotNetCore.spec.ts → theia/DotNetCore.spec.ts} +11 -11
  208. package/tests/devfiles/{Go.spec.ts → theia/Go.spec.ts} +13 -13
  209. package/tests/devfiles/{JavaMaven.spec.ts → theia/JavaMaven.spec.ts} +10 -10
  210. package/tests/devfiles/{JavaSpringBoot.spec.ts → theia/JavaSpringBoot.spec.ts} +10 -10
  211. package/tests/devfiles/{JavaVertx.spec.ts → theia/JavaVertx.spec.ts} +10 -10
  212. package/tests/devfiles/{NodeJS.spec.ts → theia/NodeJS.spec.ts} +10 -10
  213. package/tests/devfiles/{PHPSimple.spec.ts → theia/PHPSimple.spec.ts} +11 -11
  214. package/tests/devfiles/{Python.spec.ts → theia/Python.spec.ts} +10 -10
  215. package/tests/devfiles/{PythonDjango.spec.ts → theia/PythonDjango.spec.ts} +8 -8
  216. package/tests/devfiles/{Quarkus.spec.ts → theia/Quarkus.spec.ts} +10 -10
  217. package/tests/devfiles/{Scala.spec.ts → theia/Scala.spec.ts} +10 -10
  218. package/tests/e2e/{FactoryUrl.spec.ts → theia/FactoryUrl.spec.ts} +9 -9
  219. package/tests/e2e/{GitPublishBranch.spec.ts → theia/GitPublishBranch.spec.ts} +16 -16
  220. package/tests/e2e/{GitSelfSignCert.spec.ts → theia/GitSelfSignCert.spec.ts} +17 -17
  221. package/tests/e2e/{GitSsh.spec.ts → theia/GitSsh.spec.ts} +20 -20
  222. package/tests/e2e/{OpenshiftConnector.spec.ts → theia/OpenshiftConnector.spec.ts} +21 -21
  223. package/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +10 -10
  224. package/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithRootFolderTest.spec.ts +10 -10
  225. package/tests/e2e/{factories → theia/factories}/DirectUrlFactoryWithSpecificBranchTest.spec.ts +10 -10
  226. package/tests/e2e_happy_path/{DevWorkspaceHappyPath.spec.ts → theia/DevWorkspaceHappyPath.spec.ts} +17 -19
  227. package/tests/e2e_happy_path/{HappyPath.spec.ts → theia/HappyPath.spec.ts} +21 -20
  228. package/tests/intelij/IntelijOpenWorkspace.spec.ts +1 -1
  229. package/tests/load_test/{LoadTest.spec.ts → theia/LoadTest.spec.ts} +10 -9
  230. package/tests/plugins/{GitHubPullRequestPlugin.spec.ts → theia/GitHubPullRequestPlugin.spec.ts} +19 -20
  231. package/tests/plugins/{InstallPluginUsingUI.spec.ts → theia/InstallPluginUsingUI.spec.ts} +11 -12
  232. package/tests/plugins/{JavaPlugin.spec.ts → theia/JavaPlugin.spec.ts} +13 -13
  233. package/tests/plugins/{PhpPlugin.spec.ts → theia/PhpPlugin.spec.ts} +12 -12
  234. package/tests/plugins/{PythonPlugin.spec.ts → theia/PythonPlugin.spec.ts} +13 -13
  235. package/tests/plugins/{TypescriptPlugin.spec.ts → theia/TypescriptPlugin.spec.ts} +19 -19
  236. package/tests/plugins/{VscodeKubernetesPlugin.spec.ts → theia/VscodeKubernetesPlugin.spec.ts} +13 -13
  237. package/tests/plugins/{VscodeShellcheckPlugin.spec.ts → theia/VscodeShellcheckPlugin.spec.ts} +12 -12
  238. package/tests/plugins/{VscodeValePlugin.spec.ts → theia/VscodeValePlugin.spec.ts} +11 -11
  239. package/tests/plugins/{VscodeXmlPlugin.spec.ts → theia/VscodeXmlPlugin.spec.ts} +12 -12
  240. package/tests/plugins/{VscodeYamlPlugin.spec.ts → theia/VscodeYamlPlugin.spec.ts} +12 -12
  241. package/testsLibrary/WorkspaceHandlingTests.ts +115 -140
  242. package/testsLibrary/{CodeExecutionTests.ts → theia/CodeExecutionTestsTheia.ts} +15 -15
  243. package/testsLibrary/{LanguageServerTests.ts → theia/LanguageServerTestsTheia.ts} +9 -9
  244. package/testsLibrary/{ProjectAndFileTests.ts → theia/ProjectAndFileTestsTheia.ts} +36 -10
  245. package/utils/DriverHelper.ts +3 -3
  246. package/utils/{PreferencesHandler.ts → theia/PreferencesHandlerTheia.ts} +11 -11
  247. package/dist/pageobjects/ide/ContextMenu.js.map +0 -1
  248. package/dist/pageobjects/ide/DebugView.js.map +0 -1
  249. package/dist/pageobjects/ide/DialogWindow.js.map +0 -1
  250. package/dist/pageobjects/ide/Editor.js.map +0 -1
  251. package/dist/pageobjects/ide/Ide.js.map +0 -1
  252. package/dist/pageobjects/ide/LeftToolBar.js.map +0 -1
  253. package/dist/pageobjects/ide/NavigationBar.js.map +0 -1
  254. package/dist/pageobjects/ide/NotificationCenter.js.map +0 -1
  255. package/dist/pageobjects/ide/OpenDialogWidget.js.map +0 -1
  256. package/dist/pageobjects/ide/OpenEditors.js.map +0 -1
  257. package/dist/pageobjects/ide/OpenWorkspaceWidget.js.map +0 -1
  258. package/dist/pageobjects/ide/PreviewWidget.js.map +0 -1
  259. package/dist/pageobjects/ide/ProjectTree.js.map +0 -1
  260. package/dist/pageobjects/ide/QuickOpenContainer.js.map +0 -1
  261. package/dist/pageobjects/ide/RightToolBar.js.map +0 -1
  262. package/dist/pageobjects/ide/Terminal.js.map +0 -1
  263. package/dist/pageobjects/ide/TopMenu.js.map +0 -1
  264. package/dist/pageobjects/ide/plugins/GitHubPullRequestPlugin.js.map +0 -1
  265. package/dist/pageobjects/ide/plugins/GitPlugin.js.map +0 -1
  266. package/dist/pageobjects/ide/plugins/KubernetesPlugin.js.map +0 -1
  267. package/dist/pageobjects/ide/plugins/OpenshiftPlugin.js.map +0 -1
  268. package/dist/pageobjects/ide/plugins/PluginsView.js.map +0 -1
  269. package/dist/tests/devfiles/CSlashCPlusPlus.spec.js.map +0 -1
  270. package/dist/tests/devfiles/DevfileSmoke.spec.js.map +0 -1
  271. package/dist/tests/devfiles/DotNetCore.spec.js.map +0 -1
  272. package/dist/tests/devfiles/Go.spec.js.map +0 -1
  273. package/dist/tests/devfiles/JavaMaven.spec.js.map +0 -1
  274. package/dist/tests/devfiles/JavaSpringBoot.spec.js.map +0 -1
  275. package/dist/tests/devfiles/JavaVertx.spec.js.map +0 -1
  276. package/dist/tests/devfiles/NodeJS.spec.js.map +0 -1
  277. package/dist/tests/devfiles/PHPSimple.spec.js.map +0 -1
  278. package/dist/tests/devfiles/Python.spec.js.map +0 -1
  279. package/dist/tests/devfiles/PythonDjango.spec.js.map +0 -1
  280. package/dist/tests/devfiles/Quarkus.spec.js.map +0 -1
  281. package/dist/tests/devfiles/Scala.spec.js.map +0 -1
  282. package/dist/tests/e2e/FactoryUrl.spec.js.map +0 -1
  283. package/dist/tests/e2e/GitPublishBranch.spec.js.map +0 -1
  284. package/dist/tests/e2e/GitSelfSignCert.spec.js.map +0 -1
  285. package/dist/tests/e2e/GitSsh.spec.js.map +0 -1
  286. package/dist/tests/e2e/OpenshiftConnector.spec.js.map +0 -1
  287. package/dist/tests/e2e/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js.map +0 -1
  288. package/dist/tests/e2e/factories/DirectUrlFactoryWithRootFolderTest.spec.js.map +0 -1
  289. package/dist/tests/e2e/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js.map +0 -1
  290. package/dist/tests/e2e_happy_path/DevWorkspaceHappyPath.spec.js.map +0 -1
  291. package/dist/tests/e2e_happy_path/HappyPath.spec.js.map +0 -1
  292. package/dist/tests/load_test/LoadTest.spec.js.map +0 -1
  293. package/dist/tests/plugins/JavaPlugin.spec.js.map +0 -1
  294. package/dist/tests/plugins/PhpPlugin.spec.js.map +0 -1
  295. package/dist/tests/plugins/PythonPlugin.spec.js.map +0 -1
  296. package/dist/tests/plugins/TypescriptPlugin.spec.js.map +0 -1
  297. package/dist/tests/plugins/VscodeKubernetesPlugin.spec.js.map +0 -1
  298. package/dist/tests/plugins/VscodeShellcheckPlugin.spec.js.map +0 -1
  299. package/dist/tests/plugins/VscodeValePlugin.spec.js.map +0 -1
  300. package/dist/tests/plugins/VscodeXmlPlugin.spec.js.map +0 -1
  301. package/dist/tests/plugins/VscodeYamlPlugin.spec.js.map +0 -1
  302. package/dist/testsLibrary/CodeExecutionTests.js.map +0 -1
  303. package/dist/testsLibrary/LanguageServerTests.js.map +0 -1
  304. package/dist/testsLibrary/ProjectAndFileTests.js.map +0 -1
  305. package/dist/utils/PreferencesHandler.js.map +0 -1
@@ -8,23 +8,23 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
 
11
+ import { e2eContainer } from '../../../inversify.config';
12
+ import { CLASSES } from '../../../inversify.types';
13
+ import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree';
14
+ import { Editor } from '../../../pageobjects/ide/theia/Editor';
15
+ import { TestConstants } from '../../../TestConstants';
16
+ import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests';
17
+ import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil';
18
+ import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia';
19
+ import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia';
11
20
  import { Key } from 'selenium-webdriver';
12
- import { e2eContainer } from '../../inversify.config';
13
- import { CLASSES } from '../../inversify.types';
14
- import { ProjectTree } from '../../pageobjects/ide/ProjectTree';
15
- import { Editor } from '../../pageobjects/ide/Editor';
16
- import { TestConstants } from '../../TestConstants';
17
- import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests';
18
- import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
19
- import { PreferencesHandler } from '../../utils/PreferencesHandler';
20
- import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests';
21
-
22
- const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
21
+
22
+ const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia);
23
23
  const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
24
24
  const editor: Editor = e2eContainer.get(CLASSES.Editor);
25
25
  const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
26
26
  const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
27
- const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler);
27
+ const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia);
28
28
 
29
29
  const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/xml-plugin';
30
30
  const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`;
@@ -8,23 +8,23 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
 
11
+ import { e2eContainer } from '../../../inversify.config';
12
+ import { CLASSES } from '../../../inversify.types';
13
+ import { ProjectTree } from '../../../pageobjects/ide/theia/ProjectTree';
14
+ import { Editor } from '../../../pageobjects/ide/theia/Editor';
15
+ import { TestConstants } from '../../../TestConstants';
16
+ import { WorkspaceHandlingTests } from '../../../testsLibrary/WorkspaceHandlingTests';
17
+ import { BrowserTabsUtil } from '../../../utils/BrowserTabsUtil';
18
+ import { PreferencesHandlerTheia } from '../../../utils/theia/PreferencesHandlerTheia';
19
+ import { ProjectAndFileTestsTheia } from '../../../testsLibrary/theia/ProjectAndFileTestsTheia';
11
20
  import { Key } from 'selenium-webdriver';
12
- import { e2eContainer } from '../../inversify.config';
13
- import { CLASSES } from '../../inversify.types';
14
- import { ProjectTree } from '../../pageobjects/ide/ProjectTree';
15
- import { Editor } from '../../pageobjects/ide/Editor';
16
- import { TestConstants } from '../../TestConstants';
17
- import { WorkspaceHandlingTests } from '../../testsLibrary/WorkspaceHandlingTests';
18
- import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
19
- import { PreferencesHandler } from '../../utils/PreferencesHandler';
20
- import { ProjectAndFileTests } from '../../testsLibrary/ProjectAndFileTests';
21
-
22
- const projectAndFileTests: ProjectAndFileTests = e2eContainer.get(CLASSES.ProjectAndFileTests);
21
+
22
+ const projectAndFileTests: ProjectAndFileTestsTheia = e2eContainer.get(CLASSES.ProjectAndFileTestsTheia);
23
23
  const projectTree: ProjectTree = e2eContainer.get(CLASSES.ProjectTree);
24
24
  const editor: Editor = e2eContainer.get(CLASSES.Editor);
25
25
  const browserTabsUtil: BrowserTabsUtil = e2eContainer.get(CLASSES.BrowserTabsUtil);
26
26
  const workspaceHandlingTests: WorkspaceHandlingTests = e2eContainer.get(CLASSES.WorkspaceHandlingTests);
27
- const preferencesHandler: PreferencesHandler = e2eContainer.get(CLASSES.PreferencesHandler);
27
+ const preferencesHandler: PreferencesHandlerTheia = e2eContainer.get(CLASSES.PreferencesHandlerTheia);
28
28
 
29
29
  const devfileUrl: string = TestConstants.TS_TEST_WORKSPACE_DEVFILE_REPO || 'https://github.com/che-samples/web-nodejs-sample/tree/yaml-plugin';
30
30
  const factoryUrl: string = `${TestConstants.TS_SELENIUM_BASE_URL}/f?url=${devfileUrl}`;
@@ -8,143 +8,118 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  **********************************************************************/
10
10
 
11
- import 'reflect-metadata';
12
- import { inject, injectable } from 'inversify';
13
- import { CLASSES } from '../inversify.types';
14
- import { Dashboard } from '../pageobjects/dashboard/Dashboard';
15
- import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace';
16
- import { Workspaces } from '../pageobjects/dashboard/Workspaces';
17
- import { BrowserTabsUtil } from '../utils/BrowserTabsUtil';
18
- import { Logger } from '../utils/Logger';
19
- import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver';
20
- import { TimeoutConstants } from '../TimeoutConstants';
21
- import { DriverHelper } from '../utils/DriverHelper';
22
- import { Ide } from '../pageobjects/ide/Ide';
23
- import { By, error } from 'selenium-webdriver';
24
- import { TestConstants } from '../TestConstants';
25
-
26
- @injectable()
27
- export class WorkspaceHandlingTests {
28
-
29
- private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`);
30
- private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`);
31
- private static workspaceName: string = 'undefined';
32
- private static parentGUID: string;
33
-
34
- public static getWorkspaceName(): string {
35
- return WorkspaceHandlingTests.workspaceName;
36
- }
37
-
38
- public static setWorkspaceName(workspaceName: string) {
39
- WorkspaceHandlingTests.workspaceName = workspaceName;
40
- }
41
-
42
- public setWindowHandle(guid: string) {
43
- WorkspaceHandlingTests.parentGUID = guid;
44
- }
45
-
46
- public getWindowHandle(): string {
47
- return WorkspaceHandlingTests.parentGUID;
48
- }
49
-
50
- constructor(
51
- @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard,
52
- @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace,
53
- @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces,
54
- @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil,
55
- @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver,
56
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
57
- @inject(CLASSES.Ide) private readonly ide: Ide) {}
58
-
59
- public createAndOpenWorkspace(stack: string) {
60
- test(`Create and open new workspace, stack:${stack}`, async () => {
61
- await this.dashboard.waitPage();
62
- Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
63
- await this.apiUrlResolver.getWorkspacesApiUrl();
64
- await this.dashboard.clickCreateWorkspaceButton();
65
- await this.createWorkspace.waitPage();
66
- WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
67
- await this.createWorkspace.clickOnSample(stack);
68
- await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT);
69
- });
70
- }
71
-
72
- public openExistingWorkspace(workspaceName: string) {
73
- test('Open and start existing workspace', async () => {
74
- await this.dashboard.waitPage();
75
- Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
76
- await this.apiUrlResolver.getWorkspacesApiUrl();
77
- await this.dashboard.clickWorkspacesButton();
78
- await this.workspaces.waitPage();
79
- await this.workspaces.clickOpenButton(workspaceName);
80
- });
81
- }
82
-
83
- public obtainWorkspaceNameFromStartingPage() {
84
- test('Obtain workspace name from workspace loader page', async() => {
85
- try {
86
- Logger.info("Waiting for workspace name on workspace loader page");
87
- await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT);
88
-
89
- const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT;
90
- const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING;
91
- const attempts: number = Math.ceil(timeout / polling);
92
- let startingWorkspaceLineContent: string;
93
-
94
- for (let i = 0; i < attempts; i++) {
95
- startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML');
96
-
97
- // cutting away leading text
98
- WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim();
99
- if (WorkspaceHandlingTests.workspaceName !== '') {
100
- Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`);
101
- break;
102
- }
103
-
104
- this.driverHelper.sleep(polling);
105
- }
106
- } catch (err) {
107
- Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`);
108
- throw err;
109
- }
110
- });
111
- }
112
-
113
- public switchBackToFirstOpenIdeTabFromLeftToRight() {
114
- test('WorkspaceHandlingTests.switchBackToIdeTab', async () => {
115
- let tabs = await this.driverHelper.getDriver().getAllWindowHandles();
116
- Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`);
117
- for (let i = 0; i < tabs.length; i++) {
118
- await this.browserTabsUtil.switchToWindow(tabs[i]);
119
- try {
120
- await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT);
121
- Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`);
122
- return;
123
- } catch (err) {
124
- if (err instanceof error.TimeoutError) {
125
- Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`);
126
- continue;
127
- }
128
- Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`);
129
- throw err;
130
- }
131
- }
132
- Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`);
133
- });
134
- }
135
-
136
- public async stopWorkspace(workspaceName: string) {
137
- await this.dashboard.openDashboard();
138
- await this.dashboard.stopWorkspaceByUI(workspaceName);
139
- }
140
-
141
- public async removeWorkspace(workspaceName: string) {
142
- await this.dashboard.openDashboard();
143
- await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName);
144
- }
145
-
146
- public async stopAndRemoveWorkspace(workspaceName: string) {
147
- await this.dashboard.openDashboard();
148
- await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName);
149
- }
150
- }
11
+ import 'reflect-metadata';
12
+ import { inject, injectable } from 'inversify';
13
+ import { CLASSES } from '../inversify.types';
14
+ import { Dashboard } from '../pageobjects/dashboard/Dashboard';
15
+ import { CreateWorkspace } from '../pageobjects/dashboard/CreateWorkspace';
16
+ import { Workspaces } from '../pageobjects/dashboard/Workspaces';
17
+ import { BrowserTabsUtil } from '../utils/BrowserTabsUtil';
18
+ import { Logger } from '../utils/Logger';
19
+ import { ApiUrlResolver } from '../utils/workspace/ApiUrlResolver';
20
+ import { TimeoutConstants } from '../TimeoutConstants';
21
+ import { DriverHelper } from '../utils/DriverHelper';
22
+ import { By } from 'selenium-webdriver';
23
+ import { TestConstants } from '../TestConstants';
24
+
25
+ @injectable()
26
+ export class WorkspaceHandlingTests {
27
+
28
+ private static START_WORKSPACE_PAGE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1`);
29
+ private static READY_TO_READ_WORKSPACE_NAME_LOCATOR: By = By.xpath(`//div[@class="ui-container"]/div[@class="pf-c-page"]//div[@class="pf-c-content"]/h1[contains(.,'Starting workspace ')]`);
30
+ private static workspaceName: string = 'undefined';
31
+ private static parentGUID: string;
32
+
33
+ public static getWorkspaceName(): string {
34
+ return WorkspaceHandlingTests.workspaceName;
35
+ }
36
+
37
+ public static setWorkspaceName(workspaceName: string) {
38
+ WorkspaceHandlingTests.workspaceName = workspaceName;
39
+ }
40
+
41
+ public setWindowHandle(guid: string) {
42
+ WorkspaceHandlingTests.parentGUID = guid;
43
+ }
44
+
45
+ public getWindowHandle(): string {
46
+ return WorkspaceHandlingTests.parentGUID;
47
+ }
48
+
49
+ constructor(
50
+ @inject(CLASSES.Dashboard) private readonly dashboard: Dashboard,
51
+ @inject(CLASSES.CreateWorkspace) private readonly createWorkspace: CreateWorkspace,
52
+ @inject(CLASSES.Workspaces) private readonly workspaces: Workspaces,
53
+ @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil,
54
+ @inject(CLASSES.ApiUrlResolver) private readonly apiUrlResolver: ApiUrlResolver,
55
+ @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) {}
56
+
57
+ public createAndOpenWorkspace(stack: string) {
58
+ test(`Create and open new workspace, stack:${stack}`, async () => {
59
+ await this.dashboard.waitPage();
60
+ Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
61
+ await this.apiUrlResolver.getWorkspacesApiUrl();
62
+ await this.dashboard.clickCreateWorkspaceButton();
63
+ await this.createWorkspace.waitPage();
64
+ WorkspaceHandlingTests.parentGUID = await this.browserTabsUtil.getCurrentWindowHandle();
65
+ await this.createWorkspace.clickOnSample(stack);
66
+ await this.browserTabsUtil.waitAndSwitchToAnotherWindow(WorkspaceHandlingTests.parentGUID, TimeoutConstants.TS_IDE_LOAD_TIMEOUT);
67
+ });
68
+ }
69
+
70
+ public openExistingWorkspace(workspaceName: string) {
71
+ test('Open and start existing workspace', async () => {
72
+ await this.dashboard.waitPage();
73
+ Logger.debug(`Fetching user kubernetes namespace, storing auth token by getting workspaces API URL.`);
74
+ await this.apiUrlResolver.getWorkspacesApiUrl();
75
+ await this.dashboard.clickWorkspacesButton();
76
+ await this.workspaces.waitPage();
77
+ await this.workspaces.clickOpenButton(workspaceName);
78
+ });
79
+ }
80
+
81
+ public obtainWorkspaceNameFromStartingPage() {
82
+ test('Obtain workspace name from workspace loader page', async() => {
83
+ try {
84
+ Logger.info('Waiting for workspace name on workspace loader page');
85
+ await this.driverHelper.waitVisibility(WorkspaceHandlingTests.READY_TO_READ_WORKSPACE_NAME_LOCATOR, TimeoutConstants.TS_WAIT_LOADER_PRESENCE_TIMEOUT);
86
+
87
+ const timeout: number = TimeoutConstants.TS_IDE_LOAD_TIMEOUT;
88
+ const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING;
89
+ const attempts: number = Math.ceil(timeout / polling);
90
+ let startingWorkspaceLineContent: string;
91
+
92
+ for (let i = 0; i < attempts; i++) {
93
+ startingWorkspaceLineContent = await this.driverHelper.getDriver().findElement(WorkspaceHandlingTests.START_WORKSPACE_PAGE_NAME_LOCATOR).getAttribute('innerHTML');
94
+
95
+ // cutting away leading text
96
+ WorkspaceHandlingTests.workspaceName = startingWorkspaceLineContent.substring('Starting workspace '.length).trim();
97
+ if (WorkspaceHandlingTests.workspaceName !== '') {
98
+ Logger.info(`Obtained workspace name from workspace loader page: ${WorkspaceHandlingTests.workspaceName}`);
99
+ break;
100
+ }
101
+
102
+ this.driverHelper.sleep(polling);
103
+ }
104
+ } catch (err) {
105
+ Logger.error(`Failed to obtain workspace name from workspace loader page: ${err}`);
106
+ throw err;
107
+ }
108
+ });
109
+ }
110
+
111
+ public async stopWorkspace(workspaceName: string) {
112
+ await this.dashboard.openDashboard();
113
+ await this.dashboard.stopWorkspaceByUI(workspaceName);
114
+ }
115
+
116
+ public async removeWorkspace(workspaceName: string) {
117
+ await this.dashboard.openDashboard();
118
+ await this.dashboard.deleteStoppedWorkspaceByUI(workspaceName);
119
+ }
120
+
121
+ public async stopAndRemoveWorkspace(workspaceName: string) {
122
+ await this.dashboard.openDashboard();
123
+ await this.dashboard.stopAndRemoveWorkspaceByUI(workspaceName);
124
+ }
125
+ }
@@ -10,21 +10,21 @@
10
10
 
11
11
  import 'reflect-metadata';
12
12
  import Axios from 'axios';
13
- import { CLASSES } from '../inversify.types';
13
+ import { CLASSES } from '../../inversify.types';
14
14
  import { inject, injectable } from 'inversify';
15
15
  import { By, error, Key } from 'selenium-webdriver';
16
- import { Ide } from '../pageobjects/ide/Ide';
17
- import { Terminal } from '../pageobjects/ide/Terminal';
18
- import { TopMenu } from '../pageobjects/ide/TopMenu';
19
- import { DialogWindow } from '../pageobjects/ide/DialogWindow';
20
- import { DriverHelper } from '../utils/DriverHelper';
21
- import { Logger } from '../utils/Logger';
22
- import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer';
23
- import { WorkspaceHandlingTests } from './WorkspaceHandlingTests';
24
- import { BrowserTabsUtil } from '../utils/BrowserTabsUtil';
16
+ import { Ide } from '../../pageobjects/ide/theia/Ide';
17
+ import { Terminal } from '../../pageobjects/ide/theia/Terminal';
18
+ import { TopMenu } from '../../pageobjects/ide/theia/TopMenu';
19
+ import { DialogWindow } from '../../pageobjects/ide/theia/DialogWindow';
20
+ import { DriverHelper } from '../../utils/DriverHelper';
21
+ import { Logger } from '../../utils/Logger';
22
+ import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer';
23
+ import { WorkspaceHandlingTests } from '../WorkspaceHandlingTests';
24
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
25
25
 
26
26
  @injectable()
27
- export class CodeExecutionTests {
27
+ export class CodeExecutionTestsTheia {
28
28
 
29
29
  private static lastApplicationUrl: string = '';
30
30
 
@@ -115,7 +115,7 @@ export class CodeExecutionTests {
115
115
  this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle());
116
116
  await this.ide.clickOnNotificationButton(notificationText, buttonText);
117
117
  await this.driverHelper.wait(5_000);
118
- CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
118
+ CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
119
119
  });
120
120
  }
121
121
 
@@ -129,7 +129,7 @@ export class CodeExecutionTests {
129
129
  this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle());
130
130
  await this.ide.clickOnNotificationButton(notificationText, 'Open In Preview');
131
131
  await this.driverHelper.wait(5_000);
132
- CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
132
+ CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
133
133
  });
134
134
  }
135
135
 
@@ -140,7 +140,7 @@ export class CodeExecutionTests {
140
140
  this.workspaceHandlingTests.setWindowHandle(await this.browserTabsUtil.getCurrentWindowHandle());
141
141
  await this.ide.waitNotificationAndOpenLink(portOpenText, timeout);
142
142
  await this.driverHelper.wait(5_000);
143
- CodeExecutionTests.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
143
+ CodeExecutionTestsTheia.lastApplicationUrl = await this.driverHelper.getDriver().getCurrentUrl();
144
144
  });
145
145
  }
146
146
 
@@ -169,7 +169,7 @@ export class CodeExecutionTests {
169
169
  }
170
170
 
171
171
  public getLastApplicationUrl(): string {
172
- return CodeExecutionTests.lastApplicationUrl;
172
+ return CodeExecutionTestsTheia.lastApplicationUrl;
173
173
  }
174
174
 
175
175
  /**
@@ -10,18 +10,18 @@
10
10
 
11
11
  import 'reflect-metadata';
12
12
  import { inject, injectable } from 'inversify';
13
- import { CLASSES } from '../inversify.types';
14
- import { TimeoutConstants } from '../TimeoutConstants';
15
- import { Editor } from '../pageobjects/ide/Editor';
16
- import { Ide, LeftToolbarButton } from '../pageobjects/ide/Ide';
17
- import { TopMenu } from '../pageobjects/ide/TopMenu';
18
- import { DebugView } from '../pageobjects/ide/DebugView';
13
+ import { CLASSES } from '../../inversify.types';
14
+ import { TimeoutConstants } from '../../TimeoutConstants';
15
+ import { Editor } from '../../pageobjects/ide/theia/Editor';
16
+ import { Ide, LeftToolbarButton } from '../../pageobjects/ide/theia/Ide';
17
+ import { TopMenu } from '../../pageobjects/ide/theia/TopMenu';
18
+ import { DebugView } from '../../pageobjects/ide/theia/DebugView';
19
19
  import { Key, error } from 'selenium-webdriver';
20
- import { Logger } from '../utils/Logger';
21
- import { BrowserTabsUtil } from '../utils/BrowserTabsUtil';
20
+ import { Logger } from '../../utils/Logger';
21
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
22
22
 
23
23
  @injectable()
24
- export class LanguageServerTests {
24
+ export class LanguageServerTestsTheia {
25
25
 
26
26
  constructor(
27
27
  @inject(CLASSES.Editor) private readonly editor: Editor,
@@ -10,24 +10,50 @@
10
10
 
11
11
  import 'reflect-metadata';
12
12
  import { inject, injectable } from 'inversify';
13
- import { By } from 'selenium-webdriver';
14
- import { Ide } from '../pageobjects/ide/Ide';
15
- import { ProjectTree } from '../pageobjects/ide/ProjectTree';
16
- import { OpenEditors } from '../pageobjects/ide/OpenEditors';
17
- import { Editor } from '../pageobjects/ide/Editor';
18
- import { TimeoutConstants } from '../TimeoutConstants';
19
- import { DriverHelper } from '../utils/DriverHelper';
20
- import { CLASSES } from '../inversify.types';
13
+ import { By, error } from 'selenium-webdriver';
14
+ import { Ide } from '../../pageobjects/ide/theia/Ide';
15
+ import { ProjectTree } from '../../pageobjects/ide/theia/ProjectTree';
16
+ import { OpenEditors } from '../../pageobjects/ide/theia/OpenEditors';
17
+ import { Editor } from '../../pageobjects/ide/theia/Editor';
18
+ import { TimeoutConstants } from '../../TimeoutConstants';
19
+ import { DriverHelper } from '../../utils/DriverHelper';
20
+ import { CLASSES } from '../../inversify.types';
21
+ import { Logger } from '../../utils/Logger';
22
+ import { BrowserTabsUtil } from '../../utils/BrowserTabsUtil';
21
23
 
22
24
  @injectable()
23
- export class ProjectAndFileTests {
25
+ export class ProjectAndFileTestsTheia {
24
26
 
25
27
  constructor(
26
28
  @inject(CLASSES.Ide) private readonly ide: Ide,
27
29
  @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
28
30
  @inject(CLASSES.ProjectTree) private readonly projectTree: ProjectTree,
29
31
  @inject(CLASSES.OpenEditors) private readonly openEditors: OpenEditors,
30
- @inject(CLASSES.Editor) private readonly editor: Editor) {}
32
+ @inject(CLASSES.Editor) private readonly editor: Editor,
33
+ @inject(CLASSES.BrowserTabsUtil) private readonly browserTabsUtil: BrowserTabsUtil) {}
34
+
35
+ public switchBackToFirstOpenIdeTabFromLeftToRight() {
36
+ test('WorkspaceHandlingTests.switchBackToIdeTab', async () => {
37
+ let tabs = await this.driverHelper.getDriver().getAllWindowHandles();
38
+ Logger.trace(`WorkspaceHandlingTests.switchBackToIdeTab Found ${tabs.length} window handles, iterating...`);
39
+ for (let i = 0; i < tabs.length; i++) {
40
+ await this.browserTabsUtil.switchToWindow(tabs[i]);
41
+ try {
42
+ await this.ide.waitIde(TimeoutConstants.TS_IDE_LOAD_TIMEOUT);
43
+ Logger.debug(`WorkspaceHandlingTests.switchBackToIdeTab located and switched to IDE tab`);
44
+ return;
45
+ } catch (err) {
46
+ if (err instanceof error.TimeoutError) {
47
+ Logger.warn(`WorkspaceHandlingTests.switchBackToIdeTab Locator timed out, trying with another window handle.`);
48
+ continue;
49
+ }
50
+ Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Received unexpected exception while trying to locate IDE tab:${err}`);
51
+ throw err;
52
+ }
53
+ }
54
+ Logger.error(`WorkspaceHandlingTests.switchBackToIdeTab Failed to locate IDE tab, out of window handles.`);
55
+ });
56
+ }
31
57
 
32
58
  public waitWorkspaceReadiness(sampleName : string, folder: string, checkNotification: boolean = true, restartWorkspaceDialogIsExpected: boolean = false) {
33
59
  test('Wait for workspace readiness', async () => {
@@ -10,7 +10,7 @@
10
10
  import { IDriver } from '../driver/IDriver';
11
11
  import { inject, injectable } from 'inversify';
12
12
  import { TYPES } from '../inversify.types';
13
- import { error, ActionSequence } from 'selenium-webdriver';
13
+ import { error, Actions } from 'selenium-webdriver';
14
14
  import 'reflect-metadata';
15
15
  import { ThenableWebDriver, By, until, WebElement } from 'selenium-webdriver';
16
16
  import { TestConstants } from '../TestConstants';
@@ -26,7 +26,7 @@ export class DriverHelper {
26
26
  this.driver = driver.get();
27
27
  }
28
28
 
29
- public getAction(): ActionSequence {
29
+ public getAction(): Actions {
30
30
  Logger.trace('DriverHelper.getAction');
31
31
 
32
32
  return this.driver.actions();
@@ -717,7 +717,7 @@ export class DriverHelper {
717
717
  }
718
718
 
719
719
  try {
720
- await this.getAction().mouseMove(element).perform();
720
+ await this.getAction().move({origin: element}).perform();
721
721
  return;
722
722
  } catch (err) {
723
723
  if (err instanceof error.StaleElementReferenceError) {
@@ -9,27 +9,27 @@
9
9
  **********************************************************************/
10
10
 
11
11
  import { injectable, inject } from 'inversify';
12
- import { Logger } from './Logger';
13
- import { CLASSES } from '../inversify.types';
14
- import { CheApiRequestHandler } from './requestHandlers/CheApiRequestHandler';
15
- import { Editor } from '../pageobjects/ide/Editor';
16
- import { QuickOpenContainer } from '../pageobjects/ide/QuickOpenContainer';
17
- import { TopMenu } from '../pageobjects/ide/TopMenu';
12
+ import { Logger } from '../Logger';
13
+ import { CLASSES } from '../../inversify.types';
14
+ import { CheApiRequestHandler } from '../requestHandlers/CheApiRequestHandler';
15
+ import { Editor } from '../../pageobjects/ide/theia/Editor';
16
+ import { QuickOpenContainer } from '../../pageobjects/ide/theia/QuickOpenContainer';
17
+ import { TopMenu } from '../../pageobjects/ide/theia/TopMenu';
18
18
  import { Key } from 'selenium-webdriver';
19
19
 
20
- export enum TerminalRendererType {
20
+ export enum TerminalRendererTypeTheia {
21
21
  canvas = 'canvas',
22
22
  dom = 'dom'
23
23
  }
24
24
 
25
- export enum AskForConfirmationType {
25
+ export enum AskForConfirmationTypeTheia {
26
26
  never = 'never',
27
27
  ifRquired = 'ifRequired',
28
28
  always = 'always'
29
29
  }
30
30
 
31
31
  @injectable()
32
- export class PreferencesHandler {
32
+ export class PreferencesHandlerTheia {
33
33
 
34
34
  constructor(@inject(CLASSES.CheApiRequestHandler) private readonly requestHandler: CheApiRequestHandler,
35
35
  @inject(CLASSES.Editor) private readonly editor: Editor,
@@ -61,7 +61,7 @@ export class PreferencesHandler {
61
61
  /**
62
62
  * Works properly only if set before workspace startup.
63
63
  */
64
- public async setTerminalType(type: TerminalRendererType) {
64
+ public async setTerminalType(type: TerminalRendererTypeTheia) {
65
65
  Logger.debug('PreferencesHandler.setTerminalToDom');
66
66
  await this.setPreference('terminal.integrated.rendererType', type);
67
67
  }
@@ -70,7 +70,7 @@ export class PreferencesHandler {
70
70
  *
71
71
  * @param askForConfirmation possible values are "never", "ifRequired" and "always"
72
72
  */
73
- public async setConfirmExit(askForConfirmation: AskForConfirmationType) {
73
+ public async setConfirmExit(askForConfirmation: AskForConfirmationTypeTheia) {
74
74
  Logger.debug(`PreferencesHandler.setConfirmExit to ${askForConfirmation}`);
75
75
  await this.setPreference(`application.confirmExit`, askForConfirmation);
76
76
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextMenu.js","sourceRoot":"","sources":["../../../pageobjects/ide/ContextMenu.ts"],"names":[],"mappings":";AAAA;;;;;;;;wEAQwE;;;;;;;;;;;;;;;;AAExE,4BAA0B;AAC1B,yCAA+C;AAC/C,2DAAwD;AACxD,2DAAgD;AAChD,2DAAiE;AACjE,+CAA4C;AAC5C,6DAA0D;AAG1D,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAGnB,YAA2D,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAI,CAAC;IAG1F,KAAK,CAAC,sCAAsC,CAAC,cAAkB;QAC1D,eAAM,CAAC,KAAK,CAAC,sDAAsD,cAAc,EAAE,CAAC,CAAC;QAErF,MAAM,UAAU,GAAe,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,cAAc,EAAE,mCAAgB,CAAC,uBAAuB,CAAC,CAAC;QAChI,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,2BAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,wCAAwC;QACzC,eAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAErE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,wBAAG,CAAC,KAAK,GAAG,wBAAG,CAAC,GAAG,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,UAAkB;QACjD,eAAM,CAAC,KAAK,CAAC,8CAA8C,UAAU,GAAG,CAAC,CAAC;QAE1E,MAAM,WAAW,GAAW,+CAA+C,UAAU,IAAI,CAAC;QAC1F,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,uBAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,mCAAgB,CAAC,uBAAuB,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,eAAe;QAChB,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAE5C,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,uBAAE,CAAC,GAAG,CAAC,aAAW,CAAC,0BAA0B,CAAC,EAAE,mCAAgB,CAAC,uBAAuB,CAAC,CAAC;IACtI,CAAC;CAEL,CAAA;AAlC4B,sCAA0B,GAAW,mBAAmB,CAAC;AADzE,WAAW;IADvB,sBAAU,EAAE;IAIK,WAAA,kBAAM,CAAC,yBAAO,CAAC,YAAY,CAAC,CAAA;qCAAgC,2BAAY;GAH7E,WAAW,CAmCvB;AAnCY,kCAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DebugView.js","sourceRoot":"","sources":["../../../pageobjects/ide/DebugView.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogWindow.js","sourceRoot":"","sources":["../../../pageobjects/ide/DialogWindow.ts"],"names":[],"mappings":"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"}