Commit 9eea3623 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'frozen_string_spec_support' into 'master'

Add frozen_string_literal to spec/support

See merge request gitlab-org/gitlab-ce!31132
parents 32be68af d4ef3be3
......@@ -60,8 +60,7 @@ module Gitlab
def get_info(key)
value = info[key]
Gitlab::Utils.force_utf8(value) if value
value
value.is_a?(String) ? Gitlab::Utils.force_utf8(value) : value
end
def username_and_email
......
......@@ -22,7 +22,7 @@ module Gitlab
end
def force_utf8(str)
str.force_encoding(Encoding::UTF_8)
str.dup.force_encoding(Encoding::UTF_8)
end
def ensure_utf8_size(str, bytes:)
......
......@@ -13,7 +13,7 @@ describe 'User browses commits' do
it 'renders commit' do
visit project_commit_path(project, sample_commit.id)
expect(page).to have_content(sample_commit.message.gsub!(/\s+/, ' '))
expect(page).to have_content(sample_commit.message.gsub(/\s+/, ' '))
.and have_content("Showing #{sample_commit.files_changed_count} changed files")
.and have_content('Side-by-side')
end
......
......@@ -40,7 +40,11 @@ describe Gitlab::Auth::OAuth::AuthHash do
last_name: last_name_ascii,
name: name_ascii,
nickname: nickname_ascii,
uid: uid_ascii
uid: uid_ascii,
address: {
locality: 'some locality',
country: 'some country'
}
}
end
......@@ -51,6 +55,7 @@ describe Gitlab::Auth::OAuth::AuthHash do
it { expect(auth_hash.username).to eql nickname_utf8 }
it { expect(auth_hash.name).to eql name_utf8 }
it { expect(auth_hash.password).not_to be_empty }
it { expect(auth_hash.location).to eq 'some locality, some country' }
end
context 'email not provided' do
......
# frozen_string_literal: true
shared_examples_for 'group and project boards' do |route_definition, ee = false|
let(:root_url) { route_definition.gsub(":id", board_parent.id.to_s) }
......
# frozen_string_literal: true
shared_examples 'creating an issue resolving discussions through the API' do
it 'creates a new project issue' do
expect(response).to have_gitlab_http_status(:created)
......
# frozen_string_literal: true
shared_examples 'a 404 response when source is private' do
before do
source.update_column(:visibility_level, Gitlab::VisibilityLevel::PRIVATE)
......
# frozen_string_literal: true
shared_examples_for 'group and project milestones' do |route_definition|
let(:resource_route) { "#{route}/#{milestone.id}" }
let(:label_1) { create(:label, title: 'label_1', project: project, priority: 1) }
......
# frozen_string_literal: true
shared_context 'disabled repository' do
before do
project.project_feature.update!(
......
# frozen_string_literal: true
module SchemaPath
def self.expand(schema, dir = nil)
if Gitlab.ee? && dir.nil?
......
# frozen_string_literal: true
shared_examples_for 'allows the "read_user" scope' do |api_version|
let(:version) { api_version || 'v4' }
......
# frozen_string_literal: true
shared_examples 'an unauthorized API user' do
it { is_expected.to eq(403) }
end
......
# frozen_string_literal: true
# Specs for reference links containing HTML.
#
# Requires a reference:
......
# frozen_string_literal: true
RSpec.configure do |config|
config.after do
BatchLoader::Executor.clear_current
......
# frozen_string_literal: true
# rubocop:disable Style/GlobalVars
require 'capybara/rails'
require 'capybara/rspec'
......
# frozen_string_literal: true
CarrierWave.root = File.expand_path('tmp/tests/public', Rails.root)
RSpec.configure do |config|
......
# frozen_string_literal: true
module ChunkedIOHelpers
def sample_trace_raw
@sample_trace_raw ||= File.read(expand_fixture_path('trace/sample_trace'))
......
# frozen_string_literal: true
module CommitTrailersSpecHelper
extend ActiveSupport::Concern
......
# frozen_string_literal: true
shared_context 'a GitHub-ish import controller' do
let(:user) { create(:user) }
let(:token) { "asdasd12345" }
......
# frozen_string_literal: true
# Specifications for behavior common to all objects with an email attribute.
# Takes a list of email-format attributes and requires:
# - subject { "the object with a attribute= setter" }
......
# frozen_string_literal: true
require 'spec_helper'
shared_context 'Ldap::OmniauthCallbacksController' do
......
# frozen_string_literal: true
shared_examples 'authenticates sessionless user' do |path, format, params|
params ||= {}
......
# frozen_string_literal: true
# rubocop:disable Metrics/AbcSize
# Note: The ABC size is large here because we have a method generating test cases with
......
# frozen_string_literal: true
module DbCleaner
def delete_from_all_tables!(except: nil)
DatabaseCleaner.clean_with(:deletion, cache_tables: false, except: except)
......
# frozen_string_literal: true
module ExternalAuthorizationServiceHelpers
def enable_external_authorization_service_check
stub_application_setting(external_authorization_service_enabled: true)
......
# frozen_string_literal: true
shared_examples 'thread comments' do |resource_name|
let(:form_selector) { '.js-main-target-form' }
let(:dropdown_selector) { "#{form_selector} .comment-type-dropdown" }
......
# frozen_string_literal: true
require 'spec_helper'
shared_examples 'reportable note' do |type|
......
# frozen_string_literal: true
shared_examples 'creating an issue for a thread' do
it 'shows an issue with the title filled in' do
title_field = page.find_field('issue[title]')
......
# frozen_string_literal: true
shared_examples "an autodiscoverable RSS feed with current_user's feed token" do
it "has an RSS autodiscovery link tag with current_user's feed token" do
expect(page).to have_css("link[type*='atom+xml'][href*='feed_token=#{user.feed_token}']", visible: false)
......
# frozen_string_literal: true
shared_examples 'variable list' do
it 'shows list of variables' do
page.within('.js-ci-variable-list-section') do
......
# frozen_string_literal: true
module ForgeryProtection
def with_forgery_protection
ActionController::Base.allow_forgery_protection = true
......
# frozen_string_literal: true
module GoogleApi
module CloudPlatformHelpers
def stub_google_api_validate_token
......
# frozen_string_literal: true
module ApiHelpers
# Public: Prepend a request path with the path to the API
#
......@@ -30,12 +32,13 @@ module ApiHelpers
end
if query_string
full_path << (path.index('?') ? '&' : '?')
full_path << query_string
end
separator = path.index('?') ? '&' : '?'
full_path + separator + query_string
else
full_path
end
end
def expect_paginated_array_response(items)
expect(response).to have_gitlab_http_status(200)
......
# frozen_string_literal: true
module AssetsHelpers
# In a CI environment the assets are not compiled, as there is a CI job
# `compile-assets` that compiles them in the prepare stage for all following
......
# frozen_string_literal: true
require 'zlib'
class BareRepoOperations
......
# frozen_string_literal: true
module BoardHelpers
def click_card(card)
within card do
......
# frozen_string_literal: true
module CapybaraHelpers
# Execute a block a certain number of times before considering it a failure
#
......
# frozen_string_literal: true
# frozen_sting_literal: true
# This generates fake CI metadata .gz for testing
......
# frozen_string_literal: true
# Helper for setting cookies in Selenium/WebDriver
#
module CookieHelper
......
# frozen_string_literal: true
module CycleAnalyticsHelpers
include GitHelpers
......
# frozen_string_literal: true
module DatabaseConnectionHelpers
def run_with_new_database_connection
pool = ActiveRecord::Base.connection_pool
......
# frozen_string_literal: true
module DeviseHelpers
# explicitly tells Devise which mapping to use
# this is needed when we are testing a Devise controller bypassing the router
......
# frozen_string_literal: true
module DragTo
def drag_to(list_from_index: 0, from_index: 0, to_index: 0, list_to_index: 0, selector: '', scrollable: 'body', duration: 1000)
evaluate_script("simulateDrag({scrollable: $('#{scrollable}').get(0), duration: #{duration}, from: {el: $('#{selector}').eq(#{list_from_index}).get(0), index: #{from_index}}, to: {el: $('#{selector}').eq(#{list_to_index}).get(0), index: #{to_index}}});")
......
# frozen_string_literal: true
module DropzoneHelper
# Provides a way to perform `attach_file` for a Dropzone-based file input
#
......
# frozen_string_literal: true
module EmailHelpers
def sent_to_user(user, recipients: email_recipients)
recipients.count { |to| to == user.notification_email }
......
# frozen_string_literal: true
module ExclusiveLeaseHelpers
def stub_exclusive_lease(key = nil, uuid = 'uuid', renew: false, timeout: nil)
key ||= instance_of(String)
......
# frozen_string_literal: true
module ExpectNextInstanceOf
def expect_next_instance_of(klass, *new_args)
receive_new = receive(:new)
......
# frozen_string_literal: true
require 'rubocop/rspec/support'
# https://github.com/backus/rubocop-rspec/blob/master/spec/support/expect_offense.rb
......
# frozen_string_literal: true
module FakeBlobHelpers
class FakeBlob
include BlobLike
......
# frozen_string_literal: true
class FakeRenameReservedPathMigrationV1 < ActiveRecord::Migration[4.2]
include Gitlab::Database::RenameReservedPathsMigration::V1
......
# frozen_string_literal: true
class FakeU2fDevice
attr_reader :name
......
# frozen_string_literal: true
# These helpers allow you to manipulate with sorting features.
#
# Usage:
......
# frozen_string_literal: true
# These helpers allow you to manipulate with notes.
#
# Usage:
......
# frozen_string_literal: true
# These helpers allow you to manipulate with sorting features.
#
# Usage:
......
# frozen_string_literal: true
# Helper methods for Banzai filter specs
#
# Must be included into specs manually
......
# frozen_string_literal: true
module FilteredSearchHelpers
def filtered_search
page.find('.filtered-search')
......
# frozen_string_literal: true
module FixtureHelpers
def fixture_file(filename, dir: '')
return '' if filename.blank?
......
# frozen_string_literal: true
require_relative 'workhorse_helpers'
module GitHttpHelpers
......
# frozen_string_literal: true
module GitlabVerifyHelpers
def collect_ranges(args = {})
verifier = described_class.new(args.merge(batch_size: 1))
......
# frozen_string_literal: true
module GraphqlHelpers
MutationDefinition = Struct.new(:query, :variables)
......
# frozen_string_literal: true
require 'ostruct'
# Helper methods for controller specs in the Import namespace
......
# frozen_string_literal: true
# see app/assets/javascripts/test_utils/simulate_input.js
module InputHelper
......
# frozen_string_literal: true
require_relative './wait_for_requests'
module InspectRequests
......
# frozen_string_literal: true
module IssueHelpers
def visit_issues(project, opts = {})
visit project_issues_path project, opts
......
# frozen_string_literal: true
require 'action_dispatch/testing/test_request'
require 'fileutils'
......
# frozen_string_literal: true
module JiraServiceHelper
JIRA_URL = "http://jira.example.net".freeze
JIRA_API = JIRA_URL + "/rest/api/2"
......
# frozen_string_literal: true
module Spec
module Support
module Helpers
......
# frozen_string_literal: true
module KubernetesHelpers
include Gitlab::Kubernetes
......
# frozen_string_literal: true
module LdapHelpers
def ldap_adapter(provider = 'ldapmain', ldap = double(:ldap))
::Gitlab::Auth::LDAP::Adapter.new(provider, ldap)
......
# frozen_string_literal: true
require 'io/console'
module LiveDebugger
......
# frozen_string_literal: true
require_relative 'devise_helpers'
module LoginHelpers
......
# frozen_string_literal: true
# This is a helper class used by the GitLab Markdown feature spec
#
# Because the feature spec only cares about the output of the Markdown, and the
......
# frozen_string_literal: true
module MergeRequestDiffHelpers
def click_diff_line(line_holder, diff_side = nil)
line = get_line_components(line_holder, diff_side)
......
# frozen_string_literal: true
module MergeRequestHelpers
def visit_merge_requests(project, opts = {})
visit project_merge_requests_path project, opts
......
# frozen_string_literal: true
module MigrationsHelpers
def active_record_base
ActiveRecord::Base
......
# frozen_string_literal: true
module MobileHelpers
def resize_screen_xs
resize_window(575, 768)
......
# frozen_string_literal: true
module NoteInteractionHelpers
def open_more_actions_dropdown(note)
note_element = find("#note_#{note.id}")
......
# frozen_string_literal: true
module NotificationHelpers
extend self
......
# frozen_string_literal: true
module ProjectForksHelper
def fork_project(project, user = nil, params = {})
Gitlab::GitalyClient.allow_n_plus_1_calls do
......
# frozen_string_literal: true
module PrometheusHelpers
def prometheus_memory_query(environment_slug)
%{avg(container_memory_usage_bytes{container_name!="POD",environment="#{environment_slug}"}) / 2^20}
......
# frozen_string_literal: true
module ActiveRecord
class QueryRecorder
attr_reader :log, :skip_cached, :cached
......
# frozen_string_literal: true
module QuickActionsHelpers
def write_note(text)
Sidekiq::Testing.fake! do
......
# frozen_string_literal: true
module RakeHelpers
def run_rake_task(task_name, *args)
Rake::Task[task_name].reenable
......
# frozen_string_literal: true
module ReactiveCachingHelpers
def reactive_cache_key(subject, *qualifiers)
([subject.class.reactive_cache_key.call(subject)].flatten + qualifiers).join(':')
......
# frozen_string_literal: true
class Redis
ForbiddenCommand = Class.new(StandardError)
......
# frozen_string_literal: true
module ReferenceParserHelpers
def empty_html_link
Nokogiri::HTML.fragment('<a></a>').children[0]
......
# frozen_string_literal: true
module RepoHelpers
extend self
......
# frozen_string_literal: true
module RoutesHelpers
def fake_routes(&block)
@routes = @routes.dup
......
# frozen_string_literal: true
module SearchHelpers
def select_filter(name)
find(:xpath, "//ul[contains(@class, 'search-filter')]//a[contains(.,'#{name}')]").click
......
# frozen_string_literal: true
# This file is generated by generate-seed-repo-rb. Do not edit this file manually.
#
# Seed repo:
......
# frozen_string_literal: true
require_relative 'wait_for_requests'
# Select2 ajax programmatic helper
......
# frozen_string_literal: true
module SelectionHelper
def select_element(selector)
find(selector)
......
# frozen_string_literal: true
# Helper allows you to sort items
#
# Params
......
# frozen_string_literal: true
require 'active_support/core_ext/hash/transform_values'
require 'active_support/hash_with_indifferent_access'
require 'active_support/dependencies'
......
# frozen_string_literal: true
# Inspired by https://github.com/ljkbennett/stub_env/blob/master/lib/stub_env/helpers.rb
module StubENV
def stub_env(key_or_hash, value = nil)
......
# frozen_string_literal: true
module StubFeatureFlags
# Stub Feature flags with `flag_name: true/false`
#
......
# frozen_string_literal: true
module StubGitlabCalls
def stub_gitlab_calls
stub_user
......
# frozen_string_literal: true
module StubGitlabData
def gitlab_ci_yaml
File.read(Rails.root.join('spec/support/gitlab_stubs/gitlab_ci.yml'))
......
# frozen_string_literal: true
module StubMetrics
def authentication_metrics
Gitlab::Auth::Activity
......
# frozen_string_literal: true
module StubObjectStorage
def stub_object_storage_uploader(
config:,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment