@eclipse-che/che-e2e 7.62.0 → 7.63.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 (380) hide show
  1. package/configs/inversify.config.ts +88 -0
  2. package/{inversify.types.ts → configs/inversify.types.ts} +6 -9
  3. package/configs/mocharc.ts +21 -0
  4. package/{generateIndex.sh → configs/sh-scripts/generateIndex.sh} +8 -10
  5. package/{initDevfileTests.sh → configs/sh-scripts/initDevfileTests.sh} +18 -27
  6. package/{TestConstants.ts → constants/TestConstants.ts} +1 -1
  7. package/{TimeoutConstants.ts → constants/TimeoutConstants.ts} +1 -1
  8. package/dist/configs/inversify.config.js +81 -0
  9. package/dist/configs/inversify.config.js.map +1 -0
  10. package/dist/{inversify.types.js → configs/inversify.types.js} +5 -8
  11. package/dist/configs/inversify.types.js.map +1 -0
  12. package/dist/configs/mocharc.js +20 -0
  13. package/dist/configs/mocharc.js.map +1 -0
  14. package/dist/{TestConstants.js → constants/TestConstants.js} +1 -1
  15. package/dist/constants/TestConstants.js.map +1 -0
  16. package/dist/{TimeoutConstants.js → constants/TimeoutConstants.js} +1 -1
  17. package/dist/constants/TimeoutConstants.js.map +1 -0
  18. package/dist/driver/ChromeDriver.js +2 -2
  19. package/dist/driver/ChromeDriver.js.map +1 -1
  20. package/dist/pageobjects/dashboard/CreateWorkspace.js +4 -4
  21. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +1 -1
  22. package/dist/pageobjects/dashboard/Dashboard.js +4 -4
  23. package/dist/pageobjects/dashboard/Dashboard.js.map +1 -1
  24. package/dist/pageobjects/dashboard/Workspaces.js +3 -3
  25. package/dist/pageobjects/dashboard/Workspaces.js.map +1 -1
  26. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +10 -8
  27. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +1 -1
  28. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +3 -3
  29. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +1 -1
  30. package/dist/pageobjects/login/ICheLoginPage.js +1 -1
  31. package/dist/pageobjects/login/IOcpLoginPage.js +1 -1
  32. package/dist/pageobjects/login/MultiUserLoginPage.js +3 -3
  33. package/dist/pageobjects/login/MultiUserLoginPage.js.map +1 -1
  34. package/dist/pageobjects/login/OcpUserLoginPage.js +3 -3
  35. package/dist/pageobjects/login/OcpUserLoginPage.js.map +1 -1
  36. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js +4 -4
  37. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +1 -1
  38. package/dist/pageobjects/login/UpdateAccountInformationPage.js +2 -2
  39. package/dist/pageobjects/login/UpdateAccountInformationPage.js.map +1 -1
  40. package/dist/pageobjects/openshift/CheLoginPage.js +3 -3
  41. package/dist/pageobjects/openshift/CheLoginPage.js.map +1 -1
  42. package/dist/pageobjects/openshift/OcpLoginPage.js +4 -4
  43. package/dist/pageobjects/openshift/OcpLoginPage.js.map +1 -1
  44. package/dist/pageobjects/third-parties/GitLoginPage.js +4 -4
  45. package/dist/pageobjects/third-parties/GitLoginPage.js.map +1 -1
  46. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js +3 -3
  47. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js.map +1 -1
  48. package/dist/{tests → specs}/MochaHooks.js +32 -18
  49. package/dist/specs/MochaHooks.js.map +1 -0
  50. package/dist/{tests/devfiles/che-code → specs/devfiles}/EmptyWorkspace.spec.js +10 -11
  51. package/dist/specs/devfiles/EmptyWorkspace.spec.js.map +1 -0
  52. package/dist/{tests → specs}/login/LinkCheAndOcpUsers.spec.js +13 -12
  53. package/dist/specs/login/LinkCheAndOcpUsers.spec.js.map +1 -0
  54. package/dist/{utils/AnimationChecker.js → tests-library/LoginTests.js} +26 -18
  55. package/dist/tests-library/LoginTests.js.map +1 -0
  56. package/dist/{testsLibrary/che-code/ProjectAndFileTestsCheCode.js → tests-library/ProjectAndFileTests.js} +11 -11
  57. package/dist/tests-library/ProjectAndFileTests.js.map +1 -0
  58. package/dist/{testsLibrary → tests-library}/WorkspaceHandlingTests.js +4 -4
  59. package/dist/tests-library/WorkspaceHandlingTests.js.map +1 -0
  60. package/dist/utils/BrowserTabsUtil.js +3 -3
  61. package/dist/utils/BrowserTabsUtil.js.map +1 -1
  62. package/dist/{driver → utils}/CheReporter.js +6 -10
  63. package/dist/utils/CheReporter.js.map +1 -0
  64. package/dist/utils/DriverHelper.js +3 -3
  65. package/dist/utils/DriverHelper.js.map +1 -1
  66. package/dist/utils/Logger.js +2 -2
  67. package/dist/utils/Logger.js.map +1 -1
  68. package/dist/utils/Sanitizer.js +1 -1
  69. package/dist/utils/ScreenCatcher.js +7 -7
  70. package/dist/utils/ScreenCatcher.js.map +1 -1
  71. package/dist/utils/WorkspaceNameHandler.js +2 -2
  72. package/dist/utils/WorkspaceNameHandler.js.map +1 -1
  73. package/dist/utils/{requestHandlers → request-handlers}/CheApiRequestHandler.js +3 -3
  74. package/dist/utils/request-handlers/CheApiRequestHandler.js.map +1 -0
  75. package/dist/utils/{requestHandlers → request-handlers}/headers/CheMultiuserAuthorizationHeaderHandler.js +1 -1
  76. package/dist/utils/request-handlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +1 -0
  77. package/dist/utils/{requestHandlers → request-handlers}/headers/IAuthorizationHeaderHandler.js +1 -1
  78. package/dist/utils/request-handlers/headers/IAuthorizationHeaderHandler.js.map +1 -0
  79. package/dist/utils/{requestHandlers → request-handlers}/tokens/CheMultiuserTokenHandler.js +2 -2
  80. package/dist/utils/request-handlers/tokens/CheMultiuserTokenHandler.js.map +1 -0
  81. package/dist/utils/{requestHandlers → request-handlers}/tokens/ITokenHandler.js +1 -1
  82. package/dist/utils/request-handlers/tokens/ITokenHandler.js.map +1 -0
  83. package/dist/utils/{VCS → vsc}/CheGitApi.js +2 -2
  84. package/dist/utils/vsc/CheGitApi.js.map +1 -0
  85. package/dist/utils/{VCS → vsc}/github/GitHubUtil.js.map +1 -1
  86. package/dist/utils/workspace/ApiUrlResolver.js +3 -3
  87. package/dist/utils/workspace/ApiUrlResolver.js.map +1 -1
  88. package/dist/utils/workspace/ITestWorkspaceUtil.js +1 -1
  89. package/dist/utils/workspace/TestWorkspaceUtil.js +4 -4
  90. package/dist/utils/workspace/TestWorkspaceUtil.js.map +1 -1
  91. package/dist/utils/workspace/WorkspaceStatus.js +1 -1
  92. package/driver/ChromeDriver.ts +2 -2
  93. package/driver/IDriver.ts +1 -1
  94. package/package.json +6 -37
  95. package/pageobjects/dashboard/CreateWorkspace.ts +4 -4
  96. package/pageobjects/dashboard/Dashboard.ts +4 -4
  97. package/pageobjects/dashboard/Workspaces.ts +3 -3
  98. package/pageobjects/dashboard/workspace-details/WorkspaceDetails.ts +8 -8
  99. package/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.ts +3 -4
  100. package/pageobjects/login/ICheLoginPage.ts +1 -1
  101. package/pageobjects/login/IOcpLoginPage.ts +1 -1
  102. package/pageobjects/login/MultiUserLoginPage.ts +3 -3
  103. package/pageobjects/login/OcpUserLoginPage.ts +3 -3
  104. package/pageobjects/login/RegularUserOcpCheLoginPage.ts +4 -4
  105. package/pageobjects/login/UpdateAccountInformationPage.ts +2 -2
  106. package/pageobjects/openshift/CheLoginPage.ts +3 -3
  107. package/pageobjects/openshift/OcpLoginPage.ts +4 -4
  108. package/pageobjects/third-parties/GitLoginPage.ts +4 -4
  109. package/pageobjects/third-parties/GitOauthAppsSettings.ts +3 -3
  110. package/specs/MochaHooks.ts +72 -0
  111. package/{tests/devfiles/che-code → specs/devfiles}/EmptyWorkspace.spec.ts +12 -9
  112. package/{tests → specs}/login/LinkCheAndOcpUsers.spec.ts +5 -4
  113. package/tests-library/LoginTests.ts +35 -0
  114. package/{testsLibrary/che-code/ProjectAndFileTestsCheCode.ts → tests-library/ProjectAndFileTests.ts} +6 -6
  115. package/{testsLibrary → tests-library}/WorkspaceHandlingTests.ts +4 -4
  116. package/utils/BrowserTabsUtil.ts +3 -3
  117. package/{driver → utils}/CheReporter.ts +10 -15
  118. package/utils/DriverHelper.ts +4 -4
  119. package/utils/Logger.ts +2 -2
  120. package/utils/Sanitizer.ts +1 -1
  121. package/utils/ScreenCatcher.ts +3 -3
  122. package/utils/WorkspaceNameHandler.ts +2 -2
  123. package/utils/{requestHandlers → request-handlers}/CheApiRequestHandler.ts +3 -3
  124. package/utils/{requestHandlers → request-handlers}/headers/CheMultiuserAuthorizationHeaderHandler.ts +2 -2
  125. package/utils/{requestHandlers → request-handlers}/headers/IAuthorizationHeaderHandler.ts +1 -1
  126. package/utils/{requestHandlers → request-handlers}/tokens/CheMultiuserTokenHandler.ts +2 -2
  127. package/utils/{requestHandlers → request-handlers}/tokens/ITokenHandler.ts +1 -1
  128. package/utils/{VCS → vsc}/CheGitApi.ts +2 -6
  129. package/utils/workspace/ApiUrlResolver.ts +3 -3
  130. package/utils/workspace/ITestWorkspaceUtil.ts +1 -1
  131. package/utils/workspace/TestWorkspaceUtil.ts +4 -4
  132. package/utils/workspace/WorkspaceStatus.ts +1 -1
  133. package/dist/TestConstants.js.map +0 -1
  134. package/dist/TimeoutConstants.js.map +0 -1
  135. package/dist/driver/CheReporter.js.map +0 -1
  136. package/dist/index.js +0 -94
  137. package/dist/index.js.map +0 -1
  138. package/dist/inversify.config.js +0 -133
  139. package/dist/inversify.config.js.map +0 -1
  140. package/dist/inversify.types.js.map +0 -1
  141. package/dist/pageobjects/ide/theia/ContextMenu.js +0 -66
  142. package/dist/pageobjects/ide/theia/ContextMenu.js.map +0 -1
  143. package/dist/pageobjects/ide/theia/DebugView.js +0 -98
  144. package/dist/pageobjects/ide/theia/DebugView.js.map +0 -1
  145. package/dist/pageobjects/ide/theia/DialogWindow.js +0 -102
  146. package/dist/pageobjects/ide/theia/DialogWindow.js.map +0 -1
  147. package/dist/pageobjects/ide/theia/Editor.js +0 -463
  148. package/dist/pageobjects/ide/theia/Editor.js.map +0 -1
  149. package/dist/pageobjects/ide/theia/Ide.js +0 -336
  150. package/dist/pageobjects/ide/theia/Ide.js.map +0 -1
  151. package/dist/pageobjects/ide/theia/LeftToolBar.js +0 -81
  152. package/dist/pageobjects/ide/theia/LeftToolBar.js.map +0 -1
  153. package/dist/pageobjects/ide/theia/NavigationBar.js +0 -57
  154. package/dist/pageobjects/ide/theia/NavigationBar.js.map +0 -1
  155. package/dist/pageobjects/ide/theia/NotificationCenter.js +0 -76
  156. package/dist/pageobjects/ide/theia/NotificationCenter.js.map +0 -1
  157. package/dist/pageobjects/ide/theia/OpenDialogWidget.js +0 -100
  158. package/dist/pageobjects/ide/theia/OpenDialogWidget.js.map +0 -1
  159. package/dist/pageobjects/ide/theia/OpenEditors.js +0 -73
  160. package/dist/pageobjects/ide/theia/OpenEditors.js.map +0 -1
  161. package/dist/pageobjects/ide/theia/OpenWorkspaceWidget.js +0 -62
  162. package/dist/pageobjects/ide/theia/OpenWorkspaceWidget.js.map +0 -1
  163. package/dist/pageobjects/ide/theia/PreviewWidget.js +0 -134
  164. package/dist/pageobjects/ide/theia/PreviewWidget.js.map +0 -1
  165. package/dist/pageobjects/ide/theia/ProjectTree.js +0 -282
  166. package/dist/pageobjects/ide/theia/ProjectTree.js.map +0 -1
  167. package/dist/pageobjects/ide/theia/QuickOpenContainer.js +0 -70
  168. package/dist/pageobjects/ide/theia/QuickOpenContainer.js.map +0 -1
  169. package/dist/pageobjects/ide/theia/RightToolBar.js +0 -51
  170. package/dist/pageobjects/ide/theia/RightToolBar.js.map +0 -1
  171. package/dist/pageobjects/ide/theia/Terminal.js +0 -184
  172. package/dist/pageobjects/ide/theia/Terminal.js.map +0 -1
  173. package/dist/pageobjects/ide/theia/TopMenu.js +0 -109
  174. package/dist/pageobjects/ide/theia/TopMenu.js.map +0 -1
  175. package/dist/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.js +0 -128
  176. package/dist/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.js.map +0 -1
  177. package/dist/pageobjects/ide/theia/plugins/GitPlugin.js +0 -120
  178. package/dist/pageobjects/ide/theia/plugins/GitPlugin.js.map +0 -1
  179. package/dist/pageobjects/ide/theia/plugins/KubernetesPlugin.js +0 -107
  180. package/dist/pageobjects/ide/theia/plugins/KubernetesPlugin.js.map +0 -1
  181. package/dist/pageobjects/ide/theia/plugins/OpenshiftPlugin.js +0 -99
  182. package/dist/pageobjects/ide/theia/plugins/OpenshiftPlugin.js.map +0 -1
  183. package/dist/pageobjects/ide/theia/plugins/PluginsView.js +0 -166
  184. package/dist/pageobjects/ide/theia/plugins/PluginsView.js.map +0 -1
  185. package/dist/tests/MochaHooks.js.map +0 -1
  186. package/dist/tests/devfiles/che-code/EmptyWorkspace.spec.js.map +0 -1
  187. package/dist/tests/devfiles/theia/CSlashCPlusPlus.spec.js +0 -73
  188. package/dist/tests/devfiles/theia/CSlashCPlusPlus.spec.js.map +0 -1
  189. package/dist/tests/devfiles/theia/DevfileSmoke.spec.js +0 -47
  190. package/dist/tests/devfiles/theia/DevfileSmoke.spec.js.map +0 -1
  191. package/dist/tests/devfiles/theia/DotNetCore.spec.js +0 -81
  192. package/dist/tests/devfiles/theia/DotNetCore.spec.js.map +0 -1
  193. package/dist/tests/devfiles/theia/Go.spec.js +0 -72
  194. package/dist/tests/devfiles/theia/Go.spec.js.map +0 -1
  195. package/dist/tests/devfiles/theia/JavaMaven.spec.js +0 -60
  196. package/dist/tests/devfiles/theia/JavaMaven.spec.js.map +0 -1
  197. package/dist/tests/devfiles/theia/JavaSpringBoot.spec.js +0 -66
  198. package/dist/tests/devfiles/theia/JavaSpringBoot.spec.js.map +0 -1
  199. package/dist/tests/devfiles/theia/JavaVertx.spec.js +0 -60
  200. package/dist/tests/devfiles/theia/JavaVertx.spec.js.map +0 -1
  201. package/dist/tests/devfiles/theia/NodeJS.spec.js +0 -64
  202. package/dist/tests/devfiles/theia/NodeJS.spec.js.map +0 -1
  203. package/dist/tests/devfiles/theia/PHPSimple.spec.js +0 -74
  204. package/dist/tests/devfiles/theia/PHPSimple.spec.js.map +0 -1
  205. package/dist/tests/devfiles/theia/Python.spec.js +0 -58
  206. package/dist/tests/devfiles/theia/Python.spec.js.map +0 -1
  207. package/dist/tests/devfiles/theia/PythonDjango.spec.js +0 -61
  208. package/dist/tests/devfiles/theia/PythonDjango.spec.js.map +0 -1
  209. package/dist/tests/devfiles/theia/Quarkus.spec.js +0 -69
  210. package/dist/tests/devfiles/theia/Quarkus.spec.js.map +0 -1
  211. package/dist/tests/devfiles/theia/Scala.spec.js +0 -66
  212. package/dist/tests/devfiles/theia/Scala.spec.js.map +0 -1
  213. package/dist/tests/e2e/theia/FactoryUrl.spec.js +0 -40
  214. package/dist/tests/e2e/theia/FactoryUrl.spec.js.map +0 -1
  215. package/dist/tests/e2e/theia/GitPublishBranch.spec.js +0 -90
  216. package/dist/tests/e2e/theia/GitPublishBranch.spec.js.map +0 -1
  217. package/dist/tests/e2e/theia/GitSelfSignCert.spec.js +0 -90
  218. package/dist/tests/e2e/theia/GitSelfSignCert.spec.js.map +0 -1
  219. package/dist/tests/e2e/theia/GitSsh.spec.js +0 -120
  220. package/dist/tests/e2e/theia/GitSsh.spec.js.map +0 -1
  221. package/dist/tests/e2e/theia/OpenshiftConnector.spec.js +0 -124
  222. package/dist/tests/e2e/theia/OpenshiftConnector.spec.js.map +0 -1
  223. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js +0 -50
  224. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js.map +0 -1
  225. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js +0 -48
  226. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js.map +0 -1
  227. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js +0 -48
  228. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js.map +0 -1
  229. package/dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js +0 -277
  230. package/dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js.map +0 -1
  231. package/dist/tests/e2e_happy_path/theia/HappyPath.spec.js +0 -314
  232. package/dist/tests/e2e_happy_path/theia/HappyPath.spec.js.map +0 -1
  233. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js +0 -39
  234. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js.map +0 -1
  235. package/dist/tests/load_test/theia/LoadTest.spec.js +0 -41
  236. package/dist/tests/load_test/theia/LoadTest.spec.js.map +0 -1
  237. package/dist/tests/login/LinkCheAndOcpUsers.spec.js.map +0 -1
  238. package/dist/tests/login/Login.spec.js +0 -28
  239. package/dist/tests/login/Login.spec.js.map +0 -1
  240. package/dist/tests/plugins/theia/GitHubPullRequestPlugin.spec.js +0 -117
  241. package/dist/tests/plugins/theia/GitHubPullRequestPlugin.spec.js.map +0 -1
  242. package/dist/tests/plugins/theia/InstallPluginUsingUI.spec.js +0 -62
  243. package/dist/tests/plugins/theia/InstallPluginUsingUI.spec.js.map +0 -1
  244. package/dist/tests/plugins/theia/JavaPlugin.spec.js +0 -82
  245. package/dist/tests/plugins/theia/JavaPlugin.spec.js.map +0 -1
  246. package/dist/tests/plugins/theia/PhpPlugin.spec.js +0 -96
  247. package/dist/tests/plugins/theia/PhpPlugin.spec.js.map +0 -1
  248. package/dist/tests/plugins/theia/PythonPlugin.spec.js +0 -72
  249. package/dist/tests/plugins/theia/PythonPlugin.spec.js.map +0 -1
  250. package/dist/tests/plugins/theia/TypescriptPlugin.spec.js +0 -135
  251. package/dist/tests/plugins/theia/TypescriptPlugin.spec.js.map +0 -1
  252. package/dist/tests/plugins/theia/VscodeKubernetesPlugin.spec.js +0 -69
  253. package/dist/tests/plugins/theia/VscodeKubernetesPlugin.spec.js.map +0 -1
  254. package/dist/tests/plugins/theia/VscodeShellcheckPlugin.spec.js +0 -82
  255. package/dist/tests/plugins/theia/VscodeShellcheckPlugin.spec.js.map +0 -1
  256. package/dist/tests/plugins/theia/VscodeValePlugin.spec.js +0 -70
  257. package/dist/tests/plugins/theia/VscodeValePlugin.spec.js.map +0 -1
  258. package/dist/tests/plugins/theia/VscodeXmlPlugin.spec.js +0 -81
  259. package/dist/tests/plugins/theia/VscodeXmlPlugin.spec.js.map +0 -1
  260. package/dist/tests/plugins/theia/VscodeYamlPlugin.spec.js +0 -78
  261. package/dist/tests/plugins/theia/VscodeYamlPlugin.spec.js.map +0 -1
  262. package/dist/testsLibrary/WorkspaceHandlingTests.js.map +0 -1
  263. package/dist/testsLibrary/che-code/ProjectAndFileTestsCheCode.js.map +0 -1
  264. package/dist/testsLibrary/theia/CodeExecutionTestsTheia.js +0 -248
  265. package/dist/testsLibrary/theia/CodeExecutionTestsTheia.js.map +0 -1
  266. package/dist/testsLibrary/theia/LanguageServerTestsTheia.js +0 -230
  267. package/dist/testsLibrary/theia/LanguageServerTestsTheia.js.map +0 -1
  268. package/dist/testsLibrary/theia/ProjectAndFileTestsTheia.js +0 -133
  269. package/dist/testsLibrary/theia/ProjectAndFileTestsTheia.js.map +0 -1
  270. package/dist/utils/AnimationChecker.js.map +0 -1
  271. package/dist/utils/VCS/CheGitApi.js.map +0 -1
  272. package/dist/utils/requestHandlers/CheApiRequestHandler.js.map +0 -1
  273. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
  274. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
  275. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.js.map +0 -1
  276. package/dist/utils/requestHandlers/tokens/ITokenHandler.js.map +0 -1
  277. package/dist/utils/theia/PreferencesHandlerTheia.js +0 -142
  278. package/dist/utils/theia/PreferencesHandlerTheia.js.map +0 -1
  279. package/index.ts +0 -69
  280. package/initPluginTest.sh +0 -9
  281. package/inversify.config.ts +0 -141
  282. package/mocha-all-devfiles-che-code.json +0 -12
  283. package/mocha-all-devfiles-theia.json +0 -15
  284. package/mocha-all-factories-che-code.json +0 -14
  285. package/mocha-all-factories-theia.json +0 -16
  286. package/mocha-all-plugins-che-code.json +0 -13
  287. package/mocha-all-plugins-theia.json +0 -15
  288. package/mocha-che-code.json +0 -12
  289. package/mocha-connector-theia.json +0 -12
  290. package/mocha-devworkspace-happy-path-che-code.json +0 -13
  291. package/mocha-devworkspace-happy-path-theia.json +0 -14
  292. package/mocha-empty-workspace-devworkspace-happy-path-che-code.json +0 -14
  293. package/mocha-factory-che-code.json +0 -13
  294. package/mocha-factory-theia.json +0 -14
  295. package/mocha-git-publish-branch-theia.json +0 -14
  296. package/mocha-git-self-sign-cert-theia.json +0 -14
  297. package/mocha-git-ssh-theia.json +0 -14
  298. package/mocha-happy-path-che-code.json +0 -14
  299. package/mocha-happy-path-theia.json +0 -15
  300. package/mocha-java-maven.json +0 -13
  301. package/mocha-java-springboot-che-code.json +0 -12
  302. package/mocha-java-springboot-theia.json +0 -13
  303. package/mocha-java-vertx-che-code.json +0 -12
  304. package/mocha-java-vertx-theia.json +0 -13
  305. package/mocha-load-theia.json +0 -12
  306. package/mocha-scala.json +0 -13
  307. package/mocha-single-devfile.json +0 -11
  308. package/mocha-theia.json +0 -12
  309. package/mocha-ws-creation-and-ls-theia.json +0 -12
  310. package/mocha.intelij.json +0 -13
  311. package/mocha.ocp.link.json +0 -11
  312. package/mocha.single.plugin.json +0 -8
  313. package/pageobjects/ide/theia/ContextMenu.ts +0 -55
  314. package/pageobjects/ide/theia/DebugView.ts +0 -88
  315. package/pageobjects/ide/theia/DialogWindow.ts +0 -101
  316. package/pageobjects/ide/theia/Editor.ts +0 -601
  317. package/pageobjects/ide/theia/Ide.ts +0 -393
  318. package/pageobjects/ide/theia/LeftToolBar.ts +0 -81
  319. package/pageobjects/ide/theia/NavigationBar.ts +0 -41
  320. package/pageobjects/ide/theia/NotificationCenter.ts +0 -75
  321. package/pageobjects/ide/theia/OpenDialogWidget.ts +0 -92
  322. package/pageobjects/ide/theia/OpenEditors.ts +0 -63
  323. package/pageobjects/ide/theia/OpenWorkspaceWidget.ts +0 -48
  324. package/pageobjects/ide/theia/PreviewWidget.ts +0 -142
  325. package/pageobjects/ide/theia/ProjectTree.ts +0 -338
  326. package/pageobjects/ide/theia/QuickOpenContainer.ts +0 -59
  327. package/pageobjects/ide/theia/RightToolBar.ts +0 -34
  328. package/pageobjects/ide/theia/Terminal.ts +0 -219
  329. package/pageobjects/ide/theia/TopMenu.ts +0 -103
  330. package/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.ts +0 -130
  331. package/pageobjects/ide/theia/plugins/GitPlugin.ts +0 -118
  332. package/pageobjects/ide/theia/plugins/KubernetesPlugin.ts +0 -113
  333. package/pageobjects/ide/theia/plugins/OpenshiftPlugin.ts +0 -87
  334. package/pageobjects/ide/theia/plugins/PluginsView.ts +0 -191
  335. package/tests/MochaHooks.ts +0 -57
  336. package/tests/devfiles/theia/CSlashCPlusPlus.spec.ts +0 -78
  337. package/tests/devfiles/theia/DevfileSmoke.spec.ts +0 -50
  338. package/tests/devfiles/theia/DotNetCore.spec.ts +0 -87
  339. package/tests/devfiles/theia/Go.spec.ts +0 -81
  340. package/tests/devfiles/theia/JavaMaven.spec.ts +0 -64
  341. package/tests/devfiles/theia/JavaSpringBoot.spec.ts +0 -71
  342. package/tests/devfiles/theia/JavaVertx.spec.ts +0 -65
  343. package/tests/devfiles/theia/NodeJS.spec.ts +0 -71
  344. package/tests/devfiles/theia/PHPSimple.spec.ts +0 -80
  345. package/tests/devfiles/theia/Python.spec.ts +0 -64
  346. package/tests/devfiles/theia/PythonDjango.spec.ts +0 -67
  347. package/tests/devfiles/theia/Quarkus.spec.ts +0 -76
  348. package/tests/devfiles/theia/Scala.spec.ts +0 -70
  349. package/tests/e2e/theia/FactoryUrl.spec.ts +0 -47
  350. package/tests/e2e/theia/GitPublishBranch.spec.ts +0 -109
  351. package/tests/e2e/theia/GitSelfSignCert.spec.ts +0 -110
  352. package/tests/e2e/theia/GitSsh.spec.ts +0 -144
  353. package/tests/e2e/theia/OpenshiftConnector.spec.ts +0 -144
  354. package/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +0 -60
  355. package/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +0 -57
  356. package/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +0 -57
  357. package/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts +0 -294
  358. package/tests/e2e_happy_path/theia/HappyPath.spec.ts +0 -348
  359. package/tests/intelij/IntelijOpenWorkspace.spec.ts +0 -47
  360. package/tests/load_test/theia/LoadTest.spec.ts +0 -55
  361. package/tests/login/Login.spec.ts +0 -31
  362. package/tests/plugins/theia/GitHubPullRequestPlugin.spec.ts +0 -147
  363. package/tests/plugins/theia/InstallPluginUsingUI.spec.ts +0 -77
  364. package/tests/plugins/theia/JavaPlugin.spec.ts +0 -100
  365. package/tests/plugins/theia/PhpPlugin.spec.ts +0 -115
  366. package/tests/plugins/theia/PythonPlugin.spec.ts +0 -86
  367. package/tests/plugins/theia/TypescriptPlugin.spec.ts +0 -168
  368. package/tests/plugins/theia/VscodeKubernetesPlugin.spec.ts +0 -83
  369. package/tests/plugins/theia/VscodeShellcheckPlugin.spec.ts +0 -100
  370. package/tests/plugins/theia/VscodeValePlugin.spec.ts +0 -85
  371. package/tests/plugins/theia/VscodeXmlPlugin.spec.ts +0 -104
  372. package/tests/plugins/theia/VscodeYamlPlugin.spec.ts +0 -99
  373. package/testsLibrary/theia/CodeExecutionTestsTheia.ts +0 -220
  374. package/testsLibrary/theia/LanguageServerTestsTheia.ts +0 -205
  375. package/testsLibrary/theia/ProjectAndFileTestsTheia.ts +0 -113
  376. package/utils/AnimationChecker.ts +0 -27
  377. package/utils/theia/PreferencesHandlerTheia.ts +0 -123
  378. /package/{initDefaultValues.sh → configs/sh-scripts/initDefaultValues.sh} +0 -0
  379. /package/dist/utils/{VCS → vsc}/github/GitHubUtil.js +0 -0
  380. /package/utils/{VCS → vsc}/github/GitHubUtil.ts +0 -0
@@ -1,393 +0,0 @@
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 axios from 'axios';
12
- import { DriverHelper } from '../../../utils/DriverHelper';
13
- import { injectable, inject } from 'inversify';
14
- import { CLASSES } from '../../../inversify.types';
15
- import { TestConstants } from '../../../TestConstants';
16
- import { By, error } from 'selenium-webdriver';
17
- import { Logger } from '../../../utils/Logger';
18
- import { NotificationCenter } from './NotificationCenter';
19
- import { TimeoutConstants } from '../../../TimeoutConstants';
20
-
21
- export enum LeftToolbarButton {
22
- Explorer = 'Explorer',
23
- Git = 'Git',
24
- Debug = 'Debug',
25
- Openshift = 'OpenShift'
26
- }
27
-
28
- @injectable()
29
- export class Ide {
30
- public static readonly EXPLORER_BUTTON_ID: string = 'shell-tab-explorer-view-container';
31
- public static readonly SELECTED_EXPLORER_BUTTON_CSS: string = 'li#shell-tab-explorer-view-container.theia-mod-active';
32
- public static readonly THEIA_EDITOR_CSS: string = '#theia-main-content-panel';
33
- public static readonly SELECTED_GIT_BUTTON_XPATH: string = '(//ul[@class=\'p-TabBar-content\']//li[@title=\'Git\' and contains(@class, \'p-mod-current\')])[1]';
34
- private static readonly TOP_MENU_PANEL_CSS: string = '#theia-app-shell #theia-top-panel .p-MenuBar-content';
35
- private static readonly LEFT_CONTENT_PANEL_CSS: string = '#theia-left-content-panel';
36
- private static readonly PRELOADER_CSS: string = '.theia-preload';
37
- private static readonly IDE_IFRAME_CSS: string = 'iframe#ide-iframe';
38
-
39
- constructor(
40
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper,
41
- @inject(CLASSES.NotificationCenter) private readonly notificationCenter: NotificationCenter
42
- ) { }
43
-
44
- /**
45
- * @deprecated Method deprecated. Iframe is not available, Replace it with waitForEditor() or waitIde() method incase for conditional wait
46
- * @see Ide.waitForEditor()
47
- */
48
- async waitAndSwitchToIdeFrame(timeout: number = TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
49
- Logger.debug('Ide.waitAndSwitchToIdeFrame');
50
- try {
51
- await this.driverHelper.waitAndSwitchToFrame(By.css(Ide.IDE_IFRAME_CSS), timeout);
52
- } catch (err) {
53
- if (err instanceof error.StaleElementReferenceError) {
54
- Logger.warn('StaleElementException occurred during waiting for IDE. Sleeping for 2 secs and retrying.');
55
- await this.driverHelper.wait(2000);
56
- try {
57
- await this.driverHelper.waitAndSwitchToFrame(By.css(Ide.IDE_IFRAME_CSS), timeout);
58
- } catch (err) {
59
- if (err instanceof error.TimeoutError) {
60
- Logger.warn(`Iframe is not available even after ${timeout} milliseconds, checking for visibility of #theia-main-content-panel.`);
61
- await this.driverHelper.isVisible(By.css('#theia-main-content-panel'));
62
- return;
63
- }
64
- throw err;
65
- }
66
- return;
67
- }
68
-
69
- if (err instanceof error.TimeoutError) {
70
- Logger.warn(`Iframe is not available even after ${timeout} milliseconds, checking for visibility of #theia-main-content-panel.`);
71
- await this.driverHelper.isVisible(By.css('#theia-main-content-panel'));
72
- }
73
-
74
- Logger.error(`Switching to IDE frame failed.`);
75
- throw err;
76
- }
77
- }
78
-
79
- async waitForEditor(timeout: number = TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
80
- Logger.debug('Ide.waitForEditor');
81
- try {
82
- await this.driverHelper.waitVisibility(By.css(Ide.THEIA_EDITOR_CSS), timeout);
83
- } catch (err) {
84
- Logger.warn(`Editor is not displayed even after ${timeout} milliseconds.`);
85
- throw err;
86
- }
87
- }
88
-
89
- async waitNotification(notificationText: string, timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
90
- Logger.debug(`Ide.waitNotification "${notificationText}"`);
91
-
92
- const notificationLocator: By = By.xpath(this.getNotificationXpathLocator(notificationText));
93
- await this.driverHelper.waitVisibility(notificationLocator, timeout);
94
- }
95
-
96
- async waitTaskExitCodeNotificationBoolean(exitCode: string, timeout: number = TimeoutConstants.TS_SELENIUM_WAIT_TASK_EXIT_CODE_TIMEOUT): Promise<boolean> {
97
- Logger.debug(`Ide.waitTaskExitCodeNotification "has exited with code ${exitCode}."`);
98
-
99
- const exitCodeNotificationLocator: By = By.xpath(this.getNotificationXpathLocator(`has exited with code`));
100
- const notificationLocator: By = By.xpath(this.getNotificationXpathLocator(`has exited with code ${exitCode}.`));
101
-
102
- Logger.info(`Ide.waitTaskExitCodeNotification waiting for any exit code notification.`);
103
- try {
104
- await this.driverHelper.waitVisibility(exitCodeNotificationLocator, timeout);
105
- } catch (err) {
106
- if (err instanceof error.TimeoutError) {
107
- Logger.error(`Ide.waitTaskExitCodeNotificationBoolean wait for notification timed out after ${timeout}.`);
108
- throw err;
109
- }
110
- Logger.error(`Waiting for task notification failed.`);
111
- throw err;
112
- }
113
- Logger.info(`Ide.waitTaskExitCodeNotification checking for correct exit core:${exitCode}`);
114
- return await this.driverHelper.waitVisibilityBoolean(notificationLocator, 1, 1000);
115
- }
116
-
117
- async waitNotificationAndClickOnButton(notificationText: string,
118
- buttonText: string,
119
- timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
120
-
121
- Logger.debug(`Ide.waitNotificationAndClickOnButton "${notificationText}" buttonText: "${buttonText}"`);
122
-
123
- await this.driverHelper.getDriver().wait(async () => {
124
- await this.waitNotification(notificationText, timeout);
125
- await this.clickOnNotificationButton(notificationText, buttonText);
126
-
127
- try {
128
- await this.waitNotificationDisappearance(notificationText);
129
- return true;
130
- } catch (err) {
131
- if (!(err instanceof error.TimeoutError)) {
132
- throw err;
133
- }
134
-
135
- console.log(`After clicking on "${buttonText}" button of the notification with text "${notificationText}" \n` +
136
- 'it is still visible (issue #14121), try again.');
137
-
138
- await this.driverHelper.wait(TestConstants.TS_SELENIUM_DEFAULT_POLLING);
139
- }
140
- }, timeout);
141
- }
142
-
143
- async waitNotificationAndConfirm(notificationText: string, timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
144
- Logger.debug(`Ide.waitNotificationAndConfirm "${notificationText}"`);
145
-
146
- await this.waitNotificationAndClickOnButton(notificationText, 'yes', timeout);
147
- }
148
-
149
- async waitNotificationAndOpenLink(notificationText: string, timeout: number) {
150
- Logger.debug(`Ide.waitNotificationAndOpenLink "${notificationText}"`);
151
- await this.waitNotification(notificationText, timeout);
152
- await this.waitNotificationAndClickOnButton(notificationText, 'Open Link', timeout);
153
- }
154
-
155
- async isNotificationPresent(notificationText: string): Promise<boolean> {
156
- Logger.debug(`Ide.isNotificationPresent "${notificationText}"`);
157
-
158
- const notificationLocator: By = By.xpath(this.getNotificationXpathLocator(notificationText));
159
- return await this.driverHelper.waitVisibilityBoolean(notificationLocator);
160
- }
161
-
162
- async waitNotificationDisappearance(notificationText: string,
163
- attempts: number = TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS,
164
- polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
165
-
166
- Logger.debug(`Ide.waitNotificationDisappearance "${notificationText}"`);
167
-
168
- const notificationLocator: By = By.xpath(this.getNotificationXpathLocator(notificationText));
169
- await this.driverHelper.waitDisappearance(notificationLocator, attempts, polling);
170
- }
171
-
172
- async clickOnNotificationButton(notificationText: string, buttonText: string) {
173
- Logger.debug(`Ide.clickOnNotificationButton "${notificationText}" buttonText: "${buttonText}"`);
174
-
175
- const yesButtonLocator: string = `//div[@class='theia-notification-list']//span[contains(.,'${notificationText}')]/parent::div/parent::div/parent::div/div[@class='theia-notification-list-item-content-bottom']//div[@class='theia-notification-buttons']//button[text()='${buttonText}'] `;
176
- await this.driverHelper.waitAndClick(By.xpath(yesButtonLocator));
177
- }
178
-
179
- async waitWorkspaceAndIde(timeout: number = TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
180
-
181
- Logger.debug('Ide.waitWorkspaceAndIde');
182
-
183
- await this.waitForEditor(timeout);
184
- await this.waitIde(timeout);
185
- }
186
-
187
- async waitIde(timeout: number = TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
188
- Logger.debug('Ide.waitIde');
189
-
190
- const mainIdeParts: Array<By> = [By.css(Ide.TOP_MENU_PANEL_CSS), By.css(Ide.LEFT_CONTENT_PANEL_CSS), By.id(Ide.EXPLORER_BUTTON_ID)];
191
-
192
- for (const idePartLocator of mainIdeParts) {
193
- try {
194
- await this.driverHelper.waitVisibility(idePartLocator, timeout);
195
- } catch (err) {
196
- if (err instanceof error.NoSuchWindowError) {
197
- await this.driverHelper.waitVisibility(idePartLocator, timeout);
198
- return;
199
- }
200
-
201
- if (err instanceof error.TimeoutError) {
202
- Logger.error(`Waiting for ${idePartLocator} timeouted after ${timeout} timeout.`);
203
- throw err;
204
- }
205
-
206
- Logger.error(`Waiting for ${idePartLocator} failed.`);
207
- throw err;
208
- }
209
- }
210
- }
211
-
212
- async waitLeftToolbarButton(buttonTitle: LeftToolbarButton, timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
213
- Logger.debug('Ide.waitLeftToolbarButton');
214
-
215
- const buttonLocator: By = this.getLeftToolbarButtonLocator(buttonTitle);
216
- await this.driverHelper.waitVisibility(buttonLocator, timeout);
217
- }
218
-
219
- async waitAndClickLeftToolbarButton(buttonTitle: LeftToolbarButton, timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
220
- Logger.debug('Ide.waitAndClickLeftToolbarButton');
221
-
222
- const buttonLocator: By = this.getLeftToolbarButtonLocator(buttonTitle);
223
- await this.driverHelper.waitAndClick(buttonLocator, timeout);
224
- }
225
-
226
- async waitTopMenuPanel(timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
227
- Logger.debug('Ide.waitTopMenuPanel');
228
-
229
- await this.driverHelper.waitVisibility(By.css(Ide.TOP_MENU_PANEL_CSS), timeout);
230
- }
231
-
232
- async waitLeftContentPanel(timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
233
- Logger.debug('Ide.waitLeftContentPanel');
234
-
235
- await this.driverHelper.waitVisibility(By.css(Ide.LEFT_CONTENT_PANEL_CSS), timeout);
236
- }
237
-
238
- async waitPreloaderAbsent(timeout: number = TimeoutConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT) {
239
- const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING;
240
- const attempts: number = timeout / polling;
241
- Logger.debug('Ide.waitPreloaderAbsent');
242
-
243
- await this.driverHelper.waitDisappearance(By.css(Ide.PRELOADER_CSS), attempts, polling);
244
- }
245
-
246
- async waitPreloaderVisible(timeout: number = TimeoutConstants.TS_SELENIUM_START_WORKSPACE_TIMEOUT) {
247
- Logger.debug('Ide.waitPreloaderVisible');
248
-
249
- await this.driverHelper.waitVisibility(By.css(Ide.PRELOADER_CSS), timeout);
250
- }
251
-
252
- async waitStatusBarContains(expectedText: string, timeout: number = TimeoutConstants.TS_SELENIUM_LANGUAGE_SERVER_START_TIMEOUT) {
253
- const statusBarLocator: By = By.css('div[id=\'theia-statusBar\']');
254
-
255
- Logger.debug(`Ide.waitStatusBarContains "${expectedText}"`);
256
-
257
- await this.driverHelper.getDriver().wait(async () => {
258
- const elementText: string = await this.driverHelper.waitAndGetText(statusBarLocator, timeout);
259
- const isTextPresent: boolean = elementText.search(expectedText) > 0;
260
-
261
- if (isTextPresent) {
262
- return true;
263
- }
264
-
265
- await this.driverHelper.wait(TestConstants.TS_SELENIUM_DEFAULT_POLLING * 2);
266
-
267
- }, timeout);
268
- }
269
-
270
- async waitStatusBarTextAbsence(expectedText: string, timeout: number = TimeoutConstants.TS_SELENIUM_LANGUAGE_SERVER_START_TIMEOUT) {
271
- const statusBarLocator: By = By.css('div[id=\'theia-statusBar\']');
272
-
273
- Logger.debug(`Ide.waitStatusBarTextAbsence "${expectedText}"`);
274
-
275
- // for ensuring that check is not invoked in the gap of status displaying
276
- for (let i: number = 0; i < 3; i++) {
277
- await this.driverHelper.getDriver().wait(async () => {
278
- const elementText: string = await this.driverHelper.waitAndGetText(statusBarLocator, timeout);
279
-
280
- const isTextAbsent: boolean = elementText.search(expectedText) === -1;
281
-
282
- if (isTextAbsent) {
283
- return true;
284
- }
285
-
286
- await this.driverHelper.wait(TestConstants.TS_SELENIUM_DEFAULT_POLLING * 2);
287
-
288
- }, timeout);
289
- }
290
- }
291
-
292
- async checkLsInitializationStart(expectedTextInStatusBar: string) {
293
- Logger.debug('Ide.checkLsInitializationStart');
294
-
295
- await this.waitStatusBarContains(expectedTextInStatusBar, 20000);
296
- }
297
-
298
- async performKeyCombination(keyCombination: string, timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
299
- Logger.debug(`Ide.performKeyCombination "${keyCombination}"`);
300
-
301
- const bodyLocator: By = By.tagName('body');
302
- await this.driverHelper.type(bodyLocator, keyCombination, timeout);
303
- }
304
-
305
- async waitRightToolbarButtonSelection(buttonTitle: string, timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
306
- Logger.debug('Ide.waitRightToolbarButtonSelection');
307
-
308
- const selectedRightToolbarButtonLocator: By = this.getSelectedRightToolbarButtonLocator(buttonTitle);
309
- await this.driverHelper.waitVisibility(selectedRightToolbarButtonLocator, timeout);
310
- }
311
-
312
- async getApplicationUrlFromNotification(notificationText: string, timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
313
- Logger.debug(`Ide.getApplicationUrlFromNotification ${notificationText}`);
314
-
315
- const notificationTextLocator: By = By.xpath(`//div[@class='theia-notification-message']/span[contains(.,'${notificationText}')]`);
316
- let notification = await this.driverHelper.waitAndGetText(notificationTextLocator, timeout);
317
- let regexp: RegExp = new RegExp('^.*(https?://.*)$');
318
-
319
- if (!regexp.test(notification)) {
320
- throw new Error('Cannot obtaine url from notification message');
321
- }
322
-
323
- return notification.split(regexp)[1];
324
- }
325
-
326
- async closeAllNotifications(timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
327
- Logger.debug(`Ide.closeAllNotifications`);
328
-
329
- for (let i: number = 0; i < 5; i++) {
330
- await this.notificationCenter.open();
331
- try {
332
- await this.notificationCenter.closeAll(timeout);
333
- break;
334
- } catch (err) {
335
- if (!(err instanceof error.TimeoutError)) {
336
- throw err;
337
- }
338
-
339
- if (i === 4) {
340
- Logger.debug('The last try to clear of the notification center was unsuccessful');
341
-
342
- throw err;
343
- }
344
- }
345
- }
346
- }
347
-
348
- async waitApllicationIsReady(url: string,
349
- timeout: number) {
350
-
351
- Logger.debug(`Ide.waitApllicationIsReady ${url}`);
352
-
353
- await this.driverHelper.getDriver().wait(async () => {
354
- try {
355
- const res = await axios.get(url);
356
- if (res.status === 200) {
357
- return true;
358
- }
359
- } catch (error) {
360
- await this.driverHelper.wait(TestConstants.TS_SELENIUM_DEFAULT_POLLING);
361
- }
362
-
363
- }, timeout);
364
- }
365
-
366
- async waitAndApplyTrustNotification() {
367
- Logger.debug(`Ide.waitAndApplyTrustNotification`);
368
-
369
- await this.waitNotificationAndClickOnButton('Do you trust the authors of', 'Yes, I trust', 60_000);
370
- }
371
-
372
- async clickOnCancelDialogButton() {
373
- Logger.debug('Ide.closeRestartYourWorkspaceDialog');
374
-
375
- const cancelButtonLocator: string = `//div[@class='dialogBlock']//button[text()='Cancel']`;
376
- await this.driverHelper.waitAndClick(By.xpath(cancelButtonLocator));
377
- }
378
-
379
- private getSelectedRightToolbarButtonLocator(buttonTitle: string): By {
380
- return By.xpath(`//div[@id='theia-left-content-panel']//ul[@class='p-TabBar-content']` +
381
- `//li[@title[contains(.,'${buttonTitle}')] and contains(@id, 'shell-tab')] and contains(@class, 'p-mod-current')`);
382
- }
383
-
384
- private getLeftToolbarButtonLocator(buttonTitle: String): By {
385
- return By.xpath(`//div[@id='theia-left-content-panel']//ul[@class='p-TabBar-content']` +
386
- `//li[@title[contains(.,'${buttonTitle}')] and contains(@id, 'shell-tab')]`);
387
- }
388
-
389
- private getNotificationXpathLocator(notificationText: string): string {
390
- return `//div[@class='theia-notification-message']/span[contains(.,'${notificationText}')]`;
391
- }
392
-
393
- }
@@ -1,81 +0,0 @@
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 { injectable, inject } from 'inversify';
12
- import { CLASSES } from '../../../inversify.types';
13
- import { DriverHelper } from '../../../utils/DriverHelper';
14
- import { By } from 'selenium-webdriver';
15
- import { Logger } from '../../../utils/Logger';
16
- import { TimeoutConstants } from '../../../TimeoutConstants';
17
-
18
- @injectable()
19
- export class LeftToolBar {
20
- constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
21
-
22
- async waitToolbar(timeout: number = TimeoutConstants.TS_SELENIUM_TOOLBAR_TIMEOUT) {
23
- Logger.debug('LeftToolBar.waitToolbar');
24
-
25
- await this.driverHelper.waitVisibility(By.css('div.theia-app-left'), timeout);
26
- }
27
-
28
- async clickOnToolIcon(iconTitle: string, timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
29
- Logger.debug(`LeftToolBar.clickOnToolIcon "${iconTitle}"`);
30
-
31
- const toolIconLocator: By = this.getViewLocator(iconTitle);
32
-
33
- await this.driverHelper.waitAndClick(toolIconLocator, timeout);
34
- }
35
-
36
- async waitToolIcon(iconTitle: string, timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
37
- Logger.debug(`LeftToolBar.waitToolIcon "${iconTitle}"`);
38
-
39
- const toolIconLocator: By = this.getViewLocator(iconTitle);
40
-
41
- await this.driverHelper.waitVisibility(toolIconLocator, timeout);
42
- }
43
-
44
- async isViewSelected(toolIconTitle: string): Promise<Boolean> {
45
- Logger.debug(`LeftToolBar.isViewEnabled "${toolIconTitle}"`);
46
-
47
- const selectedViewLocator: By = this.getSelectedViewLocator(toolIconTitle);
48
-
49
- return await this.driverHelper.isVisible(selectedViewLocator);
50
- }
51
-
52
- async waitViewSelected(toolIconTitle: string, timeout: number = TimeoutConstants.TS_PROJECT_TREE_TIMEOUT) {
53
- Logger.debug(`LeftToolBar.waitViewSelected "${toolIconTitle}"`);
54
-
55
- const selectedViewLocator: By = this.getSelectedViewLocator(toolIconTitle);
56
-
57
- return await this.driverHelper.waitVisibility(selectedViewLocator);
58
- }
59
-
60
- async selectView(toolIconTitle: string, timeout: number = TimeoutConstants.TS_PROJECT_TREE_TIMEOUT) {
61
- Logger.debug(`LeftToolBar.selectView "${toolIconTitle}"`);
62
-
63
- await this.waitToolIcon(toolIconTitle, timeout);
64
-
65
- if ( await this.isViewSelected(toolIconTitle)) {
66
- return;
67
- }
68
-
69
- await this.clickOnToolIcon(toolIconTitle, timeout);
70
- await this.waitViewSelected(toolIconTitle, timeout);
71
- }
72
-
73
- private getSelectedViewLocator(viewTitle: string): By {
74
- return By.css(`div.theia-app-left .p-TabBar-content li.p-mod-current[title='${viewTitle}']`);
75
- }
76
-
77
- private getViewLocator(viewTitle: string): By {
78
- return By.css(`div.theia-app-left .p-TabBar-content li[title='${viewTitle}']`);
79
- }
80
-
81
- }
@@ -1,41 +0,0 @@
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
- import { injectable, inject } from 'inversify';
11
- import { DriverHelper } from '../../../utils/DriverHelper';
12
- import { CLASSES } from '../../../inversify.types';
13
- import { Logger } from '../../../utils/Logger';
14
- import { By } from 'selenium-webdriver';
15
-
16
- @injectable()
17
- export class NavigationBar {
18
- constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
19
-
20
- async clickOnShowNavigationBar() {
21
- Logger.debug('CodereadyNavigationBar.clickOnShowNavigationBar');
22
-
23
- const showNavBarButton: By = By.css(`[title='Show navigation bar']`);
24
- await this.driverHelper.waitAndClick(showNavBarButton);
25
- }
26
-
27
- async waitNavigationBar() {
28
- Logger.debug('CodereadyNavigationBar.waitCodereadyNavigationBar');
29
-
30
- const navigationBar: By = By.id('page-sidebar');
31
- await this.driverHelper.getDriver().switchTo().defaultContent();
32
- await this.driverHelper.waitVisibility(navigationBar);
33
- }
34
-
35
- async openNavigationBar() {
36
- Logger.debug('CodereadyNavigationBar.openNavigationBar');
37
-
38
- await this.clickOnShowNavigationBar();
39
- await this.waitNavigationBar();
40
- }
41
- }
@@ -1,75 +0,0 @@
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 { injectable, inject } from 'inversify';
12
- import { CLASSES } from '../../../inversify.types';
13
- import { DriverHelper } from '../../../utils/DriverHelper';
14
- import { Logger } from '../../../utils/Logger';
15
- import { By } from 'selenium-webdriver';
16
- import { TimeoutConstants } from '../../../TimeoutConstants';
17
-
18
- @injectable()
19
- export class NotificationCenter {
20
- constructor(@inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { }
21
-
22
- async waitOpening(timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
23
- Logger.debug('NotificationCenter.waitOpening');
24
-
25
- await this.driverHelper.waitVisibility(By.css('div.theia-notification-center-header'), timeout);
26
- }
27
-
28
- async clickIconOnStatusBar(timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
29
- Logger.debug('NotificationCenter.clickIconOnStatusBar');
30
-
31
- const statusBarNotificationsLocator: By =
32
- By.xpath('(//div[@id=\'theia-statusBar\']//div[@class=\'area right\']//div[@title=\'Toggle Bottom Panel\']/preceding-sibling::div)[last()]');
33
-
34
- await this.driverHelper.waitAndClick(statusBarNotificationsLocator, timeout);
35
- }
36
-
37
- async open() {
38
- Logger.debug(`NotificationCenter.open`);
39
-
40
- await this.clickIconOnStatusBar(TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM);
41
- await this.waitOpening(TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT);
42
- }
43
-
44
- async clickCloseAllNotificationsButton(timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
45
- Logger.debug(`NotificationCenter.clickCloseAllNotificationsButton`);
46
-
47
- const closeAllButtonLocator: By = By.css('li.codicon.codicon-clear-all.action-item[title="Clear All"]');
48
-
49
- await this.driverHelper.waitAndClick(closeAllButtonLocator, timeout);
50
- }
51
-
52
- async waitClosing(timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
53
- Logger.debug(`NotificationCenter.waitClosing`);
54
-
55
- const notificationCenterClosedLocator: By = By.css('.theia-notification-center.closed');
56
-
57
- await this.driverHelper.waitPresence(notificationCenterClosedLocator, timeout);
58
- }
59
-
60
- async waitClearNotificationsList(timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
61
- Logger.debug(`NotificationCenter.waitClearNotificationsList`);
62
-
63
- const notificationLocator: By = By.css('.theia-notification-center .theia-notification-list > *');
64
-
65
- await this.driverHelper.waitDisappearance(notificationLocator, timeout);
66
- }
67
-
68
- async closeAll(timeout: number = TimeoutConstants.TS_NOTIFICATION_CENTER_TIMEOUT) {
69
- Logger.debug('NotificationCenter.closeAll');
70
-
71
- await this.clickCloseAllNotificationsButton(timeout);
72
- await this.waitClearNotificationsList(timeout);
73
- }
74
-
75
- }
@@ -1,92 +0,0 @@
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 { injectable, inject } from 'inversify';
12
- import { CLASSES } from '../../../inversify.types';
13
- import { DriverHelper } from '../../../utils/DriverHelper';
14
- import { Logger } from '../../../utils/Logger';
15
- import { DialogWindow } from '../../ide/theia/DialogWindow';
16
- import { OpenWorkspaceWidget } from '../../ide/theia/OpenWorkspaceWidget';
17
- import { By } from 'selenium-webdriver';
18
- import { TimeoutConstants } from '../../../TimeoutConstants';
19
-
20
- export enum Locations {
21
- Theia = 'theia',
22
- Home = 'home',
23
- Root = '/'
24
- }
25
-
26
- export enum Buttons {
27
- Cancel = 'Cancel',
28
- AddContext = 'Add context folder for component in workspace.',
29
- Open = 'Open'
30
- }
31
-
32
- @injectable()
33
- export class OpenDialogWidget {
34
-
35
- constructor(
36
- @inject(CLASSES.DialogWindow) private readonly dialogWindow: DialogWindow,
37
- @inject(CLASSES.OpenWorkspaceWidget) private readonly openWorkspaceWidget: OpenWorkspaceWidget,
38
- @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper
39
- ) { }
40
-
41
- async selectLocation(location: Locations, timeout: number = TimeoutConstants.TS_SELENIUM_DIALOG_WIDGET_TIMEOUT) {
42
- Logger.debug(`OpenDialogWidget.selectLocation`);
43
- await this.driverHelper.type(By.css('div.theia-NavigationPanel select'), location, timeout);
44
- }
45
-
46
- async selectItemInTree(pathToItem: string) {
47
- Logger.debug(`OpenDialogWidget.selectItemInTree "${pathToItem}"`);
48
- await this.openWorkspaceWidget.selectItemInTree(pathToItem);
49
- }
50
-
51
- async waitItemInTreeSelected(pathToItem: string, timeout: number = TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
52
- Logger.debug(`OpenDialogWidget.waitItemInTreeSelected ${pathToItem}`);
53
-
54
- const itemLocator: By = By.xpath(`//div[contains(@class, 'theia-mod-selected')]//div[@id='${pathToItem}']`);
55
- await this.driverHelper.waitVisibility(itemLocator, timeout);
56
- }
57
-
58
-
59
- async expandItemInTreeToPath(pathToItem: string, timeout: number = TimeoutConstants.TS_SELENIUM_DIALOG_WIDGET_TIMEOUT) {
60
- Logger.debug(`OpenDialogWidget.expandItemInTreeToPath "${pathToItem}"`);
61
- await this.openWorkspaceWidget.expandTreeToPath(pathToItem, timeout);
62
- }
63
-
64
- async clickOnButton(button: Buttons) {
65
- Logger.debug(`OpenDialogWidget.clickOnButton ${button}`);
66
- await this.dialogWindow.clickToButton(button);
67
- }
68
-
69
- async selectLocationAndAddContextFolder(location: Locations, path: string, button: Buttons) {
70
- Logger.debug(`OpenDialogWidget.selectLocationAndAddContextFolder`);
71
-
72
- await this.selectLocation(location);
73
- await this.expandItemInTreeToPath(path);
74
- await this.clickOnButton(button);
75
- await this.dialogWindow.waitDialogDissappearance();
76
- }
77
-
78
- async expandPathAndSelectFile(path: string, fileName: string, button: Buttons) {
79
- Logger.debug(`OpenDialogWidget.expandPathAndSelectFile`);
80
-
81
- const filePath: string = `/${path}/${fileName}`;
82
-
83
- await this.expandItemInTreeToPath(path);
84
- await this.clickOnButton(button);
85
-
86
- await this.selectItemInTree(filePath);
87
- await this.waitItemInTreeSelected(filePath);
88
- await this.clickOnButton(button);
89
- await this.dialogWindow.waitDialogDissappearance();
90
- }
91
-
92
- }