chemlab 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (536) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -0
  3. data/.rspec +3 -0
  4. data/.rspec_parallel +5 -0
  5. data/Dockerfile +68 -0
  6. data/Gemfile +23 -0
  7. data/Gemfile.lock +137 -0
  8. data/README.md +201 -0
  9. data/Rakefile +47 -0
  10. data/bin/qa +7 -0
  11. data/bin/test +3 -0
  12. data/chemlab.gemspec +43 -0
  13. data/knapsack/master_report.json +54 -0
  14. data/lib/chemlab.rb +5 -0
  15. data/lib/chemlab/version.rb +5 -0
  16. data/qa.rb +513 -0
  17. data/qa/ce/strategy.rb +21 -0
  18. data/qa/ee.rb +234 -0
  19. data/qa/ee/fixtures/gpg/admin.asc +0 -0
  20. data/qa/ee/fixtures/secure_license_files/.gitlab-ci.yml +12 -0
  21. data/qa/ee/fixtures/secure_license_files/gl-license-management-report.json +24 -0
  22. data/qa/ee/fixtures/secure_premade_reports/.gitlab-ci.yml +61 -0
  23. data/qa/ee/fixtures/secure_premade_reports/gl-container-scanning-report.json +105 -0
  24. data/qa/ee/fixtures/secure_premade_reports/gl-dast-report.json +1 -0
  25. data/qa/ee/fixtures/secure_premade_reports/gl-dependency-scanning-report.json +226 -0
  26. data/qa/ee/fixtures/secure_premade_reports/gl-license-management-report.json +42 -0
  27. data/qa/ee/fixtures/secure_premade_reports/gl-sast-report.json +152 -0
  28. data/qa/ee/fixtures/secure_premade_reports/yarn.lock +10024 -0
  29. data/qa/ee/page/admin/geo/nodes/new.rb +36 -0
  30. data/qa/ee/page/admin/geo/nodes/show.rb +23 -0
  31. data/qa/ee/page/admin/license.rb +41 -0
  32. data/qa/ee/page/admin/menu.rb +55 -0
  33. data/qa/ee/page/admin/monitoring/audit_log.rb +27 -0
  34. data/qa/ee/page/admin/overview/groups/edit.rb +27 -0
  35. data/qa/ee/page/admin/settings/component/elasticsearch.rb +38 -0
  36. data/qa/ee/page/admin/settings/component/email.rb +35 -0
  37. data/qa/ee/page/admin/settings/integration.rb +25 -0
  38. data/qa/ee/page/admin/settings/preferences.rb +25 -0
  39. data/qa/ee/page/admin/settings/templates.rb +40 -0
  40. data/qa/ee/page/component/design_management.rb +80 -0
  41. data/qa/ee/page/component/issue_board/show.rb +154 -0
  42. data/qa/ee/page/component/license_management.rb +62 -0
  43. data/qa/ee/page/component/secure_report.rb +38 -0
  44. data/qa/ee/page/component/web_ide/web_terminal_panel.rb +58 -0
  45. data/qa/ee/page/dashboard/projects.rb +54 -0
  46. data/qa/ee/page/file/show.rb +49 -0
  47. data/qa/ee/page/group/contribution_analytics.rb +29 -0
  48. data/qa/ee/page/group/epic/index.rb +46 -0
  49. data/qa/ee/page/group/epic/show.rb +74 -0
  50. data/qa/ee/page/group/issues_analytics.rb +33 -0
  51. data/qa/ee/page/group/members.rb +19 -0
  52. data/qa/ee/page/group/menu.rb +117 -0
  53. data/qa/ee/page/group/roadmap.rb +34 -0
  54. data/qa/ee/page/group/saml_sso_sign_in.rb +22 -0
  55. data/qa/ee/page/group/saml_sso_sign_up.rb +34 -0
  56. data/qa/ee/page/group/secure/show.rb +24 -0
  57. data/qa/ee/page/group/settings/general.rb +112 -0
  58. data/qa/ee/page/group/settings/ldap_sync.rb +38 -0
  59. data/qa/ee/page/group/settings/saml_sso.rb +93 -0
  60. data/qa/ee/page/insights/show.rb +51 -0
  61. data/qa/ee/page/main/banner.rb +19 -0
  62. data/qa/ee/page/merge_request/new.rb +74 -0
  63. data/qa/ee/page/merge_request/show.rb +326 -0
  64. data/qa/ee/page/profile/menu.rb +15 -0
  65. data/qa/ee/page/project/issue/index.rb +46 -0
  66. data/qa/ee/page/project/issue/show.rb +97 -0
  67. data/qa/ee/page/project/menu.rb +17 -0
  68. data/qa/ee/page/project/milestone/show.rb +41 -0
  69. data/qa/ee/page/project/new.rb +56 -0
  70. data/qa/ee/page/project/operations/kubernetes/show.rb +50 -0
  71. data/qa/ee/page/project/operations/metrics/show.rb +101 -0
  72. data/qa/ee/page/project/packages/index.rb +30 -0
  73. data/qa/ee/page/project/packages/show.rb +29 -0
  74. data/qa/ee/page/project/path_locks/index.rb +30 -0
  75. data/qa/ee/page/project/pipeline/show.rb +34 -0
  76. data/qa/ee/page/project/secure/dependency_list.rb +19 -0
  77. data/qa/ee/page/project/secure/show.rb +17 -0
  78. data/qa/ee/page/project/settings/ci_cd.rb +25 -0
  79. data/qa/ee/page/project/settings/integrations.rb +21 -0
  80. data/qa/ee/page/project/settings/license_compliance.rb +67 -0
  81. data/qa/ee/page/project/settings/merge_request.rb +27 -0
  82. data/qa/ee/page/project/settings/mirroring_repositories.rb +30 -0
  83. data/qa/ee/page/project/settings/protected_branches.rb +37 -0
  84. data/qa/ee/page/project/settings/push_rules.rb +82 -0
  85. data/qa/ee/page/project/settings/repository.rb +27 -0
  86. data/qa/ee/page/project/settings/services/jenkins.rb +56 -0
  87. data/qa/ee/page/project/show.rb +35 -0
  88. data/qa/ee/page/project/sub_menus/packages.rb +27 -0
  89. data/qa/ee/page/project/sub_menus/project.rb +21 -0
  90. data/qa/ee/page/project/sub_menus/repository.rb +29 -0
  91. data/qa/ee/page/project/sub_menus/security_compliance.rb +44 -0
  92. data/qa/ee/page/project/sub_menus/settings.rb +42 -0
  93. data/qa/ee/page/project/wiki/show.rb +31 -0
  94. data/qa/ee/resource/board/base_board.rb +26 -0
  95. data/qa/ee/resource/board/board_list/group/board_list.rb +57 -0
  96. data/qa/ee/resource/board/board_list/project/assignee_board_list.rb +23 -0
  97. data/qa/ee/resource/board/board_list/project/base_board_list.rb +50 -0
  98. data/qa/ee/resource/board/board_list/project/label_board_list.rb +28 -0
  99. data/qa/ee/resource/board/board_list/project/milestone_board_list.rb +28 -0
  100. data/qa/ee/resource/board/group_board.rb +25 -0
  101. data/qa/ee/resource/board/project_board.rb +25 -0
  102. data/qa/ee/resource/epic.rb +60 -0
  103. data/qa/ee/resource/geo/node.rb +31 -0
  104. data/qa/ee/resource/group_label.rb +50 -0
  105. data/qa/ee/resource/license.rb +21 -0
  106. data/qa/ee/resource/project_milestone.rb +20 -0
  107. data/qa/ee/resource/settings/elasticsearch.rb +60 -0
  108. data/qa/ee/runtime/env.rb +30 -0
  109. data/qa/ee/runtime/geo.rb +28 -0
  110. data/qa/ee/runtime/saml.rb +37 -0
  111. data/qa/ee/scenario/test/geo.rb +211 -0
  112. data/qa/ee/scenario/test/integration/elasticsearch.rb +15 -0
  113. data/qa/ee/scenario/test/integration/group_saml.rb +17 -0
  114. data/qa/ee/scenario/test/sanity/selectors.rb +17 -0
  115. data/qa/ee/strategy.rb +28 -0
  116. data/qa/fixtures/auto_devops_rack/Dockerfile +9 -0
  117. data/qa/fixtures/auto_devops_rack/Gemfile +3 -0
  118. data/qa/fixtures/auto_devops_rack/Gemfile.lock +15 -0
  119. data/qa/fixtures/auto_devops_rack/Rakefile +7 -0
  120. data/qa/fixtures/auto_devops_rack/config.ru +1 -0
  121. data/qa/fixtures/ldap/admin/1_add_nodes.ldif +7 -0
  122. data/qa/fixtures/ldap/admin/2_add_users.ldif +63 -0
  123. data/qa/fixtures/ldap/admin/3_add_groups.ldif +16 -0
  124. data/qa/fixtures/ldap/non_admin/1_add_nodes.ldif +7 -0
  125. data/qa/fixtures/ldap/non_admin/2_add_users.ldif +61 -0
  126. data/qa/fixtures/ldap/non_admin/3_add_groups.ldif +16 -0
  127. data/qa/fixtures/monitored_auto_devops/.gitlab-ci.yml +337 -0
  128. data/qa/flow/login.rb +39 -0
  129. data/qa/flow/project.rb +19 -0
  130. data/qa/flow/saml.rb +72 -0
  131. data/qa/flow/user.rb +26 -0
  132. data/qa/git/location.rb +34 -0
  133. data/qa/git/repository.rb +269 -0
  134. data/qa/page/admin/menu.rb +110 -0
  135. data/qa/page/admin/new_session.rb +22 -0
  136. data/qa/page/admin/overview/groups/edit.rb +23 -0
  137. data/qa/page/admin/overview/groups/index.rb +32 -0
  138. data/qa/page/admin/overview/groups/show.rb +21 -0
  139. data/qa/page/admin/overview/users/index.rb +35 -0
  140. data/qa/page/admin/overview/users/show.rb +31 -0
  141. data/qa/page/admin/settings/component/account_and_limit.rb +26 -0
  142. data/qa/page/admin/settings/component/ip_limits.rb +30 -0
  143. data/qa/page/admin/settings/component/outbound_requests.rb +33 -0
  144. data/qa/page/admin/settings/component/performance_bar.rb +27 -0
  145. data/qa/page/admin/settings/component/repository_storage.rb +26 -0
  146. data/qa/page/admin/settings/general.rb +23 -0
  147. data/qa/page/admin/settings/metrics_and_profiling.rb +23 -0
  148. data/qa/page/admin/settings/network.rb +30 -0
  149. data/qa/page/admin/settings/repository.rb +23 -0
  150. data/qa/page/alert/auto_devops_alert.rb +13 -0
  151. data/qa/page/base.rb +348 -0
  152. data/qa/page/component/breadcrumbs.rb +19 -0
  153. data/qa/page/component/ci_badge_link.rb +49 -0
  154. data/qa/page/component/clone_panel.rb +38 -0
  155. data/qa/page/component/confirm_modal.rb +25 -0
  156. data/qa/page/component/dropdown_filter.rb +16 -0
  157. data/qa/page/component/dropzone.rb +33 -0
  158. data/qa/page/component/groups_filter.rb +37 -0
  159. data/qa/page/component/issuable/common.rb +31 -0
  160. data/qa/page/component/lazy_loader.rb +15 -0
  161. data/qa/page/component/legacy_clone_panel.rb +47 -0
  162. data/qa/page/component/note.rb +84 -0
  163. data/qa/page/component/select2.rb +48 -0
  164. data/qa/page/component/users_select.rb +14 -0
  165. data/qa/page/component/web_ide/alert.rb +27 -0
  166. data/qa/page/dashboard/groups.rb +34 -0
  167. data/qa/page/dashboard/projects.rb +37 -0
  168. data/qa/page/dashboard/snippet/index.rb +21 -0
  169. data/qa/page/dashboard/snippet/new.rb +70 -0
  170. data/qa/page/dashboard/snippet/show.rb +63 -0
  171. data/qa/page/dashboard/welcome.rb +17 -0
  172. data/qa/page/element.rb +55 -0
  173. data/qa/page/file/edit.rb +13 -0
  174. data/qa/page/file/form.rb +49 -0
  175. data/qa/page/file/shared/commit_button.rb +25 -0
  176. data/qa/page/file/shared/commit_message.rb +21 -0
  177. data/qa/page/file/shared/editor.rb +33 -0
  178. data/qa/page/file/show.rb +36 -0
  179. data/qa/page/group/menu.rb +52 -0
  180. data/qa/page/group/new.rb +37 -0
  181. data/qa/page/group/settings/general.rb +115 -0
  182. data/qa/page/group/show.rb +74 -0
  183. data/qa/page/group/sub_menus/common.rb +27 -0
  184. data/qa/page/group/sub_menus/members.rb +45 -0
  185. data/qa/page/issuable/sidebar.rb +27 -0
  186. data/qa/page/label/index.rb +34 -0
  187. data/qa/page/label/new.rb +32 -0
  188. data/qa/page/layout/banner.rb +19 -0
  189. data/qa/page/layout/performance_bar.rb +41 -0
  190. data/qa/page/main/login.rb +181 -0
  191. data/qa/page/main/menu.rb +150 -0
  192. data/qa/page/main/oauth.rb +21 -0
  193. data/qa/page/main/sign_up.rb +37 -0
  194. data/qa/page/main/terms.rb +21 -0
  195. data/qa/page/mattermost/login.rb +28 -0
  196. data/qa/page/mattermost/main.rb +15 -0
  197. data/qa/page/merge_request/new.rb +68 -0
  198. data/qa/page/merge_request/show.rb +232 -0
  199. data/qa/page/profile/emails.rb +29 -0
  200. data/qa/page/profile/menu.rb +52 -0
  201. data/qa/page/profile/password.rb +23 -0
  202. data/qa/page/profile/personal_access_tokens.rb +67 -0
  203. data/qa/page/profile/ssh_keys.rb +42 -0
  204. data/qa/page/profile/two_factor_auth.rb +17 -0
  205. data/qa/page/project/activity.rb +17 -0
  206. data/qa/page/project/branches/show.rb +56 -0
  207. data/qa/page/project/commit/show.rb +32 -0
  208. data/qa/page/project/fork/new.rb +19 -0
  209. data/qa/page/project/import/github.rb +78 -0
  210. data/qa/page/project/issue/index.rb +71 -0
  211. data/qa/page/project/issue/new.rb +35 -0
  212. data/qa/page/project/issue/show.rb +168 -0
  213. data/qa/page/project/job/show.rb +53 -0
  214. data/qa/page/project/menu.rb +43 -0
  215. data/qa/page/project/milestone/index.rb +19 -0
  216. data/qa/page/project/milestone/new.rb +29 -0
  217. data/qa/page/project/new.rb +76 -0
  218. data/qa/page/project/operations/environments/index.rb +21 -0
  219. data/qa/page/project/operations/environments/show.rb +23 -0
  220. data/qa/page/project/operations/kubernetes/add.rb +21 -0
  221. data/qa/page/project/operations/kubernetes/add_existing.rb +46 -0
  222. data/qa/page/project/operations/kubernetes/index.rb +25 -0
  223. data/qa/page/project/operations/kubernetes/show.rb +81 -0
  224. data/qa/page/project/operations/metrics/show.rb +87 -0
  225. data/qa/page/project/pipeline/index.rb +43 -0
  226. data/qa/page/project/pipeline/show.rb +76 -0
  227. data/qa/page/project/settings/advanced.rb +75 -0
  228. data/qa/page/project/settings/auto_devops.rb +21 -0
  229. data/qa/page/project/settings/ci_cd.rb +39 -0
  230. data/qa/page/project/settings/ci_variables.rb +56 -0
  231. data/qa/page/project/settings/common.rb +13 -0
  232. data/qa/page/project/settings/deploy_keys.rb +69 -0
  233. data/qa/page/project/settings/deploy_tokens.rb +64 -0
  234. data/qa/page/project/settings/main.rb +60 -0
  235. data/qa/page/project/settings/members.rb +62 -0
  236. data/qa/page/project/settings/merge_request.rb +32 -0
  237. data/qa/page/project/settings/mirroring_repositories.rb +132 -0
  238. data/qa/page/project/settings/protected_branches.rb +72 -0
  239. data/qa/page/project/settings/repository.rb +55 -0
  240. data/qa/page/project/settings/runners.rb +37 -0
  241. data/qa/page/project/settings/visibility_features_permissions.rb +26 -0
  242. data/qa/page/project/show.rb +165 -0
  243. data/qa/page/project/sub_menus/ci_cd.rb +27 -0
  244. data/qa/page/project/sub_menus/common.rb +19 -0
  245. data/qa/page/project/sub_menus/issues.rb +63 -0
  246. data/qa/page/project/sub_menus/operations.rb +58 -0
  247. data/qa/page/project/sub_menus/project.rb +29 -0
  248. data/qa/page/project/sub_menus/repository.rb +48 -0
  249. data/qa/page/project/sub_menus/settings.rb +81 -0
  250. data/qa/page/project/web_ide/edit.rb +139 -0
  251. data/qa/page/project/wiki/edit.rb +21 -0
  252. data/qa/page/project/wiki/git_access.rb +13 -0
  253. data/qa/page/project/wiki/new.rb +61 -0
  254. data/qa/page/project/wiki/show.rb +31 -0
  255. data/qa/page/search/results.rb +55 -0
  256. data/qa/page/settings/common.rb +26 -0
  257. data/qa/page/sub_menus/common.rb +50 -0
  258. data/qa/page/validatable.rb +21 -0
  259. data/qa/page/validator.rb +52 -0
  260. data/qa/page/view.rb +59 -0
  261. data/qa/resource/api_fabricator.rb +137 -0
  262. data/qa/resource/base.rb +170 -0
  263. data/qa/resource/ci_variable.rb +57 -0
  264. data/qa/resource/deploy_key.rb +39 -0
  265. data/qa/resource/deploy_token.rb +48 -0
  266. data/qa/resource/events/base.rb +42 -0
  267. data/qa/resource/events/project.rb +25 -0
  268. data/qa/resource/file.rb +63 -0
  269. data/qa/resource/fork.rb +92 -0
  270. data/qa/resource/group.rb +83 -0
  271. data/qa/resource/issue.rb +61 -0
  272. data/qa/resource/kubernetes_cluster/base.rb +40 -0
  273. data/qa/resource/kubernetes_cluster/project_cluster.rb +72 -0
  274. data/qa/resource/label.rb +61 -0
  275. data/qa/resource/members.rb +36 -0
  276. data/qa/resource/merge_request.rb +105 -0
  277. data/qa/resource/merge_request_from_fork.rb +33 -0
  278. data/qa/resource/personal_access_token.rb +31 -0
  279. data/qa/resource/project.rb +179 -0
  280. data/qa/resource/project_imported_from_github.rb +31 -0
  281. data/qa/resource/project_member.rb +35 -0
  282. data/qa/resource/project_milestone.rb +34 -0
  283. data/qa/resource/protected_branch.rb +76 -0
  284. data/qa/resource/repository/commit.rb +81 -0
  285. data/qa/resource/repository/project_push.rb +44 -0
  286. data/qa/resource/repository/push.rb +113 -0
  287. data/qa/resource/repository/wiki_push.rb +38 -0
  288. data/qa/resource/runner.rb +75 -0
  289. data/qa/resource/sandbox.rb +79 -0
  290. data/qa/resource/settings/hashed_storage.rb +26 -0
  291. data/qa/resource/snippet.rb +30 -0
  292. data/qa/resource/ssh_key.rb +57 -0
  293. data/qa/resource/tag.rb +30 -0
  294. data/qa/resource/user.rb +150 -0
  295. data/qa/resource/user_gpg.rb +46 -0
  296. data/qa/resource/visibility.rb +17 -0
  297. data/qa/resource/wiki.rb +48 -0
  298. data/qa/runtime/address.rb +29 -0
  299. data/qa/runtime/api/client.rb +90 -0
  300. data/qa/runtime/api/request.rb +49 -0
  301. data/qa/runtime/application_settings.rb +46 -0
  302. data/qa/runtime/browser.rb +220 -0
  303. data/qa/runtime/env.rb +330 -0
  304. data/qa/runtime/feature.rb +87 -0
  305. data/qa/runtime/fixtures.rb +43 -0
  306. data/qa/runtime/gpg.rb +37 -0
  307. data/qa/runtime/ip_address.rb +33 -0
  308. data/qa/runtime/key/base.rb +38 -0
  309. data/qa/runtime/key/ecdsa.rb +13 -0
  310. data/qa/runtime/key/ed25519.rb +13 -0
  311. data/qa/runtime/key/rsa.rb +13 -0
  312. data/qa/runtime/logger.rb +24 -0
  313. data/qa/runtime/mail_hog.rb +15 -0
  314. data/qa/runtime/namespace.rb +27 -0
  315. data/qa/runtime/path.rb +13 -0
  316. data/qa/runtime/release.rb +40 -0
  317. data/qa/runtime/scenario.rb +38 -0
  318. data/qa/runtime/search.rb +124 -0
  319. data/qa/runtime/user.rb +57 -0
  320. data/qa/scenario/actable.rb +25 -0
  321. data/qa/scenario/bootable.rb +53 -0
  322. data/qa/scenario/shared_attributes.rb +14 -0
  323. data/qa/scenario/template.rb +64 -0
  324. data/qa/scenario/test/instance.rb +36 -0
  325. data/qa/scenario/test/instance/all.rb +18 -0
  326. data/qa/scenario/test/instance/smoke.rb +20 -0
  327. data/qa/scenario/test/integration/github.rb +20 -0
  328. data/qa/scenario/test/integration/instance_saml.rb +13 -0
  329. data/qa/scenario/test/integration/kubernetes.rb +13 -0
  330. data/qa/scenario/test/integration/ldap_no_server.rb +13 -0
  331. data/qa/scenario/test/integration/ldap_no_tls.rb +13 -0
  332. data/qa/scenario/test/integration/ldap_tls.rb +13 -0
  333. data/qa/scenario/test/integration/mattermost.rb +26 -0
  334. data/qa/scenario/test/integration/object_storage.rb +13 -0
  335. data/qa/scenario/test/integration/smtp.rb +13 -0
  336. data/qa/scenario/test/sanity/framework.rb +19 -0
  337. data/qa/scenario/test/sanity/selectors.rb +61 -0
  338. data/qa/service/cluster_provider/base.rb +41 -0
  339. data/qa/service/cluster_provider/gcloud.rb +115 -0
  340. data/qa/service/cluster_provider/k3d.rb +134 -0
  341. data/qa/service/cluster_provider/k3s.rb +94 -0
  342. data/qa/service/cluster_provider/minikube.rb +26 -0
  343. data/qa/service/docker_run/base.rb +47 -0
  344. data/qa/service/docker_run/gitlab_runner.rb +58 -0
  345. data/qa/service/docker_run/jenkins.rb +43 -0
  346. data/qa/service/docker_run/k3s.rb +46 -0
  347. data/qa/service/docker_run/ldap.rb +41 -0
  348. data/qa/service/docker_run/maven.rb +44 -0
  349. data/qa/service/docker_run/node_js.rb +38 -0
  350. data/qa/service/docker_run/saml_idp.rb +69 -0
  351. data/qa/service/kubernetes_cluster.rb +107 -0
  352. data/qa/service/omnibus.rb +23 -0
  353. data/qa/service/shellout.rb +31 -0
  354. data/qa/specs/features/api/1_manage/.gitkeep +0 -0
  355. data/qa/specs/features/api/1_manage/rate_limits_spec.rb +17 -0
  356. data/qa/specs/features/api/1_manage/users_spec.rb +35 -0
  357. data/qa/specs/features/api/2_plan/.gitkeep +0 -0
  358. data/qa/specs/features/api/2_plan/closes_issue_via_pushing_a_commit_spec.rb +48 -0
  359. data/qa/specs/features/api/3_create/repository/files_spec.rb +106 -0
  360. data/qa/specs/features/api/3_create/repository/project_archive_compare_spec.rb +74 -0
  361. data/qa/specs/features/api/4_verify/.gitkeep +0 -0
  362. data/qa/specs/features/api/5_package/.gitkeep +0 -0
  363. data/qa/specs/features/api/6_release/.gitkeep +0 -0
  364. data/qa/specs/features/api/7_configure/.gitkeep +0 -0
  365. data/qa/specs/features/browser_ui/1_manage/group/create_group_with_mattermost_team_spec.rb +20 -0
  366. data/qa/specs/features/browser_ui/1_manage/group/transfer_project_spec.rb +56 -0
  367. data/qa/specs/features/browser_ui/1_manage/login/log_in_spec.rb +25 -0
  368. data/qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb +15 -0
  369. data/qa/specs/features/browser_ui/1_manage/login/log_into_mattermost_via_gitlab_spec.rb +20 -0
  370. data/qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb +19 -0
  371. data/qa/specs/features/browser_ui/1_manage/login/register_spec.rb +27 -0
  372. data/qa/specs/features/browser_ui/1_manage/project/add_project_member_spec.rb +24 -0
  373. data/qa/specs/features/browser_ui/1_manage/project/create_project_spec.rb +23 -0
  374. data/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb +57 -0
  375. data/qa/specs/features/browser_ui/1_manage/project/import_github_repo_spec.rb +117 -0
  376. data/qa/specs/features/browser_ui/1_manage/project/view_project_activity_spec.rb +22 -0
  377. data/qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb +46 -0
  378. data/qa/specs/features/browser_ui/2_plan/issue/check_mentions_for_xss_spec.rb +45 -0
  379. data/qa/specs/features/browser_ui/2_plan/issue/collapse_comments_in_discussions_spec.rb +35 -0
  380. data/qa/specs/features/browser_ui/2_plan/issue/comment_issue_spec.rb +29 -0
  381. data/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +40 -0
  382. data/qa/specs/features/browser_ui/2_plan/issue/export_as_csv_spec.rb +40 -0
  383. data/qa/specs/features/browser_ui/2_plan/issue/filter_issue_comments_spec.rb +36 -0
  384. data/qa/specs/features/browser_ui/2_plan/issue/issue_suggestions_spec.rb +28 -0
  385. data/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +35 -0
  386. data/qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb +64 -0
  387. data/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb +26 -0
  388. data/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb +49 -0
  389. data/qa/specs/features/browser_ui/3_create/merge_request/squash_merge_request_spec.rb +52 -0
  390. data/qa/specs/features/browser_ui/3_create/merge_request/view_merge_request_diff_patch_spec.rb +35 -0
  391. data/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +68 -0
  392. data/qa/specs/features/browser_ui/3_create/repository/add_list_delete_branches_spec.rb +88 -0
  393. data/qa/specs/features/browser_ui/3_create/repository/add_ssh_key_spec.rb +30 -0
  394. data/qa/specs/features/browser_ui/3_create/repository/clone_spec.rb +51 -0
  395. data/qa/specs/features/browser_ui/3_create/repository/create_edit_delete_file_via_web_spec.rb +58 -0
  396. data/qa/specs/features/browser_ui/3_create/repository/move_project_create_fork_spec.rb +53 -0
  397. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_http_spec.rb +48 -0
  398. data/qa/specs/features/browser_ui/3_create/repository/protocol_v2_push_ssh_spec.rb +74 -0
  399. data/qa/specs/features/browser_ui/3_create/repository/push_http_private_token_spec.rb +34 -0
  400. data/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +43 -0
  401. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb +81 -0
  402. data/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb +44 -0
  403. data/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +63 -0
  404. data/qa/specs/features/browser_ui/3_create/repository/use_ssh_key_spec.rb +37 -0
  405. data/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb +66 -0
  406. data/qa/specs/features/browser_ui/3_create/snippet/create_snippet_spec.rb +29 -0
  407. data/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +69 -0
  408. data/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb +43 -0
  409. data/qa/specs/features/browser_ui/3_create/wiki/create_edit_clone_push_wiki_spec.rb +42 -0
  410. data/qa/specs/features/browser_ui/4_verify/ci_variable/add_remove_ci_variable_spec.rb +60 -0
  411. data/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +89 -0
  412. data/qa/specs/features/browser_ui/4_verify/runner/register_runner_spec.rb +34 -0
  413. data/qa/specs/features/browser_ui/5_package/.gitkeep +0 -0
  414. data/qa/specs/features/browser_ui/6_release/deploy_key/add_deploy_key_spec.rb +28 -0
  415. data/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +102 -0
  416. data/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb +22 -0
  417. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_dependent_relationship_spec.rb +122 -0
  418. data/qa/specs/features/browser_ui/6_release/pipeline/parent_child_pipelines_independent_relationship_spec.rb +121 -0
  419. data/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +147 -0
  420. data/qa/specs/features/browser_ui/7_configure/kubernetes/kubernetes_integration_spec.rb +38 -0
  421. data/qa/specs/features/browser_ui/8_monitor/apm/dashboards_spec.rb +97 -0
  422. data/qa/specs/features/browser_ui/non_devops/performance_bar_spec.rb +38 -0
  423. data/qa/specs/features/ee/api/1_manage/.gitkeep +0 -0
  424. data/qa/specs/features/ee/api/2_plan/.gitkeep +0 -0
  425. data/qa/specs/features/ee/api/2_plan/epics_milestone_dates_spec.rb +173 -0
  426. data/qa/specs/features/ee/api/3_create/.gitkeep +0 -0
  427. data/qa/specs/features/ee/api/4_verify/.gitkeep +0 -0
  428. data/qa/specs/features/ee/api/5_package/.gitkeep +0 -0
  429. data/qa/specs/features/ee/api/6_release/.gitkeep +0 -0
  430. data/qa/specs/features/ee/api/7_configure/.gitkeep +0 -0
  431. data/qa/specs/features/ee/api/enablement/elasticsearch/advanced_global_advanced_syntax_search_spec.rb +70 -0
  432. data/qa/specs/features/ee/api/enablement/elasticsearch/elasticsearch_api_spec.rb +84 -0
  433. data/qa/specs/features/ee/api/geo/geo_nodes_spec.rb +91 -0
  434. data/qa/specs/features/ee/browser_ui/1_manage/.gitkeep +0 -0
  435. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb +155 -0
  436. data/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_2_spec.rb +103 -0
  437. data/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb +141 -0
  438. data/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb +183 -0
  439. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb +115 -0
  440. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_group_managed_accounts_spec.rb +178 -0
  441. data/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb +87 -0
  442. data/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb +107 -0
  443. data/qa/specs/features/ee/browser_ui/1_manage/insights/default_insights_spec.rb +48 -0
  444. data/qa/specs/features/ee/browser_ui/1_manage/instance/instance_audit_logs_spec.rb +124 -0
  445. data/qa/specs/features/ee/browser_ui/1_manage/ldap/admin_ldap_sync_spec.rb +63 -0
  446. data/qa/specs/features/ee/browser_ui/1_manage/project/project_audit_logs_spec.rb +127 -0
  447. data/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb +165 -0
  448. data/qa/specs/features/ee/browser_ui/2_plan/.gitkeep +0 -0
  449. data/qa/specs/features/ee/browser_ui/2_plan/burndown_chart/burndown_chart_spec.rb +46 -0
  450. data/qa/specs/features/ee/browser_ui/2_plan/custom_email/custom_email_spec.rb +28 -0
  451. data/qa/specs/features/ee/browser_ui/2_plan/epic/epics_management_spec.rb +96 -0
  452. data/qa/specs/features/ee/browser_ui/2_plan/epic/promote_issue_to_epic_spec.rb +40 -0
  453. data/qa/specs/features/ee/browser_ui/2_plan/epic/roadmap_spec.rb +31 -0
  454. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configurable_issue_board_spec.rb +28 -0
  455. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/configure_issue_board_by_label_spec.rb +44 -0
  456. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/create_group_issue_board_spec.rb +31 -0
  457. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/focus_mode_spec.rb +28 -0
  458. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/group_issue_boards_spec.rb +48 -0
  459. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb +103 -0
  460. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/read_only_board_configuration_spec.rb +37 -0
  461. data/qa/specs/features/ee/browser_ui/2_plan/issue_boards/sum_of_issues_weights_spec.rb +40 -0
  462. data/qa/specs/features/ee/browser_ui/2_plan/issues_analytics/issues_analytics_spec.rb +35 -0
  463. data/qa/specs/features/ee/browser_ui/2_plan/issues_weight/issue_weight_visualization_spec.rb +46 -0
  464. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/four_assignees_spec.rb +45 -0
  465. data/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb +70 -0
  466. data/qa/specs/features/ee/browser_ui/2_plan/related_issues/related_issues_spec.rb +50 -0
  467. data/qa/specs/features/ee/browser_ui/2_plan/scoped_labels/editing_scoped_labels_spec.rb +58 -0
  468. data/qa/specs/features/ee/browser_ui/3_create/.gitkeep +0 -0
  469. data/qa/specs/features/ee/browser_ui/3_create/contribution_analytics_spec.rb +53 -0
  470. data/qa/specs/features/ee/browser_ui/3_create/design_management_spec.rb +29 -0
  471. data/qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb +158 -0
  472. data/qa/specs/features/ee/browser_ui/3_create/merge_request/add_batch_comments_in_merge_request_spec.rb +80 -0
  473. data/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb +97 -0
  474. data/qa/specs/features/ee/browser_ui/3_create/repository/assign_code_owners_spec.rb +83 -0
  475. data/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb +75 -0
  476. data/qa/specs/features/ee/browser_ui/3_create/repository/file_locking_spec.rb +161 -0
  477. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_http_spec.rb +52 -0
  478. data/qa/specs/features/ee/browser_ui/3_create/repository/pull_mirroring_over_ssh_with_key_spec.rb +71 -0
  479. data/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb +202 -0
  480. data/qa/specs/features/ee/browser_ui/3_create/repository/restrict_push_protected_branch_spec.rb +120 -0
  481. data/qa/specs/features/ee/browser_ui/3_create/web_ide/web_terminal_spec.rb +80 -0
  482. data/qa/specs/features/ee/browser_ui/4_verify/.gitkeep +0 -0
  483. data/qa/specs/features/ee/browser_ui/5_package/.gitkeep +0 -0
  484. data/qa/specs/features/ee/browser_ui/5_package/maven_repository_spec.rb +102 -0
  485. data/qa/specs/features/ee/browser_ui/5_package/npm_registry_spec.rb +75 -0
  486. data/qa/specs/features/ee/browser_ui/6_release/.gitkeep +0 -0
  487. data/qa/specs/features/ee/browser_ui/6_release/multi-project_pipelines_spec.rb +98 -0
  488. data/qa/specs/features/ee/browser_ui/6_release/pipelines_for_merged_results_and_merge_trains_spec.rb +137 -0
  489. data/qa/specs/features/ee/browser_ui/7_configure/.gitkeep +0 -0
  490. data/qa/specs/features/ee/browser_ui/8_monitor/.gitkeep +0 -0
  491. data/qa/specs/features/ee/browser_ui/8_monitor/apm/metrics_spec.rb +68 -0
  492. data/qa/specs/features/ee/browser_ui/8_monitor/health/alerting_spec.rb +106 -0
  493. data/qa/specs/features/ee/browser_ui/8_monitor/health/cluster_health_spec.rb +52 -0
  494. data/qa/specs/features/ee/browser_ui/enablement/elasticsearch/elasticsearch_reindexing_spec.rb +78 -0
  495. data/qa/specs/features/ee/browser_ui/geo/attachment_replication_spec.rb +63 -0
  496. data/qa/specs/features/ee/browser_ui/geo/database_delete_replication_spec.rb +60 -0
  497. data/qa/specs/features/ee/browser_ui/geo/http_push_spec.rb +121 -0
  498. data/qa/specs/features/ee/browser_ui/geo/http_push_to_secondary_spec.rb +174 -0
  499. data/qa/specs/features/ee/browser_ui/geo/rename_replication_spec.rb +75 -0
  500. data/qa/specs/features/ee/browser_ui/geo/ssh_push_spec.rb +151 -0
  501. data/qa/specs/features/ee/browser_ui/geo/ssh_push_to_secondary_spec.rb +189 -0
  502. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_spec.rb +68 -0
  503. data/qa/specs/features/ee/browser_ui/geo/wiki_http_push_to_secondary_spec.rb +105 -0
  504. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_spec.rb +93 -0
  505. data/qa/specs/features/ee/browser_ui/geo/wiki_ssh_push_to_secondary_spec.rb +110 -0
  506. data/qa/specs/features/ee/browser_ui/secure/create_merge_request_with_secure_spec.rb +79 -0
  507. data/qa/specs/features/ee/browser_ui/secure/license_compliance_spec.rb +98 -0
  508. data/qa/specs/features/ee/browser_ui/secure/merge_request_license_widget_spec.rb +134 -0
  509. data/qa/specs/features/ee/browser_ui/secure/security_reports_spec.rb +143 -0
  510. data/qa/specs/features/ee/browser_ui/secure/vulnerability_management_spec.rb +101 -0
  511. data/qa/specs/features/sanity/framework_spec.rb +21 -0
  512. data/qa/specs/helpers/quarantine.rb +84 -0
  513. data/qa/specs/loop_runner.rb +21 -0
  514. data/qa/specs/parallel_runner.rb +33 -0
  515. data/qa/specs/runner.rb +78 -0
  516. data/qa/support/api.rb +71 -0
  517. data/qa/support/dates.rb +21 -0
  518. data/qa/support/page/logging.rb +178 -0
  519. data/qa/support/repeater.rb +65 -0
  520. data/qa/support/retrier.rb +64 -0
  521. data/qa/support/wait_for_requests.rb +25 -0
  522. data/qa/support/waiter.rb +39 -0
  523. data/qa/tools/delete_subgroups.rb +66 -0
  524. data/qa/tools/delete_test_ssh_keys.rb +61 -0
  525. data/qa/tools/generate_perf_testdata.rb +301 -0
  526. data/qa/tools/revoke_all_personal_access_tokens.rb +44 -0
  527. data/qa/vendor/jenkins/page/base.rb +24 -0
  528. data/qa/vendor/jenkins/page/configure.rb +48 -0
  529. data/qa/vendor/jenkins/page/configure_job.rb +72 -0
  530. data/qa/vendor/jenkins/page/last_job_console.rb +44 -0
  531. data/qa/vendor/jenkins/page/login.rb +31 -0
  532. data/qa/vendor/jenkins/page/new_credentials.rb +50 -0
  533. data/qa/vendor/jenkins/page/new_job.rb +38 -0
  534. data/qa/vendor/saml_idp/page/base.rb +14 -0
  535. data/qa/vendor/saml_idp/page/login.rb +31 -0
  536. metadata +835 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: dd40a0ffd6214eeb28234cfef9b4e735f57570cdecddf5e6a0cca422353ed5fc
4
+ data.tar.gz: 93efdc7b1093ab7226bf268d862bdba9c66fa2764e4165e0d70a49344d9de4ec
5
+ SHA512:
6
+ metadata.gz: bc4380dc722dc70263eea4cd6720a753a98438dc60ee18f2a949e8b74532732b07d458b486601b37ce3a68ed1533ebbbf7f6725637462622caf3464cfc217292
7
+ data.tar.gz: 5c25a44ad165c00fa36233d5bae6c56adb55e4fb1eec8c713c51deb0e6ed4bfb6207d9e73d776c443d4cf9aae9e132baeb918819e68cea47ec42e60baa782171
@@ -0,0 +1,4 @@
1
+ tmp/
2
+ .ruby-version
3
+ .ruby-gemset
4
+ urls.yml
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --format documentation
3
+ --require spec_helper
@@ -0,0 +1,5 @@
1
+ --color
2
+ --format documentation
3
+ --format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
4
+ --format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
5
+ --require spec_helper
@@ -0,0 +1,68 @@
1
+ FROM ruby:2.6-stretch
2
+ LABEL maintainer="GitLab Quality Department <quality@gitlab.com>"
3
+ ENV DEBIAN_FRONTEND noninteractive
4
+
5
+ ##
6
+ # Add support for stretch-backports
7
+ #
8
+ RUN echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list
9
+
10
+ ##
11
+ # Update APT sources and install some dependencies
12
+ #
13
+ RUN sed -i "s/httpredir.debian.org/ftp.us.debian.org/" /etc/apt/sources.list
14
+ RUN apt-get update && apt-get install -y wget unzip xvfb lsb-release
15
+
16
+ ##
17
+ # Install some packages from backports
18
+ #
19
+ RUN apt-get -y -t stretch-backports install git git-lfs
20
+
21
+ ##
22
+ # Install Docker
23
+ #
24
+ RUN wget -q https://download.docker.com/linux/static/stable/x86_64/docker-17.09.0-ce.tgz && \
25
+ tar -zxf docker-17.09.0-ce.tgz && mv docker/docker /usr/local/bin/docker && \
26
+ rm docker-17.09.0-ce.tgz
27
+
28
+ ##
29
+ # Install Google Chrome version with headless support
30
+ #
31
+ RUN curl -sS -L https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
32
+ RUN echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list
33
+ RUN apt-get update -q && apt-get install -y google-chrome-stable && apt-get clean
34
+
35
+ ##
36
+ # Install chromedriver to make it work with Selenium
37
+ #
38
+ RUN wget -q https://chromedriver.storage.googleapis.com/$(wget -q -O - https://chromedriver.storage.googleapis.com/LATEST_RELEASE)/chromedriver_linux64.zip
39
+ RUN unzip chromedriver_linux64.zip -d /usr/local/bin
40
+
41
+ ##
42
+ # Install K3d local cluster support
43
+ # https://github.com/rancher/k3d
44
+ #
45
+ RUN curl -s https://raw.githubusercontent.com/rancher/k3d/master/install.sh | TAG=v1.3.4 bash
46
+
47
+ ##
48
+ # Install gcloud and kubectl CLI used in Auto DevOps test to create K8s
49
+ # clusters
50
+ #
51
+ RUN export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" && \
52
+ echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list && \
53
+ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
54
+ apt-get update -y && apt-get install google-cloud-sdk kubectl -y
55
+
56
+ WORKDIR /home/gitlab/qa
57
+ COPY ./qa/Gemfile* /home/gitlab/qa/
58
+ COPY ./config/initializers/0_inject_enterprise_edition_module.rb /home/gitlab/config/initializers/
59
+ # Copy VERSION to ensure the COPY succeeds to copy at least one file since ee/app/models/license.rb isn't present in FOSS
60
+ # The [b] part makes ./ee/app/models/license.r[b] a pattern that is allowed to return no files (which is the case in FOSS)
61
+ COPY VERSION ./ee/app/models/license.r[b] /home/gitlab/ee/app/models/
62
+ COPY ./lib/gitlab.rb /home/gitlab/lib/
63
+ COPY ./lib/gitlab/utils.rb /home/gitlab/lib/gitlab/
64
+ COPY ./INSTALLATION_TYPE ./VERSION /home/gitlab/
65
+ RUN cd /home/gitlab/qa/ && bundle install --jobs=$(nproc) --retry=3 --quiet
66
+ COPY ./qa /home/gitlab/qa
67
+
68
+ ENTRYPOINT ["bin/test"]
data/Gemfile ADDED
@@ -0,0 +1,23 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'gitlab-qa'
4
+ gem 'activesupport', '~> 6.0.2.2' # This should stay in sync with the root's Gemfile
5
+ gem 'capybara', '~> 3.29.0'
6
+ gem 'capybara-screenshot', '~> 1.0.23'
7
+ gem 'rake', '~> 12.3.0'
8
+ gem 'rspec', '~> 3.7'
9
+ gem 'selenium-webdriver', '~> 3.12'
10
+ gem 'airborne', '~> 0.2.13'
11
+ gem 'nokogiri', '~> 1.10.9'
12
+ gem 'rspec-retry', '~> 0.6.1'
13
+ gem 'rspec_junit_formatter', '~> 0.4.1'
14
+ gem 'faker', '~> 1.6', '>= 1.6.6'
15
+ gem 'knapsack', '~> 1.17'
16
+ gem 'parallel_tests', '~> 2.29'
17
+
18
+ group :test do
19
+ gem 'pry-byebug', '~> 3.5.1', platform: :mri
20
+ gem "ruby-debug-ide", "~> 0.7.0"
21
+ gem "debase", "~> 0.2.4.1"
22
+ gem 'timecop', '~> 0.9.1'
23
+ end
@@ -0,0 +1,137 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ activesupport (6.0.2.2)
5
+ concurrent-ruby (~> 1.0, >= 1.0.2)
6
+ i18n (>= 0.7, < 2)
7
+ minitest (~> 5.1)
8
+ tzinfo (~> 1.1)
9
+ zeitwerk (~> 2.2)
10
+ addressable (2.7.0)
11
+ public_suffix (>= 2.0.2, < 5.0)
12
+ airborne (0.2.13)
13
+ activesupport
14
+ rack
15
+ rack-test (~> 0.6, >= 0.6.2)
16
+ rest-client (>= 1.7.3, < 3.0)
17
+ rspec (~> 3.1)
18
+ byebug (9.1.0)
19
+ capybara (3.29.0)
20
+ addressable
21
+ mini_mime (>= 0.1.3)
22
+ nokogiri (~> 1.8)
23
+ rack (>= 1.6.0)
24
+ rack-test (>= 0.6.3)
25
+ regexp_parser (~> 1.5)
26
+ xpath (~> 3.2)
27
+ capybara-screenshot (1.0.23)
28
+ capybara (>= 1.0, < 4)
29
+ launchy
30
+ childprocess (3.0.0)
31
+ coderay (1.1.2)
32
+ concurrent-ruby (1.1.6)
33
+ debase (0.2.4.1)
34
+ debase-ruby_core_source (>= 0.10.2)
35
+ debase-ruby_core_source (0.10.6)
36
+ diff-lcs (1.3)
37
+ domain_name (0.5.20170404)
38
+ unf (>= 0.0.5, < 1.0.0)
39
+ faker (1.9.3)
40
+ i18n (>= 0.7)
41
+ gitlab-qa (4.0.0)
42
+ http-cookie (1.0.3)
43
+ domain_name (~> 0.5)
44
+ i18n (1.8.2)
45
+ concurrent-ruby (~> 1.0)
46
+ knapsack (1.17.1)
47
+ rake
48
+ launchy (2.4.3)
49
+ addressable (~> 2.3)
50
+ method_source (0.9.0)
51
+ mime-types (3.1)
52
+ mime-types-data (~> 3.2015)
53
+ mime-types-data (3.2016.0521)
54
+ mini_mime (1.0.2)
55
+ mini_portile2 (2.4.0)
56
+ minitest (5.14.0)
57
+ netrc (0.11.0)
58
+ nokogiri (1.10.9)
59
+ mini_portile2 (~> 2.4.0)
60
+ parallel (1.17.0)
61
+ parallel_tests (2.29.0)
62
+ parallel
63
+ pry (0.11.3)
64
+ coderay (~> 1.1.0)
65
+ method_source (~> 0.9.0)
66
+ pry-byebug (3.5.1)
67
+ byebug (~> 9.1)
68
+ pry (~> 0.10)
69
+ public_suffix (4.0.1)
70
+ rack (2.0.7)
71
+ rack-test (0.8.3)
72
+ rack (>= 1.0, < 3)
73
+ rake (12.3.0)
74
+ regexp_parser (1.6.0)
75
+ rest-client (2.0.2)
76
+ http-cookie (>= 1.0.2, < 2.0)
77
+ mime-types (>= 1.16, < 4.0)
78
+ netrc (~> 0.8)
79
+ rspec (3.7.0)
80
+ rspec-core (~> 3.7.0)
81
+ rspec-expectations (~> 3.7.0)
82
+ rspec-mocks (~> 3.7.0)
83
+ rspec-core (3.7.1)
84
+ rspec-support (~> 3.7.0)
85
+ rspec-expectations (3.7.0)
86
+ diff-lcs (>= 1.2.0, < 2.0)
87
+ rspec-support (~> 3.7.0)
88
+ rspec-mocks (3.7.0)
89
+ diff-lcs (>= 1.2.0, < 2.0)
90
+ rspec-support (~> 3.7.0)
91
+ rspec-retry (0.6.1)
92
+ rspec-core (> 3.3)
93
+ rspec-support (3.7.0)
94
+ rspec_junit_formatter (0.4.1)
95
+ rspec-core (>= 2, < 4, != 2.12.0)
96
+ ruby-debug-ide (0.7.2)
97
+ rake (>= 0.8.1)
98
+ rubyzip (1.3.0)
99
+ selenium-webdriver (3.142.6)
100
+ childprocess (>= 0.5, < 4.0)
101
+ rubyzip (>= 1.2.2)
102
+ thread_safe (0.3.6)
103
+ timecop (0.9.1)
104
+ tzinfo (1.2.6)
105
+ thread_safe (~> 0.1)
106
+ unf (0.1.4)
107
+ unf_ext
108
+ unf_ext (0.0.7.4)
109
+ xpath (3.2.0)
110
+ nokogiri (~> 1.8)
111
+ zeitwerk (2.3.0)
112
+
113
+ PLATFORMS
114
+ ruby
115
+
116
+ DEPENDENCIES
117
+ activesupport (~> 6.0.2.2)
118
+ airborne (~> 0.2.13)
119
+ capybara (~> 3.29.0)
120
+ capybara-screenshot (~> 1.0.23)
121
+ debase (~> 0.2.4.1)
122
+ faker (~> 1.6, >= 1.6.6)
123
+ gitlab-qa
124
+ knapsack (~> 1.17)
125
+ nokogiri (~> 1.10.9)
126
+ parallel_tests (~> 2.29)
127
+ pry-byebug (~> 3.5.1)
128
+ rake (~> 12.3.0)
129
+ rspec (~> 3.7)
130
+ rspec-retry (~> 0.6.1)
131
+ rspec_junit_formatter (~> 0.4.1)
132
+ ruby-debug-ide (~> 0.7.0)
133
+ selenium-webdriver (~> 3.12)
134
+ timecop (~> 0.9.1)
135
+
136
+ BUNDLED WITH
137
+ 1.17.3
@@ -0,0 +1,201 @@
1
+ # GitLab QA - End-to-end tests for GitLab
2
+
3
+ This directory contains [end-to-end tests](../../../doc/development/testing_guide/end_to_end/index.md)
4
+ for GitLab. It includes the test framework and the tests themselves.
5
+
6
+ The tests can be found in `qa/specs/features` (not to be confused with the unit
7
+ tests for the test framework, which are in `spec/`).
8
+
9
+ It is part of the [GitLab QA project](https://gitlab.com/gitlab-org/gitlab-qa).
10
+
11
+ ## What is it?
12
+
13
+ GitLab QA is an end-to-end tests suite for GitLab.
14
+
15
+ These are black-box and entirely click-driven end-to-end tests you can run
16
+ against any existing instance.
17
+
18
+ ## How does it work?
19
+
20
+ 1. When we release a new version of GitLab, we build a Docker images for it.
21
+ 1. Along with GitLab Docker Images we also build and publish GitLab QA images.
22
+ 1. GitLab QA project uses these images to execute end-to-end tests.
23
+
24
+ ## Validating GitLab views / partials / selectors in merge requests
25
+
26
+ We recently added a new CI job that is going to be triggered for every push
27
+ event in CE and EE projects. The job is called `qa:selectors` and it will
28
+ verify coupling between page objects implemented as a part of GitLab QA
29
+ and corresponding views / partials / selectors in CE / EE.
30
+
31
+ Whenever `qa:selectors` job fails in your merge request, you are supposed to
32
+ fix [page objects](../doc/development/testing_guide/end_to_end/page_objects.md). You should also trigger end-to-end tests
33
+ using `package-and-qa` manual action, to test if everything works fine.
34
+
35
+ ## How can I use it?
36
+
37
+ You can use GitLab QA to exercise tests on any live instance! If you don't
38
+ have an instance available you can follow the instructions below to use
39
+ the [GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit).
40
+ This is the recommended option if you would like to contribute to the tests.
41
+
42
+ Note: GitLab QA uses [Selenium WebDriver](https://www.seleniumhq.org/) via
43
+ [Cabybara](http://teamcapybara.github.io/capybara/), and by default it targets Chrome as
44
+ the browser to use. You will need to have Chrome (or Chromium) and
45
+ [chromedriver](https://chromedriver.chromium.org/) installed / in your `$PATH`.
46
+
47
+ ### Writing tests
48
+
49
+ - [Writing tests from scratch tutorial](../doc/development/testing_guide/end_to_end/beginners_guide.md)
50
+ - [Best practices](../doc/development/testing_guide/best_practices.md)
51
+ - [Using page objects](../doc/development/testing_guide/end_to_end/page_objects.md)
52
+ - [Guidelines](../doc/development/testing_guide/index.md)
53
+ - [Tests with special setup for local environemnts](../doc/development/testing_guide/end_to_end/running_tests_that_require_special_setup.md)
54
+
55
+ ### Run the end-to-end tests in a local development environment
56
+
57
+ Follow the GDK instructions to [prepare](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/prepare.md)
58
+ and [install](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/master/doc/set-up-gdk.md)
59
+ your local GitLab development environment.
60
+
61
+ Once you have GDK running, switch to the `qa` directory. E.g., if you setup
62
+ GDK to develop in the main `gitlab-ce` repo, the GitLab source code will be
63
+ in a `gitlab` directory and so the end-to-end test code will be in `gitlab/qa`.
64
+
65
+ From there you can run the tests. For example, the
66
+ following call would login to the GDK instance and run all specs in
67
+ `qa/specs/features`:
68
+
69
+ ```
70
+ # Make sure to install the dependencies first with `bundle install`
71
+
72
+ bundle exec bin/qa Test::Instance::All http://localhost:3000
73
+ ```
74
+
75
+ Note: If you want to run tests requiring SSH against GDK, you
76
+ will need to [modify your GDK setup](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/run_qa_against_gdk.md).
77
+
78
+ #### Running EE tests
79
+
80
+ When running EE tests you'll need to have a license available. GitLab engineers can [request a license](https://about.gitlab.com/handbook/developer-onboarding/#working-on-gitlab-ee).
81
+
82
+ Once you have the license file you can export it as an environment variable and then the framework can use it. If you do so it will be installed automatically.
83
+
84
+ ```
85
+ export EE_LICENSE=$(cat /path/to/gitlab_license)
86
+ ```
87
+
88
+ ### Running specific tests
89
+
90
+ You can also supply specific tests to run as another parameter. For example, to
91
+ run the repository-related specs, you can execute:
92
+
93
+ ```
94
+ bundle exec bin/qa Test::Instance::All http://localhost:3000 -- qa/specs/features/browser_ui/3_create/repository
95
+ ```
96
+
97
+ Since the arguments would be passed to `rspec`, you could use all `rspec`
98
+ options there. For example, passing `--backtrace` and also line number:
99
+
100
+ ```
101
+ bundle exec bin/qa Test::Instance::All http://localhost:3000 -- qa/specs/features/browser_ui/3_create/merge_request/create_merge_request_spec.rb:6 --backtrace
102
+ ```
103
+
104
+ Note that the separator `--` is required; all subsequent options will be
105
+ ignored by the QA framework and passed to `rspec`.
106
+
107
+ ### Overriding the authenticated user
108
+
109
+ Unless told otherwise, the QA tests will run as the default `root` user seeded
110
+ by the GDK.
111
+
112
+ If you need to authenticate as a different user, you can provide the
113
+ `GITLAB_USERNAME` and `GITLAB_PASSWORD` environment variables:
114
+
115
+ ```
116
+ GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bundle exec bin/qa Test::Instance::All https://gitlab.example.com
117
+ ```
118
+
119
+ Some QA tests require logging in as an admin user. By default, the QA
120
+ tests will use the the same `root` user seeded by the GDK.
121
+
122
+ If you need to authenticate with different admin credentials, you can
123
+ provide the `GITLAB_ADMIN_USERNAME` and `GITLAB_ADMIN_PASSWORD`
124
+ environment variables:
125
+
126
+ ```
127
+ GITLAB_ADMIN_USERNAME=admin GITLAB_ADMIN_PASSWORD=myadminpassword GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password bundle exec bin/qa Test::Instance::All https://gitlab.example.com
128
+ ```
129
+
130
+ If your user doesn't have permission to default sandbox group
131
+ `gitlab-qa-sandbox`, you could also use another sandbox group by giving
132
+ `GITLAB_SANDBOX_NAME`:
133
+
134
+ ```
135
+ GITLAB_USERNAME=jsmith GITLAB_PASSWORD=password GITLAB_SANDBOX_NAME=jsmith-qa-sandbox bundle exec bin/qa Test::Instance::All https://gitlab.example.com
136
+ ```
137
+
138
+ All [supported environment variables are here](https://gitlab.com/gitlab-org/gitlab-qa/blob/master/docs/what_tests_can_be_run.md#supported-environment-variables).
139
+
140
+ ### Sending additional cookies
141
+
142
+ The environment variable `QA_COOKIES` can be set to send additional cookies
143
+ on every request. This is necessary on gitlab.com to direct traffic to the
144
+ canary fleet. To do this set `QA_COOKIES="gitlab_canary=true"`.
145
+
146
+ To set multiple cookies, separate them with the `;` character, for example: `QA_COOKIES="cookie1=value;cookie2=value2"`
147
+
148
+
149
+ ### Building a Docker image to test
150
+
151
+ Once you have made changes to the CE/EE repositories, you may want to build a
152
+ Docker image to test locally instead of waiting for the `gitlab-ce-qa` or
153
+ `gitlab-ee-qa` nightly builds. To do that, you can run **from the top `gitlab`
154
+ directory** (one level up from this directory):
155
+
156
+ ```sh
157
+ docker build -t gitlab/gitlab-ce-qa:nightly --file ./qa/Dockerfile ./
158
+ ```
159
+
160
+ ### Quarantined tests
161
+
162
+ Tests can be put in quarantine by assigning `:quarantine` metadata. This means
163
+ they will be skipped unless run with `--tag quarantine`. This can be used for
164
+ tests that are expected to fail while a fix is in progress (similar to how
165
+ [`skip` or `pending`](https://relishapp.com/rspec/rspec-core/v/3-8/docs/pending-and-skipped-examples)
166
+ can be used).
167
+
168
+ ```
169
+ bundle exec bin/qa Test::Instance::All http://localhost:3000 -- --tag quarantine
170
+ ```
171
+
172
+ If `quarantine` is used with other tags, tests will only be run if they have at
173
+ least one of the tags other than `quarantine`. This is different from how RSpec
174
+ tags usually work, where all tags are inclusive.
175
+
176
+ For example, suppose one test has `:smoke` and `:quarantine` metadata, and
177
+ another test has `:ldap` and `:quarantine` metadata. If the tests are run with
178
+ `--tag smoke --tag quarantine`, only the first test will run. The test with
179
+ `:ldap` will not run even though it also has `:quarantine`.
180
+
181
+ ### Running tests with a feature flag enabled
182
+
183
+ Tests can be run with with a feature flag enabled by using the command-line
184
+ option `--enable-feature FEATURE_FLAG`. For example, to enable the feature flag
185
+ that enforces Gitaly request limits, you would use the command:
186
+
187
+ ```
188
+ bundle exec bin/qa Test::Instance::All http://localhost:3000 --enable-feature gitaly_enforce_requests_limits
189
+ ```
190
+
191
+ This will instruct the QA framework to enable the `gitaly_enforce_requests_limits`
192
+ feature flag ([via the API](https://docs.gitlab.com/ee/api/features.html)), run
193
+ all the tests in the `Test::Instance::All` scenario, and then disable the
194
+ feature flag again.
195
+
196
+ Note: the QA framework doesn't currently allow you to easily toggle a feature
197
+ flag during a single test, [as you can in unit tests](https://docs.gitlab.com/ee/development/feature_flags.html#specs),
198
+ but [that capability is planned](https://gitlab.com/gitlab-org/quality/team-tasks/issues/77).
199
+
200
+ Note also that the `--` separator isn't used because `--enable-feature` is a QA
201
+ framework option, not an `rspec` option.