chemlab 0.0.1 → 0.1.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 (547) hide show
  1. checksums.yaml +4 -4
  2. data/lib/chemlab.rb +35 -0
  3. data/lib/chemlab/api_fabricator.rb +134 -0
  4. data/lib/chemlab/attributable.rb +25 -0
  5. data/lib/chemlab/component.rb +87 -0
  6. data/lib/chemlab/configuration.rb +39 -0
  7. data/lib/chemlab/element.rb +22 -0
  8. data/lib/chemlab/page.rb +13 -0
  9. data/lib/chemlab/resource.rb +169 -0
  10. data/lib/chemlab/runtime/api_client.rb +18 -0
  11. data/lib/chemlab/runtime/browser.rb +66 -0
  12. data/lib/chemlab/runtime/env.rb +22 -0
  13. data/{qa → lib/chemlab}/runtime/logger.rb +1 -1
  14. data/{qa → lib/chemlab}/support/api.rb +2 -2
  15. data/lib/chemlab/support/logging.rb +176 -0
  16. data/{qa → lib/chemlab}/support/repeater.rb +1 -1
  17. data/{qa → lib/chemlab}/support/waiter.rb +2 -2
  18. data/lib/chemlab/version.rb +1 -1
  19. metadata +56 -629
  20. data/.gitignore +0 -4
  21. data/.rspec +0 -3
  22. data/.rspec_parallel +0 -5
  23. data/Dockerfile +0 -68
  24. data/Gemfile +0 -23
  25. data/Gemfile.lock +0 -137
  26. data/README.md +0 -201
  27. data/Rakefile +0 -47
  28. data/bin/qa +0 -7
  29. data/bin/test +0 -3
  30. data/chemlab.gemspec +0 -43
  31. data/knapsack/master_report.json +0 -54
  32. data/qa.rb +0 -513
  33. data/qa/ce/strategy.rb +0 -21
  34. data/qa/ee.rb +0 -234
  35. data/qa/ee/fixtures/gpg/admin.asc +0 -0
  36. data/qa/ee/fixtures/secure_license_files/.gitlab-ci.yml +0 -12
  37. data/qa/ee/fixtures/secure_license_files/gl-license-management-report.json +0 -24
  38. data/qa/ee/fixtures/secure_premade_reports/.gitlab-ci.yml +0 -61
  39. data/qa/ee/fixtures/secure_premade_reports/gl-container-scanning-report.json +0 -105
  40. data/qa/ee/fixtures/secure_premade_reports/gl-dast-report.json +0 -1
  41. data/qa/ee/fixtures/secure_premade_reports/gl-dependency-scanning-report.json +0 -226
  42. data/qa/ee/fixtures/secure_premade_reports/gl-license-management-report.json +0 -42
  43. data/qa/ee/fixtures/secure_premade_reports/gl-sast-report.json +0 -152
  44. data/qa/ee/fixtures/secure_premade_reports/yarn.lock +0 -10024
  45. data/qa/ee/page/admin/geo/nodes/new.rb +0 -36
  46. data/qa/ee/page/admin/geo/nodes/show.rb +0 -23
  47. data/qa/ee/page/admin/license.rb +0 -41
  48. data/qa/ee/page/admin/menu.rb +0 -55
  49. data/qa/ee/page/admin/monitoring/audit_log.rb +0 -27
  50. data/qa/ee/page/admin/overview/groups/edit.rb +0 -27
  51. data/qa/ee/page/admin/settings/component/elasticsearch.rb +0 -38
  52. data/qa/ee/page/admin/settings/component/email.rb +0 -35
  53. data/qa/ee/page/admin/settings/integration.rb +0 -25
  54. data/qa/ee/page/admin/settings/preferences.rb +0 -25
  55. data/qa/ee/page/admin/settings/templates.rb +0 -40
  56. data/qa/ee/page/component/design_management.rb +0 -80
  57. data/qa/ee/page/component/issue_board/show.rb +0 -154
  58. data/qa/ee/page/component/license_management.rb +0 -62
  59. data/qa/ee/page/component/secure_report.rb +0 -38
  60. data/qa/ee/page/component/web_ide/web_terminal_panel.rb +0 -58
  61. data/qa/ee/page/dashboard/projects.rb +0 -54
  62. data/qa/ee/page/file/show.rb +0 -49
  63. data/qa/ee/page/group/contribution_analytics.rb +0 -29
  64. data/qa/ee/page/group/epic/index.rb +0 -46
  65. data/qa/ee/page/group/epic/show.rb +0 -74
  66. data/qa/ee/page/group/issues_analytics.rb +0 -33
  67. data/qa/ee/page/group/members.rb +0 -19
  68. data/qa/ee/page/group/menu.rb +0 -117
  69. data/qa/ee/page/group/roadmap.rb +0 -34
  70. data/qa/ee/page/group/saml_sso_sign_in.rb +0 -22
  71. data/qa/ee/page/group/saml_sso_sign_up.rb +0 -34
  72. data/qa/ee/page/group/secure/show.rb +0 -24
  73. data/qa/ee/page/group/settings/general.rb +0 -112
  74. data/qa/ee/page/group/settings/ldap_sync.rb +0 -38
  75. data/qa/ee/page/group/settings/saml_sso.rb +0 -93
  76. data/qa/ee/page/insights/show.rb +0 -51
  77. data/qa/ee/page/main/banner.rb +0 -19
  78. data/qa/ee/page/merge_request/new.rb +0 -74
  79. data/qa/ee/page/merge_request/show.rb +0 -326
  80. data/qa/ee/page/profile/menu.rb +0 -15
  81. data/qa/ee/page/project/issue/index.rb +0 -46
  82. data/qa/ee/page/project/issue/show.rb +0 -97
  83. data/qa/ee/page/project/menu.rb +0 -17
  84. data/qa/ee/page/project/milestone/show.rb +0 -41
  85. data/qa/ee/page/project/new.rb +0 -56
  86. data/qa/ee/page/project/operations/kubernetes/show.rb +0 -50
  87. data/qa/ee/page/project/operations/metrics/show.rb +0 -101
  88. data/qa/ee/page/project/packages/index.rb +0 -30
  89. data/qa/ee/page/project/packages/show.rb +0 -29
  90. data/qa/ee/page/project/path_locks/index.rb +0 -30
  91. data/qa/ee/page/project/pipeline/show.rb +0 -34
  92. data/qa/ee/page/project/secure/dependency_list.rb +0 -19
  93. data/qa/ee/page/project/secure/show.rb +0 -17
  94. data/qa/ee/page/project/settings/ci_cd.rb +0 -25
  95. data/qa/ee/page/project/settings/integrations.rb +0 -21
  96. data/qa/ee/page/project/settings/license_compliance.rb +0 -67
  97. data/qa/ee/page/project/settings/merge_request.rb +0 -27
  98. data/qa/ee/page/project/settings/mirroring_repositories.rb +0 -30
  99. data/qa/ee/page/project/settings/protected_branches.rb +0 -37
  100. data/qa/ee/page/project/settings/push_rules.rb +0 -82
  101. data/qa/ee/page/project/settings/repository.rb +0 -27
  102. data/qa/ee/page/project/settings/services/jenkins.rb +0 -56
  103. data/qa/ee/page/project/show.rb +0 -35
  104. data/qa/ee/page/project/sub_menus/packages.rb +0 -27
  105. data/qa/ee/page/project/sub_menus/project.rb +0 -21
  106. data/qa/ee/page/project/sub_menus/repository.rb +0 -29
  107. data/qa/ee/page/project/sub_menus/security_compliance.rb +0 -44
  108. data/qa/ee/page/project/sub_menus/settings.rb +0 -42
  109. data/qa/ee/page/project/wiki/show.rb +0 -31
  110. data/qa/ee/resource/board/base_board.rb +0 -26
  111. data/qa/ee/resource/board/board_list/group/board_list.rb +0 -57
  112. data/qa/ee/resource/board/board_list/project/assignee_board_list.rb +0 -23
  113. data/qa/ee/resource/board/board_list/project/base_board_list.rb +0 -50
  114. data/qa/ee/resource/board/board_list/project/label_board_list.rb +0 -28
  115. data/qa/ee/resource/board/board_list/project/milestone_board_list.rb +0 -28
  116. data/qa/ee/resource/board/group_board.rb +0 -25
  117. data/qa/ee/resource/board/project_board.rb +0 -25
  118. data/qa/ee/resource/epic.rb +0 -60
  119. data/qa/ee/resource/geo/node.rb +0 -31
  120. data/qa/ee/resource/group_label.rb +0 -50
  121. data/qa/ee/resource/license.rb +0 -21
  122. data/qa/ee/resource/project_milestone.rb +0 -20
  123. data/qa/ee/resource/settings/elasticsearch.rb +0 -60
  124. data/qa/ee/runtime/env.rb +0 -30
  125. data/qa/ee/runtime/geo.rb +0 -28
  126. data/qa/ee/runtime/saml.rb +0 -37
  127. data/qa/ee/scenario/test/geo.rb +0 -211
  128. data/qa/ee/scenario/test/integration/elasticsearch.rb +0 -15
  129. data/qa/ee/scenario/test/integration/group_saml.rb +0 -17
  130. data/qa/ee/scenario/test/sanity/selectors.rb +0 -17
  131. data/qa/ee/strategy.rb +0 -28
  132. data/qa/fixtures/auto_devops_rack/Dockerfile +0 -9
  133. data/qa/fixtures/auto_devops_rack/Gemfile +0 -3
  134. data/qa/fixtures/auto_devops_rack/Gemfile.lock +0 -15
  135. data/qa/fixtures/auto_devops_rack/Rakefile +0 -7
  136. data/qa/fixtures/auto_devops_rack/config.ru +0 -1
  137. data/qa/fixtures/ldap/admin/1_add_nodes.ldif +0 -7
  138. data/qa/fixtures/ldap/admin/2_add_users.ldif +0 -63
  139. data/qa/fixtures/ldap/admin/3_add_groups.ldif +0 -16
  140. data/qa/fixtures/ldap/non_admin/1_add_nodes.ldif +0 -7
  141. data/qa/fixtures/ldap/non_admin/2_add_users.ldif +0 -61
  142. data/qa/fixtures/ldap/non_admin/3_add_groups.ldif +0 -16
  143. data/qa/fixtures/monitored_auto_devops/.gitlab-ci.yml +0 -337
  144. data/qa/flow/login.rb +0 -39
  145. data/qa/flow/project.rb +0 -19
  146. data/qa/flow/saml.rb +0 -72
  147. data/qa/flow/user.rb +0 -26
  148. data/qa/git/location.rb +0 -34
  149. data/qa/git/repository.rb +0 -269
  150. data/qa/page/admin/menu.rb +0 -110
  151. data/qa/page/admin/new_session.rb +0 -22
  152. data/qa/page/admin/overview/groups/edit.rb +0 -23
  153. data/qa/page/admin/overview/groups/index.rb +0 -32
  154. data/qa/page/admin/overview/groups/show.rb +0 -21
  155. data/qa/page/admin/overview/users/index.rb +0 -35
  156. data/qa/page/admin/overview/users/show.rb +0 -31
  157. data/qa/page/admin/settings/component/account_and_limit.rb +0 -26
  158. data/qa/page/admin/settings/component/ip_limits.rb +0 -30
  159. data/qa/page/admin/settings/component/outbound_requests.rb +0 -33
  160. data/qa/page/admin/settings/component/performance_bar.rb +0 -27
  161. data/qa/page/admin/settings/component/repository_storage.rb +0 -26
  162. data/qa/page/admin/settings/general.rb +0 -23
  163. data/qa/page/admin/settings/metrics_and_profiling.rb +0 -23
  164. data/qa/page/admin/settings/network.rb +0 -30
  165. data/qa/page/admin/settings/repository.rb +0 -23
  166. data/qa/page/alert/auto_devops_alert.rb +0 -13
  167. data/qa/page/base.rb +0 -348
  168. data/qa/page/component/breadcrumbs.rb +0 -19
  169. data/qa/page/component/ci_badge_link.rb +0 -49
  170. data/qa/page/component/clone_panel.rb +0 -38
  171. data/qa/page/component/confirm_modal.rb +0 -25
  172. data/qa/page/component/dropdown_filter.rb +0 -16
  173. data/qa/page/component/dropzone.rb +0 -33
  174. data/qa/page/component/groups_filter.rb +0 -37
  175. data/qa/page/component/issuable/common.rb +0 -31
  176. data/qa/page/component/lazy_loader.rb +0 -15
  177. data/qa/page/component/legacy_clone_panel.rb +0 -47
  178. data/qa/page/component/note.rb +0 -84
  179. data/qa/page/component/select2.rb +0 -48
  180. data/qa/page/component/users_select.rb +0 -14
  181. data/qa/page/component/web_ide/alert.rb +0 -27
  182. data/qa/page/dashboard/groups.rb +0 -34
  183. data/qa/page/dashboard/projects.rb +0 -37
  184. data/qa/page/dashboard/snippet/index.rb +0 -21
  185. data/qa/page/dashboard/snippet/new.rb +0 -70
  186. data/qa/page/dashboard/snippet/show.rb +0 -63
  187. data/qa/page/dashboard/welcome.rb +0 -17
  188. data/qa/page/element.rb +0 -55
  189. data/qa/page/file/edit.rb +0 -13
  190. data/qa/page/file/form.rb +0 -49
  191. data/qa/page/file/shared/commit_button.rb +0 -25
  192. data/qa/page/file/shared/commit_message.rb +0 -21
  193. data/qa/page/file/shared/editor.rb +0 -33
  194. data/qa/page/file/show.rb +0 -36
  195. data/qa/page/group/menu.rb +0 -52
  196. data/qa/page/group/new.rb +0 -37
  197. data/qa/page/group/settings/general.rb +0 -115
  198. data/qa/page/group/show.rb +0 -74
  199. data/qa/page/group/sub_menus/common.rb +0 -27
  200. data/qa/page/group/sub_menus/members.rb +0 -45
  201. data/qa/page/issuable/sidebar.rb +0 -27
  202. data/qa/page/label/index.rb +0 -34
  203. data/qa/page/label/new.rb +0 -32
  204. data/qa/page/layout/banner.rb +0 -19
  205. data/qa/page/layout/performance_bar.rb +0 -41
  206. data/qa/page/main/login.rb +0 -181
  207. data/qa/page/main/menu.rb +0 -150
  208. data/qa/page/main/oauth.rb +0 -21
  209. data/qa/page/main/sign_up.rb +0 -37
  210. data/qa/page/main/terms.rb +0 -21
  211. data/qa/page/mattermost/login.rb +0 -28
  212. data/qa/page/mattermost/main.rb +0 -15
  213. data/qa/page/merge_request/new.rb +0 -68
  214. data/qa/page/merge_request/show.rb +0 -232
  215. data/qa/page/profile/emails.rb +0 -29
  216. data/qa/page/profile/menu.rb +0 -52
  217. data/qa/page/profile/password.rb +0 -23
  218. data/qa/page/profile/personal_access_tokens.rb +0 -67
  219. data/qa/page/profile/ssh_keys.rb +0 -42
  220. data/qa/page/profile/two_factor_auth.rb +0 -17
  221. data/qa/page/project/activity.rb +0 -17
  222. data/qa/page/project/branches/show.rb +0 -56
  223. data/qa/page/project/commit/show.rb +0 -32
  224. data/qa/page/project/fork/new.rb +0 -19
  225. data/qa/page/project/import/github.rb +0 -78
  226. data/qa/page/project/issue/index.rb +0 -71
  227. data/qa/page/project/issue/new.rb +0 -35
  228. data/qa/page/project/issue/show.rb +0 -168
  229. data/qa/page/project/job/show.rb +0 -53
  230. data/qa/page/project/menu.rb +0 -43
  231. data/qa/page/project/milestone/index.rb +0 -19
  232. data/qa/page/project/milestone/new.rb +0 -29
  233. data/qa/page/project/new.rb +0 -76
  234. data/qa/page/project/operations/environments/index.rb +0 -21
  235. data/qa/page/project/operations/environments/show.rb +0 -23
  236. data/qa/page/project/operations/kubernetes/add.rb +0 -21
  237. data/qa/page/project/operations/kubernetes/add_existing.rb +0 -46
  238. data/qa/page/project/operations/kubernetes/index.rb +0 -25
  239. data/qa/page/project/operations/kubernetes/show.rb +0 -81
  240. data/qa/page/project/operations/metrics/show.rb +0 -87
  241. data/qa/page/project/pipeline/index.rb +0 -43
  242. data/qa/page/project/pipeline/show.rb +0 -76
  243. data/qa/page/project/settings/advanced.rb +0 -75
  244. data/qa/page/project/settings/auto_devops.rb +0 -21
  245. data/qa/page/project/settings/ci_cd.rb +0 -39
  246. data/qa/page/project/settings/ci_variables.rb +0 -56
  247. data/qa/page/project/settings/common.rb +0 -13
  248. data/qa/page/project/settings/deploy_keys.rb +0 -69
  249. data/qa/page/project/settings/deploy_tokens.rb +0 -64
  250. data/qa/page/project/settings/main.rb +0 -60
  251. data/qa/page/project/settings/members.rb +0 -62
  252. data/qa/page/project/settings/merge_request.rb +0 -32
  253. data/qa/page/project/settings/mirroring_repositories.rb +0 -132
  254. data/qa/page/project/settings/protected_branches.rb +0 -72
  255. data/qa/page/project/settings/repository.rb +0 -55
  256. data/qa/page/project/settings/runners.rb +0 -37
  257. data/qa/page/project/settings/visibility_features_permissions.rb +0 -26
  258. data/qa/page/project/show.rb +0 -165
  259. data/qa/page/project/sub_menus/ci_cd.rb +0 -27
  260. data/qa/page/project/sub_menus/common.rb +0 -19
  261. data/qa/page/project/sub_menus/issues.rb +0 -63
  262. data/qa/page/project/sub_menus/operations.rb +0 -58
  263. data/qa/page/project/sub_menus/project.rb +0 -29
  264. data/qa/page/project/sub_menus/repository.rb +0 -48
  265. data/qa/page/project/sub_menus/settings.rb +0 -81
  266. data/qa/page/project/web_ide/edit.rb +0 -139
  267. data/qa/page/project/wiki/edit.rb +0 -21
  268. data/qa/page/project/wiki/git_access.rb +0 -13
  269. data/qa/page/project/wiki/new.rb +0 -61
  270. data/qa/page/project/wiki/show.rb +0 -31
  271. data/qa/page/search/results.rb +0 -55
  272. data/qa/page/settings/common.rb +0 -26
  273. data/qa/page/sub_menus/common.rb +0 -50
  274. data/qa/page/validatable.rb +0 -21
  275. data/qa/page/validator.rb +0 -52
  276. data/qa/page/view.rb +0 -59
  277. data/qa/resource/api_fabricator.rb +0 -137
  278. data/qa/resource/base.rb +0 -170
  279. data/qa/resource/ci_variable.rb +0 -57
  280. data/qa/resource/deploy_key.rb +0 -39
  281. data/qa/resource/deploy_token.rb +0 -48
  282. data/qa/resource/events/base.rb +0 -42
  283. data/qa/resource/events/project.rb +0 -25
  284. data/qa/resource/file.rb +0 -63
  285. data/qa/resource/fork.rb +0 -92
  286. data/qa/resource/group.rb +0 -83
  287. data/qa/resource/issue.rb +0 -61
  288. data/qa/resource/kubernetes_cluster/base.rb +0 -40
  289. data/qa/resource/kubernetes_cluster/project_cluster.rb +0 -72
  290. data/qa/resource/label.rb +0 -61
  291. data/qa/resource/members.rb +0 -36
  292. data/qa/resource/merge_request.rb +0 -105
  293. data/qa/resource/merge_request_from_fork.rb +0 -33
  294. data/qa/resource/personal_access_token.rb +0 -31
  295. data/qa/resource/project.rb +0 -179
  296. data/qa/resource/project_imported_from_github.rb +0 -31
  297. data/qa/resource/project_member.rb +0 -35
  298. data/qa/resource/project_milestone.rb +0 -34
  299. data/qa/resource/protected_branch.rb +0 -76
  300. data/qa/resource/repository/commit.rb +0 -81
  301. data/qa/resource/repository/project_push.rb +0 -44
  302. data/qa/resource/repository/push.rb +0 -113
  303. data/qa/resource/repository/wiki_push.rb +0 -38
  304. data/qa/resource/runner.rb +0 -75
  305. data/qa/resource/sandbox.rb +0 -79
  306. data/qa/resource/settings/hashed_storage.rb +0 -26
  307. data/qa/resource/snippet.rb +0 -30
  308. data/qa/resource/ssh_key.rb +0 -57
  309. data/qa/resource/tag.rb +0 -30
  310. data/qa/resource/user.rb +0 -150
  311. data/qa/resource/user_gpg.rb +0 -46
  312. data/qa/resource/visibility.rb +0 -17
  313. data/qa/resource/wiki.rb +0 -48
  314. data/qa/runtime/address.rb +0 -29
  315. data/qa/runtime/api/client.rb +0 -90
  316. data/qa/runtime/api/request.rb +0 -49
  317. data/qa/runtime/application_settings.rb +0 -46
  318. data/qa/runtime/browser.rb +0 -220
  319. data/qa/runtime/env.rb +0 -330
  320. data/qa/runtime/feature.rb +0 -87
  321. data/qa/runtime/fixtures.rb +0 -43
  322. data/qa/runtime/gpg.rb +0 -37
  323. data/qa/runtime/ip_address.rb +0 -33
  324. data/qa/runtime/key/base.rb +0 -38
  325. data/qa/runtime/key/ecdsa.rb +0 -13
  326. data/qa/runtime/key/ed25519.rb +0 -13
  327. data/qa/runtime/key/rsa.rb +0 -13
  328. data/qa/runtime/mail_hog.rb +0 -15
  329. data/qa/runtime/namespace.rb +0 -27
  330. data/qa/runtime/path.rb +0 -13
  331. data/qa/runtime/release.rb +0 -40
  332. data/qa/runtime/scenario.rb +0 -38
  333. data/qa/runtime/search.rb +0 -124
  334. data/qa/runtime/user.rb +0 -57
  335. data/qa/scenario/actable.rb +0 -25
  336. data/qa/scenario/bootable.rb +0 -53
  337. data/qa/scenario/shared_attributes.rb +0 -14
  338. data/qa/scenario/template.rb +0 -64
  339. data/qa/scenario/test/instance.rb +0 -36
  340. data/qa/scenario/test/instance/all.rb +0 -18
  341. data/qa/scenario/test/instance/smoke.rb +0 -20
  342. data/qa/scenario/test/integration/github.rb +0 -20
  343. data/qa/scenario/test/integration/instance_saml.rb +0 -13
  344. data/qa/scenario/test/integration/kubernetes.rb +0 -13
  345. data/qa/scenario/test/integration/ldap_no_server.rb +0 -13
  346. data/qa/scenario/test/integration/ldap_no_tls.rb +0 -13
  347. data/qa/scenario/test/integration/ldap_tls.rb +0 -13
  348. data/qa/scenario/test/integration/mattermost.rb +0 -26
  349. data/qa/scenario/test/integration/object_storage.rb +0 -13
  350. data/qa/scenario/test/integration/smtp.rb +0 -13
  351. data/qa/scenario/test/sanity/framework.rb +0 -19
  352. data/qa/scenario/test/sanity/selectors.rb +0 -61
  353. data/qa/service/cluster_provider/base.rb +0 -41
  354. data/qa/service/cluster_provider/gcloud.rb +0 -115
  355. data/qa/service/cluster_provider/k3d.rb +0 -134
  356. data/qa/service/cluster_provider/k3s.rb +0 -94
  357. data/qa/service/cluster_provider/minikube.rb +0 -26
  358. data/qa/service/docker_run/base.rb +0 -47
  359. data/qa/service/docker_run/gitlab_runner.rb +0 -58
  360. data/qa/service/docker_run/jenkins.rb +0 -43
  361. data/qa/service/docker_run/k3s.rb +0 -46
  362. data/qa/service/docker_run/ldap.rb +0 -41
  363. data/qa/service/docker_run/maven.rb +0 -44
  364. data/qa/service/docker_run/node_js.rb +0 -38
  365. data/qa/service/docker_run/saml_idp.rb +0 -69
  366. data/qa/service/kubernetes_cluster.rb +0 -107
  367. data/qa/service/omnibus.rb +0 -23
  368. data/qa/service/shellout.rb +0 -31
  369. data/qa/specs/features/api/1_manage/.gitkeep +0 -0
  370. data/qa/specs/features/api/1_manage/rate_limits_spec.rb +0 -17
  371. data/qa/specs/features/api/1_manage/users_spec.rb +0 -35
  372. data/qa/specs/features/api/2_plan/.gitkeep +0 -0
  373. data/qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb +0 -48
  374. data/qa/specs/features/api/3_create/repository/files_spec.rb +0 -106
  375. data/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +0 -74
  376. data/qa/specs/features/api/4_verify/.gitkeep +0 -0
  377. data/qa/specs/features/api/5_package/.gitkeep +0 -0
  378. data/qa/specs/features/api/6_release/.gitkeep +0 -0
  379. data/qa/specs/features/api/7_configure/.gitkeep +0 -0
  380. data/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +0 -20
  381. data/qa/specs/features/browser_ui/1_manage/group/transfer_project_spec.rb +0 -56
  382. data/qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb +0 -25
  383. data/qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb +0 -15
  384. data/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb +0 -20
  385. data/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb +0 -19
  386. data/qa/specs/features/browser_ui/1_manage/login/register_spec.rb +0 -27
  387. data/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb +0 -24
  388. data/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb +0 -23
  389. data/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb +0 -57
  390. data/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +0 -117
  391. data/qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb +0 -22
  392. data/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +0 -46
  393. data/qa/specs/features/browser_ui/2_plan/issue/check_mentions_for_xss_spec.rb +0 -45
  394. data/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb +0 -35
  395. data/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb +0 -29
  396. data/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +0 -40
  397. data/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb +0 -40
  398. data/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb +0 -36
  399. data/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb +0 -28
  400. data/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +0 -35
  401. data/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +0 -64
  402. data/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +0 -26
  403. data/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb +0 -49
  404. data/qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb +0 -52
  405. data/qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb +0 -35
  406. data/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +0 -68
  407. data/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +0 -88
  408. data/qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb +0 -30
  409. data/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb +0 -51
  410. data/qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb +0 -58
  411. data/qa/specs/features/browser_ui/3_create/repository/move_project_create_fork_spec.rb +0 -53
  412. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +0 -48
  413. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +0 -74
  414. data/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +0 -34
  415. data/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +0 -43
  416. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +0 -81
  417. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb +0 -44
  418. data/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +0 -63
  419. data/qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb +0 -37
  420. data/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb +0 -66
  421. data/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb +0 -29
  422. data/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +0 -69
  423. data/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +0 -43
  424. data/qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb +0 -42
  425. data/qa/specs/features/browser_ui/4_verify/ci_variable/add_remove_ci_variable_spec.rb +0 -60
  426. data/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +0 -89
  427. data/qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb +0 -34
  428. data/qa/specs/features/browser_ui/5_package/.gitkeep +0 -0
  429. data/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +0 -28
  430. data/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +0 -102
  431. data/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +0 -22
  432. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_dependent_relationship_spec.rb +0 -122
  433. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_independent_relationship_spec.rb +0 -121
  434. data/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +0 -147
  435. data/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +0 -38
  436. data/qa/specs/features/browser_ui/8_monitor/apm/dashboards_spec.rb +0 -97
  437. data/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +0 -38
  438. data/qa/specs/features/ee/api/1_manage/.gitkeep +0 -0
  439. data/qa/specs/features/ee/api/2_plan/.gitkeep +0 -0
  440. data/qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb +0 -173
  441. data/qa/specs/features/ee/api/3_create/.gitkeep +0 -0
  442. data/qa/specs/features/ee/api/4_verify/.gitkeep +0 -0
  443. data/qa/specs/features/ee/api/5_package/.gitkeep +0 -0
  444. data/qa/specs/features/ee/api/6_release/.gitkeep +0 -0
  445. data/qa/specs/features/ee/api/7_configure/.gitkeep +0 -0
  446. data/qa/specs/features/ee/api/enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb +0 -70
  447. data/qa/specs/features/ee/api/enablement/elasticsearch/elasticsearch_api_spec.rb +0 -84
  448. data/qa/specs/features/ee/api/geo/geo_nodes_spec.rb +0 -91
  449. data/qa/specs/features/ee/browser_ui/1_manage/.gitkeep +0 -0
  450. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb +0 -155
  451. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_2_spec.rb +0 -103
  452. data/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb +0 -141
  453. data/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb +0 -183
  454. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb +0 -115
  455. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_group_managed_accounts_spec.rb +0 -178
  456. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb +0 -87
  457. data/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb +0 -107
  458. data/qa/specs/features/ee/browser_ui/1_manage/insights/default_insights_spec.rb +0 -48
  459. data/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb +0 -124
  460. data/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb +0 -63
  461. data/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb +0 -127
  462. data/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb +0 -165
  463. data/qa/specs/features/ee/browser_ui/2_plan/.gitkeep +0 -0
  464. data/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb +0 -46
  465. data/qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb +0 -28
  466. data/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb +0 -96
  467. data/qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb +0 -40
  468. data/qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb +0 -31
  469. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb +0 -28
  470. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb +0 -44
  471. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb +0 -31
  472. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/focus_mode_spec.rb +0 -28
  473. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb +0 -48
  474. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb +0 -103
  475. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb +0 -37
  476. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb +0 -40
  477. data/qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb +0 -35
  478. data/qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb +0 -46
  479. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb +0 -45
  480. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb +0 -70
  481. data/qa/specs/features/ee/browser_ui/2_plan/related_issues/related_issues_spec.rb +0 -50
  482. data/qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb +0 -58
  483. data/qa/specs/features/ee/browser_ui/3_create/.gitkeep +0 -0
  484. data/qa/specs/features/ee/browser_ui/3_create/contribution_analytics_spec.rb +0 -53
  485. data/qa/specs/features/ee/browser_ui/3_create/design_management_spec.rb +0 -29
  486. data/qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb +0 -158
  487. data/qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb +0 -80
  488. data/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb +0 -97
  489. data/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +0 -83
  490. data/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb +0 -75
  491. data/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb +0 -161
  492. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb +0 -52
  493. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb +0 -71
  494. data/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb +0 -202
  495. data/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb +0 -120
  496. data/qa/specs/features/ee/browser_ui/3_create/web_ide/web_terminal_spec.rb +0 -80
  497. data/qa/specs/features/ee/browser_ui/4_verify/.gitkeep +0 -0
  498. data/qa/specs/features/ee/browser_ui/5_package/.gitkeep +0 -0
  499. data/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb +0 -102
  500. data/qa/specs/features/ee/browser_ui/5_package/npm_registry_spec.rb +0 -75
  501. data/qa/specs/features/ee/browser_ui/6_release/.gitkeep +0 -0
  502. data/qa/specs/features/ee/browser_ui/6_release/multi-project_pipelines_spec.rb +0 -98
  503. data/qa/specs/features/ee/browser_ui/6_release/pipelines_for_merged_results_and_merge_trains_spec.rb +0 -137
  504. data/qa/specs/features/ee/browser_ui/7_configure/.gitkeep +0 -0
  505. data/qa/specs/features/ee/browser_ui/8_monitor/.gitkeep +0 -0
  506. data/qa/specs/features/ee/browser_ui/8_monitor/apm/metrics_spec.rb +0 -68
  507. data/qa/specs/features/ee/browser_ui/8_monitor/health/alerting_spec.rb +0 -106
  508. data/qa/specs/features/ee/browser_ui/8_monitor/health/cluster_health_spec.rb +0 -52
  509. data/qa/specs/features/ee/browser_ui/enablement/elasticsearch/elasticsearch_reindexing_spec.rb +0 -78
  510. data/qa/specs/features/ee/browser_ui/geo/attachment_replication_spec.rb +0 -63
  511. data/qa/specs/features/ee/browser_ui/geo/database_delete_replication_spec.rb +0 -60
  512. data/qa/specs/features/ee/browser_ui/geo/http_push_spec.rb +0 -121
  513. data/qa/specs/features/ee/browser_ui/geo/http_push_to_secondary_spec.rb +0 -174
  514. data/qa/specs/features/ee/browser_ui/geo/rename_replication_spec.rb +0 -75
  515. data/qa/specs/features/ee/browser_ui/geo/ssh_push_spec.rb +0 -151
  516. data/qa/specs/features/ee/browser_ui/geo/ssh_push_to_secondary_spec.rb +0 -189
  517. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_spec.rb +0 -68
  518. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_to_secondary_spec.rb +0 -105
  519. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_spec.rb +0 -93
  520. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_to_secondary_spec.rb +0 -110
  521. data/qa/specs/features/ee/browser_ui/secure/create_merge_request_with_secure_spec.rb +0 -79
  522. data/qa/specs/features/ee/browser_ui/secure/license_compliance_spec.rb +0 -98
  523. data/qa/specs/features/ee/browser_ui/secure/merge_request_license_widget_spec.rb +0 -134
  524. data/qa/specs/features/ee/browser_ui/secure/security_reports_spec.rb +0 -143
  525. data/qa/specs/features/ee/browser_ui/secure/vulnerability_management_spec.rb +0 -101
  526. data/qa/specs/features/sanity/framework_spec.rb +0 -21
  527. data/qa/specs/helpers/quarantine.rb +0 -84
  528. data/qa/specs/loop_runner.rb +0 -21
  529. data/qa/specs/parallel_runner.rb +0 -33
  530. data/qa/specs/runner.rb +0 -78
  531. data/qa/support/dates.rb +0 -21
  532. data/qa/support/page/logging.rb +0 -178
  533. data/qa/support/retrier.rb +0 -64
  534. data/qa/support/wait_for_requests.rb +0 -25
  535. data/qa/tools/delete_subgroups.rb +0 -66
  536. data/qa/tools/delete_test_ssh_keys.rb +0 -61
  537. data/qa/tools/generate_perf_testdata.rb +0 -301
  538. data/qa/tools/revoke_all_personal_access_tokens.rb +0 -44
  539. data/qa/vendor/jenkins/page/base.rb +0 -24
  540. data/qa/vendor/jenkins/page/configure.rb +0 -48
  541. data/qa/vendor/jenkins/page/configure_job.rb +0 -72
  542. data/qa/vendor/jenkins/page/last_job_console.rb +0 -44
  543. data/qa/vendor/jenkins/page/login.rb +0 -31
  544. data/qa/vendor/jenkins/page/new_credentials.rb +0 -50
  545. data/qa/vendor/jenkins/page/new_job.rb +0 -38
  546. data/qa/vendor/saml_idp/page/base.rb +0 -14
  547. data/qa/vendor/saml_idp/page/login.rb +0 -31
@@ -1,178 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage', :group_saml, :orchestrated, :requires_admin, quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/issues/202260', type: :bug } do
5
- describe 'Group SAML SSO - Group managed accounts' do
6
- include Support::Api
7
-
8
- before(:all) do
9
- # Create a new user (with no existing SAML identities) who will be added as owner to the SAML group.
10
- @owner_user = Resource::User.fabricate_via_api!
11
-
12
- Flow::Login.sign_in(as: @owner_user)
13
-
14
- @group = Resource::Sandbox.fabricate_via_api! do |sandbox_group|
15
- sandbox_group.path = "saml_sso_group_#{SecureRandom.hex(8)}"
16
- end
17
-
18
- @saml_idp_service = Flow::Saml.run_saml_idp_service(@group.path)
19
-
20
- @api_client = Runtime::API::Client.new(:gitlab, personal_access_token: Runtime::Env.admin_personal_access_token)
21
-
22
- @developer_user = Resource::User.fabricate_via_api!
23
-
24
- @group.add_member(@owner_user, QA::Resource::Members::AccessLevel::OWNER)
25
-
26
- @group.add_member(@developer_user)
27
-
28
- @managed_group_url = Flow::Saml.enable_saml_sso(@group, @saml_idp_service)
29
-
30
- @saml_linked_for_admin = false
31
-
32
- setup_and_enable_group_managed_accounts
33
-
34
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
35
-
36
- Flow::Saml.logout_from_idp(@saml_idp_service)
37
- end
38
-
39
- it 'removes existing users from the group, forces existing users to create a new account and allows to leave group' do
40
- expect(@group.list_members.map { |item| item["username"] }).not_to include(@developer_user.username)
41
-
42
- visit_managed_group_url
43
-
44
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
45
-
46
- Flow::Saml.login_to_idp_if_required('user3', 'user3pass')
47
-
48
- expect(page).to have_text("uses group managed accounts. You need to create a new GitLab account which will be managed by")
49
-
50
- Support::Retrier.retry_until(raise_on_failure: true) do
51
- @idp_user_email = EE::Page::Group::SamlSSOSignUp.perform(&:current_email)
52
-
53
- remove_user_if_exists(@idp_user_email)
54
-
55
- @new_username = EE::Page::Group::SamlSSOSignUp.perform(&:current_username)
56
-
57
- EE::Page::Group::SamlSSOSignUp.perform(&:click_register_button)
58
-
59
- page.has_no_content?("Email has already been taken")
60
- end
61
-
62
- expect(page).to have_text("Sign up was successful! Please confirm your email to sign in.")
63
-
64
- QA::Flow::User.confirm_user(@new_username)
65
-
66
- visit_managed_group_url
67
-
68
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
69
-
70
- expect(page).to have_text("Signed in with SAML")
71
-
72
- Page::Group::Show.perform(&:leave_group)
73
-
74
- expect(page).to have_text("You left")
75
-
76
- Page::Main::Menu.perform(&:sign_out)
77
-
78
- visit_managed_group_url
79
-
80
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
81
-
82
- expect(page).to have_text("uses group managed accounts. You need to create a new GitLab account which will be managed by")
83
- end
84
-
85
- after(:all) do
86
- page.visit Runtime::Scenario.gitlab_address
87
-
88
- %w[enforced_sso enforced_sso_requires_session group_managed_accounts sign_up_on_sso group_scim group_administration_nav_item].each do |flag|
89
- Runtime::Feature.remove(flag)
90
- end
91
-
92
- remove_user_if_exists(@idp_user_email)
93
-
94
- @group.remove_via_api!
95
-
96
- Flow::Saml.remove_saml_idp_service(@saml_idp_service)
97
-
98
- page.visit Runtime::Scenario.gitlab_address
99
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
100
- end
101
- end
102
-
103
- def remove_user_if_exists(username_or_email)
104
- QA::Runtime::Logger.debug("Attempting to remove user \"#{username_or_email}\" via API")
105
-
106
- return if username_or_email.nil?
107
-
108
- response = parse_body(get(Runtime::API::Request.new(@api_client, "/users?search=#{username_or_email}").url))
109
-
110
- if response.any?
111
- raise "GET /users?search=#{username_or_email} returned multiple results. response: #{response}" if response.size > 1
112
-
113
- delete_response = delete Runtime::API::Request.new(@api_client, "/users/#{response.first[:id]}").url
114
-
115
- QA::Runtime::Logger.debug("DELETE \"#{username_or_email}\" response code: #{delete_response.code} message: #{delete_response.body}")
116
- else
117
- QA::Runtime::Logger.debug("GET /users?search=#{username_or_email} returned empty response: #{response}")
118
- end
119
- end
120
-
121
- def setup_and_enable_group_managed_accounts
122
- %w[enforced_sso enforced_sso_requires_session group_managed_accounts sign_up_on_sso group_scim group_administration_nav_item].each do |flag|
123
- Runtime::Feature.enable_and_verify(flag)
124
- end
125
-
126
- Support::Retrier.retry_on_exception do
127
- # We need to logout from IDP. This is required if this is a retry.
128
- Flow::Saml.logout_from_idp(@saml_idp_service)
129
-
130
- page.visit Runtime::Scenario.gitlab_address
131
-
132
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
133
-
134
- # The first time you have to be signed in as admin
135
- unless @saml_linked_for_admin
136
- Flow::Login.sign_in(as: @owner_user)
137
- @saml_linked_for_admin = true
138
- end
139
-
140
- # We must sign in with SAML before enabling Group Managed Accounts
141
- visit_managed_group_url
142
-
143
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
144
-
145
- Flow::Saml.login_to_idp_if_required('user1', 'user1pass')
146
-
147
- Flow::Saml.visit_saml_sso_settings(@group)
148
-
149
- EE::Page::Group::Settings::SamlSSO.perform do |saml_sso|
150
- # Once the feature flags are enabled, it takes some time for the toggle buttons to show on the UI.
151
- # This issue does not happen manually. Only happens with the test as they are too fast.
152
- Support::Retrier.retry_until(sleep_interval: 1, raise_on_failure: true) do
153
- condition_met = saml_sso.has_enforced_sso_button? && saml_sso.has_group_managed_accounts_button?
154
- page.refresh unless condition_met
155
-
156
- condition_met
157
- end
158
-
159
- saml_sso.enforce_sso
160
- saml_sso.enable_group_managed_accounts
161
- saml_sso.click_save_changes
162
-
163
- saml_sso.user_login_url_link_text
164
- end
165
-
166
- Flow::Saml.visit_saml_sso_settings(@group, direct: true)
167
- raise "Group managed accounts not setup correctly" unless EE::Page::Group::Settings::SamlSSO.perform(&:group_managed_accounts_enabled?)
168
- end
169
- end
170
-
171
- def visit_managed_group_url
172
- Runtime::Logger.debug(%Q[Visiting managed_group_url at "#{@managed_group_url}"])
173
-
174
- page.visit @managed_group_url
175
- Support::Waiter.wait_until { current_url == @managed_group_url }
176
- end
177
- end
178
- end
@@ -1,87 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage', :group_saml, :orchestrated, :requires_admin do
5
- describe 'Group SAML SSO - Non enforced SSO' do
6
- include Support::Api
7
-
8
- before(:all) do
9
- @group = Resource::Sandbox.fabricate_via_api! do |sandbox_group|
10
- sandbox_group.path = "saml_sso_group_#{SecureRandom.hex(8)}"
11
- end
12
-
13
- Runtime::Feature.enable_and_verify('group_administration_nav_item')
14
-
15
- @saml_idp_service = Flow::Saml.run_saml_idp_service(@group.path)
16
- end
17
-
18
- before do
19
- Flow::Saml.logout_from_idp(@saml_idp_service)
20
-
21
- page.visit Runtime::Scenario.gitlab_address
22
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
23
-
24
- Flow::Login.sign_in
25
- end
26
-
27
- it 'User logs in to group with SAML SSO' do
28
- managed_group_url = Flow::Saml.enable_saml_sso(@group, @saml_idp_service)
29
-
30
- page.visit managed_group_url
31
-
32
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
33
-
34
- Flow::Saml.login_to_idp_if_required('user1', 'user1pass')
35
-
36
- expect(page).to have_content("SAML for #{@group.path} was added to your connected accounts")
37
-
38
- page.visit managed_group_url
39
-
40
- EE::Page::Group::SamlSSOSignIn.perform(&:click_sign_in)
41
-
42
- expect(page).to have_content("Already signed in with SAML for #{@group.path}")
43
- end
44
-
45
- it 'Lets group admin test settings' do
46
- incorrect_fingerprint = Digest::SHA1.hexdigest(rand.to_s)
47
-
48
- Flow::Saml.visit_saml_sso_settings(@group)
49
-
50
- EE::Page::Group::Settings::SamlSSO.perform do |saml_sso|
51
- saml_sso.set_id_provider_sso_url(@saml_idp_service.idp_sso_url)
52
- saml_sso.set_cert_fingerprint(incorrect_fingerprint)
53
- saml_sso.click_save_changes
54
-
55
- saml_sso.click_test_button
56
- end
57
-
58
- Flow::Saml.login_to_idp_if_required('user2', 'user2pass')
59
-
60
- expect(page).to have_content("Verify SAML Configuration")
61
- expect(page).to have_content("Fingerprint mismatch")
62
- expect(page).to have_content("<saml:Issuer>#{@saml_idp_service.idp_issuer}</saml:Issuer>")
63
-
64
- EE::Page::Group::Settings::SamlSSO.perform do |saml_sso|
65
- saml_sso.set_cert_fingerprint(@saml_idp_service.idp_certificate_fingerprint)
66
- saml_sso.click_save_changes
67
-
68
- saml_sso.click_test_button
69
- end
70
-
71
- expect(page).to have_content("Verify SAML Configuration")
72
- expect(page).not_to have_content("Fingerprint mismatch")
73
- end
74
-
75
- after(:all) do
76
- @group.remove_via_api!
77
-
78
- Runtime::Feature.remove('group_administration_nav_item')
79
-
80
- page.visit Runtime::Scenario.gitlab_address
81
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
82
-
83
- Flow::Saml.remove_saml_idp_service(@saml_idp_service)
84
- end
85
- end
86
- end
87
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'securerandom'
3
-
4
- module QA
5
- context 'Manage' do
6
- describe 'Group access', :requires_admin, :skip_live_env do
7
- include Runtime::IPAddress
8
-
9
- before(:all) do
10
- @sandbox_group = Resource::Sandbox.fabricate! do |sandbox_group|
11
- sandbox_group.path = "gitlab-qa-ip-restricted-sandbox-group-#{SecureRandom.hex(8)}"
12
- end
13
-
14
- @user = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
15
-
16
- @group = Resource::Group.fabricate_via_api! do |group|
17
- group.path = "ip-address-restricted-group-#{SecureRandom.hex(8)}"
18
- group.sandbox = @sandbox_group
19
- end
20
-
21
- enable_plan_on_group(@sandbox_group.path, "Gold") if Runtime::Env.dot_com?
22
- end
23
-
24
- after(:all) do
25
- @sandbox_group.remove_via_api!
26
-
27
- page.visit Runtime::Scenario.gitlab_address
28
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
29
- end
30
-
31
- before do
32
- page.visit Runtime::Scenario.gitlab_address
33
-
34
- set_ip_address_restriction_to(ip_address)
35
-
36
- Flow::Login.sign_in(as: @user)
37
- end
38
-
39
- context 'when restricted by another ip address' do
40
- let(:ip_address) { get_next_ip_address(fetch_current_ip_address) }
41
-
42
- it 'denies access' do
43
- @group.sandbox.visit!
44
- expect(page).to have_text('Page Not Found')
45
- page.go_back
46
-
47
- @group.visit!
48
- expect(page).to have_text('Page Not Found')
49
- page.go_back
50
- end
51
- end
52
-
53
- context 'when restricted by user\'s ip address' do
54
- let(:ip_address) { fetch_current_ip_address }
55
-
56
- it 'allows access' do
57
- @group.sandbox.visit!
58
- expect(page).to have_text(@group.sandbox.path)
59
-
60
- @group.visit!
61
- expect(page).to have_text(@group.path)
62
- end
63
- end
64
-
65
- private
66
-
67
- def set_ip_address_restriction_to(ip_address)
68
- Flow::Login.while_signed_in_as_admin do
69
- @group.sandbox.visit!
70
-
71
- Page::Group::Menu.perform(&:click_group_general_settings_item)
72
-
73
- Page::Group::Settings::General.perform do |settings|
74
- settings.set_ip_address_restriction(ip_address)
75
- end
76
- end
77
- end
78
-
79
- def get_next_ip_address(current_ip_address)
80
- current_last_part = current_ip_address.split(".").pop.to_i
81
-
82
- updated_last_part = current_last_part < 255 ? current_last_part + 1 : 1
83
-
84
- current_ip_address.split(".")[0...-1].push(updated_last_part).join(".")
85
- end
86
-
87
- def enable_plan_on_group(group, plan)
88
- Flow::Login.while_signed_in_as_admin do
89
- Page::Main::Menu.perform(&:go_to_admin_area)
90
- Page::Admin::Menu.perform(&:go_to_groups_overview)
91
-
92
- Page::Admin::Overview::Groups::Index.perform do |index|
93
- index.search_group(group)
94
- index.click_group(group)
95
- end
96
-
97
- Page::Admin::Overview::Groups::Show.perform(&:click_edit_group_link)
98
-
99
- Page::Admin::Overview::Groups::Edit.perform do |edit|
100
- edit.select_plan(plan)
101
- edit.click_save_changes_button
102
- end
103
- end
104
- end
105
- end
106
- end
107
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage' do
5
- shared_examples 'default insights page' do
6
- it 'displays issues and merge requests dashboards' do
7
- EE::Page::Insights::Show.perform do |show|
8
- show.wait_for_insight_charts_to_load
9
-
10
- expect(show).to have_insights_dashboard_title('Issues Dashboard')
11
-
12
- show.select_insights_dashboard('Merge Requests Dashboard')
13
-
14
- expect(show).to have_insights_dashboard_title('Merge Requests Dashboard')
15
- end
16
- end
17
- end
18
-
19
- context 'group insights page' do
20
- before do
21
- Flow::Login.sign_in
22
-
23
- Resource::Group.fabricate_via_api!.visit!
24
-
25
- Page::Group::Menu.perform(&:click_group_insights_link)
26
- end
27
-
28
- it_behaves_like 'default insights page'
29
- end
30
-
31
- context 'project insights page' do
32
- before do
33
- Flow::Login.sign_in
34
-
35
- project = Resource::Project.fabricate_via_api! do |project|
36
- project.name = 'project-insights'
37
- project.description = 'Project Insights'
38
- end
39
-
40
- project.visit!
41
-
42
- Page::Project::Menu.perform(&:click_project_insights_link)
43
- end
44
-
45
- it_behaves_like 'default insights page'
46
- end
47
- end
48
- end
@@ -1,124 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'securerandom'
3
-
4
- module QA
5
- context 'Manage', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/207741', type: :flaky } do
6
- shared_examples 'audit event' do |expected_events|
7
- it 'logs audit events for UI operations' do
8
- sign_in
9
-
10
- Page::Main::Menu.perform(&:go_to_admin_area)
11
- QA::Page::Admin::Menu.perform(&:go_to_monitoring_audit_logs)
12
- EE::Page::Admin::Monitoring::AuditLog.perform do |audit_log_page|
13
- expected_events.each do |expected_event|
14
- expect(audit_log_page).to have_audit_log_row(expected_event)
15
- end
16
- end
17
- end
18
- end
19
-
20
- describe 'Instance', :requires_admin do
21
- context 'Failed sign in' do
22
- before do
23
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
24
- invalid_user = QA::Resource::User.new.tap do |user|
25
- user.username = 'bad_user_name'
26
- user.password = 'bad_pasword'
27
- end
28
-
29
- Page::Main::Login.perform do |login_page|
30
- login_page.sign_in_using_credentials(user: invalid_user, skip_page_validation: true)
31
- end
32
- sign_in
33
- end
34
-
35
- it_behaves_like 'audit event', ["Failed to login with STANDARD authentication"]
36
- end
37
-
38
- context 'Successful sign in' do
39
- before do
40
- sign_in
41
- end
42
-
43
- it_behaves_like 'audit event', ["Signed in with STANDARD authentication"]
44
- end
45
-
46
- context 'Add SSH key' do
47
- before do
48
- sign_in
49
- Resource::SSHKey.fabricate_via_browser_ui! do |resource|
50
- resource.title = "key for audit event test #{Time.now.to_f}"
51
- end
52
- end
53
-
54
- it_behaves_like 'audit event', ["Added SSH key"]
55
- end
56
-
57
- context 'Add and delete email' do
58
- before do
59
- sign_in
60
- new_email_address = 'new_email@example.com'
61
- Page::Main::Menu.perform(&:click_settings_link)
62
- Page::Profile::Menu.perform(&:click_emails)
63
- Support::Retrier.retry_until(sleep_interval: 3) do
64
- Page::Profile::Emails.perform do |emails|
65
- emails.add_email_address(new_email_address)
66
- expect(emails).to have_text(new_email_address)
67
- emails.delete_email_address(new_email_address)
68
- end
69
- end
70
- end
71
-
72
- it_behaves_like 'audit event', ["Added email", "Removed email"]
73
- end
74
-
75
- context 'Change password', :skip_signup_disabled do
76
- before do
77
- user = Resource::User.fabricate_via_api! do |user|
78
- user.username = "user_#{SecureRandom.hex(4)}"
79
- user.password = "pw_#{SecureRandom.hex(4)}"
80
- end
81
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
82
-
83
- Page::Main::Login.perform do |login_page|
84
- login_page.sign_in_using_credentials(user: user)
85
- end
86
-
87
- Page::Main::Menu.perform(&:click_settings_link)
88
- Page::Profile::Menu.perform(&:click_password)
89
- Page::Profile::Password.perform do |password_page|
90
- password_page.update_password('new_password', user.password)
91
- end
92
- sign_in
93
- end
94
-
95
- it_behaves_like 'audit event', ["Changed password"]
96
- end
97
-
98
- context 'Start and stop user impersonation' do
99
- before do
100
- sign_in
101
- user = Resource::User.fabricate_or_use(Runtime::Env.gitlab_qa_username_1, Runtime::Env.gitlab_qa_password_1)
102
- Page::Main::Menu.perform(&:go_to_admin_area)
103
- Page::Admin::Menu.perform(&:go_to_users_overview)
104
- Page::Admin::Overview::Users::Index.perform do |index|
105
- index.search_user(user.username)
106
- index.click_user(user.username)
107
- end
108
-
109
- Page::Admin::Overview::Users::Show.perform(&:click_impersonate_user)
110
-
111
- Page::Main::Menu.perform(&:click_stop_impersonation_link)
112
- end
113
-
114
- it_behaves_like 'audit event', ["Started Impersonation", "Stopped Impersonation"]
115
- end
116
-
117
- def sign_in
118
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
119
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
120
- Page::Main::Login.perform(&:sign_in_using_admin_credentials)
121
- end
122
- end
123
- end
124
- end