Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/qa
diff options
context:
space:
mode:
authorSanad Liaquat <sliaquat@gitlab.com>2018-11-14 15:58:15 +0300
committerSanad Liaquat <sliaquat@gitlab.com>2018-11-26 11:04:48 +0300
commit84cb5f1322edd1f3d05ac92fa671ff3e366cd8c4 (patch)
treea00faa97ec96592211f76d84ac1271ab83e24f43 /qa
parent6c571a67b99c5864785328ff56e4e2e794266a19 (diff)
Porting more changes from ee
Diffstat (limited to 'qa')
-rw-r--r--qa/qa/page/component/select2.rb7
-rw-r--r--qa/qa/page/main/menu.rb6
-rw-r--r--qa/qa/resource/api_fabricator.rb21
-rw-r--r--qa/qa/resource/base.rb1
-rw-r--r--qa/qa/resource/sandbox.rb2
-rw-r--r--qa/qa/resource/user.rb14
-rw-r--r--qa/qa/runtime/env.rb6
7 files changed, 48 insertions, 9 deletions
diff --git a/qa/qa/page/component/select2.rb b/qa/qa/page/component/select2.rb
index 30829eb0221..6d07d5a10e6 100644
--- a/qa/qa/page/component/select2.rb
+++ b/qa/qa/page/component/select2.rb
@@ -3,7 +3,12 @@ module QA
module Component
module Select2
def select_item(item_text)
- find('ul.select2-result-sub > li', text: item_text).click
+ find('.select2-result-label', text: item_text).click
+ end
+
+ def search_and_select(item_text)
+ find('.select2-input').set(item_text)
+ select_item(item_text)
end
end
end
diff --git a/qa/qa/page/main/menu.rb b/qa/qa/page/main/menu.rb
index fb45ebef1b6..cc2724618e9 100644
--- a/qa/qa/page/main/menu.rb
+++ b/qa/qa/page/main/menu.rb
@@ -68,6 +68,12 @@ module QA
end
end
+ def has_admin_area_link?(wait: Capybara.default_max_wait_time)
+ using_wait_time(wait) do
+ page.has_selector?(element_selector_css(:admin_area_link))
+ end
+ end
+
private
def within_top_menu
diff --git a/qa/qa/resource/api_fabricator.rb b/qa/qa/resource/api_fabricator.rb
index 3762a94f312..397dfb16aa4 100644
--- a/qa/qa/resource/api_fabricator.rb
+++ b/qa/qa/resource/api_fabricator.rb
@@ -1,13 +1,11 @@
# frozen_string_literal: true
-require 'airborne'
require 'active_support/core_ext/object/deep_dup'
require 'capybara/dsl'
module QA
module Resource
module ApiFabricator
- include Airborne
include Capybara::DSL
HTTP_STATUS_OK = 200
@@ -96,6 +94,25 @@ module QA
def transform_api_resource(api_resource)
api_resource
end
+
+ def post(url, payload)
+ RestClient::Request.execute(
+ method: :post,
+ url: url,
+ payload: payload,
+ verify_ssl: false)
+ rescue RestClient::ExceptionWithResponse => e
+ e.response
+ end
+
+ def get(url)
+ RestClient::Request.execute(
+ method: :get,
+ url: url,
+ verify_ssl: false)
+ rescue RestClient::ExceptionWithResponse => e
+ e.response
+ end
end
end
end
diff --git a/qa/qa/resource/base.rb b/qa/qa/resource/base.rb
index f3eefb70520..dcea144ab74 100644
--- a/qa/qa/resource/base.rb
+++ b/qa/qa/resource/base.rb
@@ -2,6 +2,7 @@
require 'forwardable'
require 'capybara/dsl'
+require 'active_support/core_ext/array/extract_options'
module QA
module Resource
diff --git a/qa/qa/resource/sandbox.rb b/qa/qa/resource/sandbox.rb
index 41ce857a8b8..3274c0865e5 100644
--- a/qa/qa/resource/sandbox.rb
+++ b/qa/qa/resource/sandbox.rb
@@ -7,7 +7,7 @@ module QA
# creating it if it doesn't yet exist.
#
class Sandbox < Base
- attr_reader :path
+ attr_accessor :path
attribute :id
diff --git a/qa/qa/resource/user.rb b/qa/qa/resource/user.rb
index 9be88ba4211..c26f0c84a1f 100644
--- a/qa/qa/resource/user.rb
+++ b/qa/qa/resource/user.rb
@@ -6,7 +6,8 @@ module QA
module Resource
class User < Base
attr_reader :unique_id
- attr_writer :username, :password
+ attr_writer :username, :password, :name, :email
+ attr_accessor :provider, :extern_uid
def initialize
@unique_id = SecureRandom.hex(8)
@@ -73,7 +74,7 @@ module QA
username: username,
name: name,
skip_confirmation: true
- }
+ }.merge(ldap_post_body)
end
def self.fabricate_or_use(username, password)
@@ -89,6 +90,15 @@ module QA
private
+ def ldap_post_body
+ return {} unless extern_uid && provider
+
+ {
+ extern_uid: extern_uid,
+ provider: provider
+ }
+ end
+
def fetch_id(username)
users = parse_body(api_get_from("/users?username=#{username}"))
diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb
index 0d573859238..7b2768548dd 100644
--- a/qa/qa/runtime/env.rb
+++ b/qa/qa/runtime/env.rb
@@ -5,7 +5,7 @@ module QA
module Env
extend self
- attr_writer :personal_access_token
+ attr_writer :personal_access_token, :ldap_username, :ldap_password
# The environment variables used to indicate if the environment under test
# supports the given feature
@@ -92,11 +92,11 @@ module QA
end
def ldap_username
- ENV['GITLAB_LDAP_USERNAME']
+ @ldap_username ||= ENV['GITLAB_LDAP_USERNAME']
end
def ldap_password
- ENV['GITLAB_LDAP_PASSWORD']
+ @ldap_password ||= ENV['GITLAB_LDAP_PASSWORD']
end
def sandbox_name