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,103 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'securerandom'
3
-
4
- module QA
5
- context 'Manage' do
6
- shared_examples 'audit event' do |expected_events|
7
- it 'logs audit events for UI operations' do
8
- Page::Group::Menu.perform(&:go_to_audit_events_settings)
9
- expected_events.each do |expected_event|
10
- expect(page).to have_text(expected_event)
11
- end
12
- end
13
- end
14
-
15
- describe 'Group' do
16
- before(:all) do
17
- @group = Resource::Group.fabricate_via_api! do |resource|
18
- resource.path = "test-group-#{SecureRandom.hex(8)}"
19
- end
20
- end
21
-
22
- # Bug issue: https://gitlab.com/gitlab-org/gitlab/issues/14756
23
- context 'Disable and Enable LFS', :skip do
24
- before do
25
- sign_in
26
- @group.visit!
27
- Page::Group::Menu.perform(&:click_group_general_settings_item)
28
- Page::Group::Settings::General.perform(&:set_lfs_disabled)
29
-
30
- Page::Group::Menu.perform(&:click_group_general_settings_item)
31
- Page::Group::Settings::General.perform(&:set_lfs_enabled)
32
- end
33
-
34
- it_behaves_like 'audit event', ["Change lfs enabled from false to true", "Change lfs enabled from true to false"]
35
- end
36
-
37
- context 'Enable and disable LFS' do
38
- before do
39
- sign_in
40
- @group.visit!
41
- Page::Group::Menu.perform(&:click_group_general_settings_item)
42
- Page::Group::Settings::General.perform(&:set_membership_lock_enabled)
43
-
44
- Page::Group::Menu.perform(&:click_group_general_settings_item)
45
- Page::Group::Settings::General.perform(&:set_membership_lock_disabled)
46
- end
47
-
48
- it_behaves_like 'audit event', ["Change membership lock from true to false", "Change membership lock from false to true"]
49
- end
50
-
51
- context 'Enable and disable allow user request access' do
52
- before do
53
- sign_in
54
- @group.visit!
55
- Page::Group::Menu.perform(&:click_group_general_settings_item)
56
- Page::Group::Settings::General.perform(&:toggle_request_access)
57
-
58
- Page::Group::Menu.perform(&:click_group_general_settings_item)
59
- Page::Group::Settings::General.perform(&:toggle_request_access)
60
- end
61
-
62
- it_behaves_like 'audit event', ["Change request access enabled from true to false", "Change request access enabled from false to true"]
63
- end
64
-
65
- # Bug issue: https://gitlab.com/gitlab-org/gitlab/issues/31764
66
- context 'Enable and disable 2FA requirement', :skip do
67
- before do
68
- sign_in
69
- @group.visit!
70
- Page::Group::Menu.perform(&:click_group_general_settings_item)
71
- Page::Group::Settings::General.perform(&:set_require_2fa_enabled)
72
- Page::Profile::TwoFactorAuth.perform(&:click_configure_it_later_button)
73
-
74
- @group.visit!
75
- Page::Group::Menu.perform(&:click_group_general_settings_item)
76
- Page::Group::Settings::General.perform(&:set_require_2fa_disabled)
77
- end
78
-
79
- it_behaves_like 'audit event', ["Change require two factor authentication from true to false", "Change require two factor authentication from false to true"]
80
- end
81
-
82
- context 'Change project creation level' do
83
- before do
84
- sign_in
85
- @group.visit!
86
- Page::Group::Menu.perform(&:click_group_general_settings_item)
87
- Page::Group::Settings::General.perform do |settings|
88
- settings.set_project_creation_level("Maintainers")
89
- end
90
- end
91
-
92
- it_behaves_like 'audit event', ["Change project creation level"]
93
- end
94
- end
95
-
96
- def sign_in
97
- unless Page::Main::Menu.perform { |p| p.has_personal_area?(wait: 0) }
98
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
99
- Page::Main::Login.perform(&:sign_in_using_credentials)
100
- end
101
- end
102
- end
103
- end
@@ -1,141 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage' do
5
- describe 'Group file templates', :requires_admin do
6
- include Support::Api
7
-
8
- templates = [
9
- {
10
- type: 'Dockerfile',
11
- template: 'custom_dockerfile',
12
- file_path: 'Dockerfile/custom_dockerfile.dockerfile',
13
- content: 'dockerfile template test'
14
- },
15
- {
16
- type: '.gitignore',
17
- template: 'custom_gitignore',
18
- file_path: 'gitignore/custom_gitignore.gitignore',
19
- content: 'gitignore template test'
20
- },
21
- {
22
- type: '.gitlab-ci.yml',
23
- template: 'custom_gitlab-ci',
24
- file_path: 'gitlab-ci/custom_gitlab-ci.yml',
25
- content:
26
- <<~CI
27
- job:
28
- script: echo "Skipped"
29
- except:
30
- - master
31
- CI
32
- },
33
- {
34
- type: 'LICENSE',
35
- template: 'custom_license',
36
- file_path: 'LICENSE/custom_license.txt',
37
- content: 'license template test'
38
- }
39
- ]
40
-
41
- before(:all) do
42
- admin = QA::Resource::User.new.tap do |user|
43
- user.username = QA::Runtime::User.admin_username
44
- user.password = QA::Runtime::User.admin_password
45
- end
46
- @api_client = Runtime::API::Client.new(:gitlab, user: admin)
47
- @api_client.personal_access_token
48
-
49
- @group = Resource::Group.fabricate_via_api! do |group|
50
- group.path = 'template-group'
51
- group.user = admin
52
- group.api_client = @api_client
53
- end
54
-
55
- @file_template_project = Resource::Project.fabricate_via_api! do |project|
56
- project.group = @group
57
- project.name = 'group-file-template-project'
58
- project.description = 'Add group file templates'
59
- project.auto_devops_enabled = false
60
- project.initialize_with_readme = true
61
- project.user = admin
62
- project.api_client = @api_client
63
- end
64
-
65
- Resource::Repository::Commit.fabricate_via_api! do |commit|
66
- commit.project = @file_template_project
67
- commit.commit_message = 'Add group file templates'
68
- commit.add_files(templates)
69
- commit.user = admin
70
- commit.api_client = @api_client
71
- end
72
-
73
- @project = Resource::Project.fabricate_via_api! do |project|
74
- project.group = @group
75
- project.name = 'group-file-template-project-2'
76
- project.description = 'Add files for group file templates'
77
- project.auto_devops_enabled = false
78
- project.initialize_with_readme = true
79
- project.user = admin
80
- project.api_client = @api_client
81
- end
82
- end
83
-
84
- after(:all) do
85
- Flow::Login.while_signed_in_as_admin do
86
- remove_group_file_template_if_set
87
- end
88
- end
89
-
90
- templates.each do |template|
91
- it "creates file via custom #{template[:type]} file template" do
92
- Flow::Login.sign_in_as_admin
93
-
94
- set_file_template_if_not_already_set
95
-
96
- @project.visit!
97
-
98
- Page::Project::Show.perform(&:create_new_file!)
99
- Page::File::Form.perform do |form|
100
- form.select_template template[:type], template[:template]
101
-
102
- expect(form).to have_normalized_ws_text(template[:content])
103
-
104
- form.commit_changes
105
- form.finished_loading?
106
-
107
- aggregate_failures "indications of file created" do
108
- expect(form).to have_content('The file has been successfully created.')
109
- expect(form).to have_content(template[:type])
110
- expect(form).to have_content('Add new file')
111
- expect(form).to have_normalized_ws_text(template[:content].chomp)
112
- end
113
- end
114
- end
115
- end
116
-
117
- def set_file_template_if_not_already_set
118
- response = get Runtime::API::Request.new(@api_client, "/groups/#{@group.id}").url
119
-
120
- if parse_body(response)[:file_template_project_id]
121
- return
122
- else
123
- @group.visit!
124
- Page::Group::Menu.perform(&:click_group_general_settings_item)
125
-
126
- Page::Group::Settings::General.perform do |general|
127
- general.choose_file_template_repository(@file_template_project.name)
128
- end
129
- end
130
- end
131
-
132
- def remove_group_file_template_if_set
133
- response = get Runtime::API::Request.new(@api_client, "/groups/#{@group.id}").url
134
-
135
- if parse_body(response)[:file_template_project_id]
136
- put Runtime::API::Request.new(@api_client, "/groups/#{@group.id}").url, { file_template_project_id: nil }
137
- end
138
- end
139
- end
140
- end
141
- end
@@ -1,183 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage', :orchestrated, :ldap_tls, :ldap_no_tls, :requires_admin do
5
- describe 'LDAP Group sync' do
6
- include Support::Api
7
-
8
- before(:all) do
9
- # Create the sandbox group as the LDAP user. Without this the admin user
10
- # would own the sandbox group and then in subsequent tests the LDAP user
11
- # would not have enough permission to push etc.
12
- Resource::Sandbox.fabricate_via_api!
13
-
14
- # Create an admin personal access token and use it for the remaining API calls
15
- @original_personal_access_token = Runtime::Env.personal_access_token
16
-
17
- Page::Main::Menu.perform do |menu|
18
- menu.sign_out if menu.has_personal_area?
19
- end
20
-
21
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
22
- Page::Main::Login.perform(&:sign_in_using_admin_credentials)
23
-
24
- Runtime::Env.personal_access_token = Resource::PersonalAccessToken.fabricate!.access_token
25
- Page::Main::Menu.perform(&:sign_out)
26
- end
27
-
28
- after(:all) do
29
- # Restore the original personal access token so that subsequent tests
30
- # don't perform API calls as an admin user while logged in as a non-root
31
- # LDAP user
32
- Runtime::Env.personal_access_token = @original_personal_access_token
33
- end
34
-
35
- context 'using group cn method' do
36
- let(:ldap_users) do
37
- [
38
- {
39
- name: 'ENG User 1',
40
- username: 'enguser1',
41
- email: 'enguser1@example.org',
42
- provider: 'ldapmain',
43
- extern_uid: 'uid=enguser1,ou=people,ou=global groups,dc=example,dc=org'
44
- },
45
- {
46
- name: 'ENG User 2',
47
- username: 'enguser2',
48
- email: 'enguser2@example.org',
49
- provider: 'ldapmain',
50
- extern_uid: 'uid=enguser2,ou=people,ou=global groups,dc=example,dc=org'
51
- },
52
- {
53
- name: 'ENG User 3',
54
- username: 'enguser3',
55
- email: 'enguser3@example.org',
56
- provider: 'ldapmain',
57
- extern_uid: 'uid=enguser3,ou=people,ou=global groups,dc=example,dc=org'
58
- }
59
- ]
60
- end
61
- let(:owner_user) { 'enguser1' }
62
- let(:sync_users) { ['ENG User 2', 'ENG User 3'] }
63
-
64
- before do
65
- @created_users = create_users_via_api(ldap_users)
66
- group = create_group_and_add_user_via_api(owner_user, 'Synched-engineering-group', Resource::Members::AccessLevel::OWNER)
67
- signin_and_visit_group_as_user(owner_user, group)
68
-
69
- Page::Group::Menu.perform(&:go_to_ldap_sync_settings)
70
-
71
- EE::Page::Group::Settings::LDAPSync.perform do |settings|
72
- settings.set_sync_method('LDAP Group cn')
73
- settings.set_group_cn('Engineering')
74
- settings.click_add_sync_button
75
- end
76
-
77
- Page::Group::Menu.perform(&:click_group_members_item)
78
- end
79
-
80
- it 'has LDAP users synced' do
81
- verify_users_synced(sync_users)
82
- end
83
- end
84
-
85
- context 'user filter method' do
86
- let(:ldap_users) do
87
- [
88
- {
89
- name: 'HR User 1',
90
- username: 'hruser1',
91
- email: 'hruser1@example.org',
92
- provider: 'ldapmain',
93
- extern_uid: 'uid=hruser1,ou=people,ou=global groups,dc=example,dc=org'
94
- },
95
- {
96
- name: 'HR User 2',
97
- username: 'hruser2',
98
- email: 'hruser2@example.org',
99
- provider: 'ldapmain',
100
- extern_uid: 'uid=hruser2,ou=people,ou=global groups,dc=example,dc=org'
101
- },
102
- {
103
- name: 'HR User 3',
104
- username: 'hruser3',
105
- email: 'hruser3@example.org',
106
- provider: 'ldapmain',
107
- extern_uid: 'uid=hruser3,ou=people,ou=global groups,dc=example,dc=org'
108
- }
109
- ]
110
- end
111
- let(:owner_user) { 'hruser1' }
112
- let(:sync_users) { ['HR User 2', 'HR User 3'] }
113
-
114
- before do
115
- @created_users = create_users_via_api(ldap_users)
116
-
117
- group = create_group_and_add_user_via_api(owner_user, 'Synched-human-resources-group', Resource::Members::AccessLevel::OWNER)
118
-
119
- signin_and_visit_group_as_user(owner_user, group)
120
-
121
- Page::Group::Menu.perform(&:go_to_ldap_sync_settings)
122
-
123
- EE::Page::Group::Settings::LDAPSync.perform do |settings|
124
- settings.set_user_filter('(&(objectClass=person)(cn=HR*))')
125
- settings.click_add_sync_button
126
- end
127
-
128
- Page::Group::Menu.perform(&:click_group_members_item)
129
- end
130
-
131
- it 'has LDAP users synced' do
132
- verify_users_synced(sync_users)
133
- end
134
- end
135
-
136
- def create_users_via_api(users)
137
- created_users = {}
138
-
139
- users.each do |user|
140
- created_users[user[:username]] = Resource::User.fabricate_via_api! do |resource|
141
- resource.username = user[:username]
142
- resource.name = user[:name]
143
- resource.email = user[:email]
144
- resource.extern_uid = user[:extern_uid]
145
- resource.provider = user[:provider]
146
- end
147
- end
148
- created_users
149
- end
150
-
151
- def create_group_and_add_user_via_api(user_name, group_name, role)
152
- group = Resource::Group.fabricate_via_api! do |resource|
153
- resource.path = "#{group_name}-#{SecureRandom.hex(4)}"
154
- end
155
-
156
- group.add_member(@created_users[user_name], role)
157
-
158
- group
159
- end
160
-
161
- def signin_and_visit_group_as_user(user_name, group)
162
- user = Struct.new(:ldap_username, :ldap_password).new(user_name, 'password')
163
-
164
- Runtime::Browser.visit(:gitlab, Page::Main::Login)
165
- Page::Main::Login.perform do |login_page|
166
- login_page.sign_in_using_ldap_credentials(user: user)
167
- end
168
-
169
- group.visit!
170
- end
171
-
172
- def verify_users_synced(expected_users)
173
- EE::Page::Group::Members.perform do |members|
174
- members.click_sync_now
175
- users_synchronised = members.retry_until(reload: true) do
176
- expected_users.map { |user| members.has_content?(user) }.all?
177
- end
178
- expect(users_synchronised).to be_truthy
179
- end
180
- end
181
- end
182
- end
183
- end
@@ -1,115 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module QA
4
- context 'Manage', :group_saml, :orchestrated do
5
- describe 'Group SAML SSO - Enforced SSO' do
6
- include Support::Api
7
-
8
- before do
9
- Support::Retrier.retry_on_exception do
10
- Flow::Saml.remove_saml_idp_service(@saml_idp_service) if @saml_idp_service
11
-
12
- @group = Resource::Sandbox.fabricate_via_api! do |sandbox_group|
13
- sandbox_group.path = "saml_sso_group_#{SecureRandom.hex(8)}"
14
- end
15
-
16
- @developer_user = Resource::User.fabricate_via_api!
17
-
18
- @group.add_member(@developer_user)
19
-
20
- @saml_idp_service = Flow::Saml.run_saml_idp_service(@group.path)
21
-
22
- @managed_group_url = setup_and_enable_enforce_sso
23
-
24
- Flow::Saml.logout_from_idp(@saml_idp_service)
25
-
26
- page.visit Runtime::Scenario.gitlab_address
27
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
28
- end
29
- end
30
-
31
- it 'user clones and pushes to project within a group using Git HTTP' do
32
- Flow::Login.sign_in
33
-
34
- @project = Resource::Project.fabricate! do |project|
35
- project.name = 'project-in-saml-enforced-group'
36
- project.description = 'project in SAML enforced group for git clone test'
37
- project.group = @group
38
- project.initialize_with_readme = true
39
- end
40
-
41
- @project.visit!
42
-
43
- expect do
44
- Resource::Repository::ProjectPush.fabricate! do |project_push|
45
- project_push.project = @project
46
- project_push.branch_name = "new_branch"
47
- project_push.user = @developer_user
48
- end
49
- end.not_to raise_error
50
- end
51
-
52
- after do
53
- page.visit Runtime::Scenario.gitlab_address
54
- %w[enforced_sso enforced_sso_requires_session group_administration_nav_item].each do |flag|
55
- Runtime::Feature.remove(flag)
56
- end
57
-
58
- @group.remove_via_api!
59
-
60
- Page::Main::Menu.perform(&:sign_out_if_signed_in)
61
-
62
- Flow::Saml.remove_saml_idp_service(@saml_idp_service)
63
- end
64
- end
65
-
66
- def setup_and_enable_enforce_sso
67
- %w[enforced_sso enforced_sso_requires_session group_administration_nav_item].each do |flag|
68
- Runtime::Feature.enable_and_verify(flag)
69
- end
70
-
71
- page.visit Runtime::Scenario.gitlab_address
72
- Page::Main::Login.perform(&:sign_in_using_credentials) unless Page::Main::Menu.perform(&:signed_in?)
73
-
74
- Support::Retrier.retry_on_exception do
75
- Flow::Saml.visit_saml_sso_settings(@group)
76
- ensure_enforced_sso_button_shown
77
-
78
- managed_group_url = EE::Page::Group::Settings::SamlSSO.perform do |saml_sso|
79
- saml_sso.enforce_sso
80
-
81
- saml_sso.set_id_provider_sso_url(@saml_idp_service.idp_sso_url)
82
- saml_sso.set_cert_fingerprint(@saml_idp_service.idp_certificate_fingerprint)
83
-
84
- saml_sso.click_save_changes
85
-
86
- saml_sso.user_login_url_link_text
87
- end
88
-
89
- Flow::Saml.visit_saml_sso_settings(@group, direct: true)
90
- ensure_enforced_sso_button_shown
91
-
92
- unless EE::Page::Group::Settings::SamlSSO.perform(&:enforce_sso_enabled?)
93
- QA::Runtime::Logger.debug "Enforced SSO not setup correctly. About to raise failure."
94
- QA::Runtime::Logger.debug Capybara::Screenshot.screenshot_and_save_page
95
- QA::Runtime::Logger.debug Runtime::Feature.get_features
96
-
97
- raise "Enforced SSO not setup correctly"
98
- end
99
-
100
- managed_group_url
101
- end
102
- end
103
-
104
- def ensure_enforced_sso_button_shown
105
- # Sometimes, the toggle button for SAML SSO does not appear and only appears after a refresh
106
- # This issue can only be reproduced manually if you are too quick to go to the group setting page
107
- # after enabling the feature flags.
108
- Support::Retrier.retry_until(sleep_interval: 1, raise_on_failure: true) do
109
- condition_met = EE::Page::Group::Settings::SamlSSO.perform(&:has_enforced_sso_button?)
110
- page.refresh unless condition_met
111
- condition_met
112
- end
113
- end
114
- end
115
- end