Sha256: 848775f4be098a34c6cc84021f0ceef7887213f2dee5e95bc7859719bb39ff62

Contents?: true

Size: 1.43 KB

Versions: 12

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

module JmeterPerf
  class ExtendedDSL < DSL
    def http_cookie_manager(params = {}, &)
      params[:clearEachIteration] = true if params.key? :clear_each_iteration

      node = JmeterPerf::DSL::HTTPCookieManager.new(params)

      params[:user_defined_cookies]&.each { |cookie| add_cookie_to_collection(cookie, node) }

      attach_node(node, &)
    end

    alias_method :cookies, :http_cookie_manager

    private

    def add_cookie_to_collection(cookie, node)
      raise "Cookie name must be provided." unless cookie[:name]
      raise "Cookie value must be provided." unless cookie[:value]
      node.doc.at_xpath("//collectionProp") << Nokogiri::XML(
        JmeterPerf::Helpers::String.strip_heredoc(
          <<-EOS
            <elementProp name="#{cookie[:name]}" elementType="Cookie" testname="#{cookie[:name]}">
              <stringProp name="Cookie.value">#{cookie[:value]}</stringProp>
              <stringProp name="Cookie.domain">#{cookie[:domain]}</stringProp>
              <stringProp name="Cookie.path">#{cookie[:path]}</stringProp>
              <boolProp name="Cookie.secure">#{cookie[:secure] || false}</boolProp>
              <longProp name="Cookie.expires">0</longProp>
              <boolProp name="Cookie.path_specified">true</boolProp>
              <boolProp name="Cookie.domain_specified">true</boolProp>
            </elementProp>
          EOS
        )
      ).children
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jmeter_perf-1.1.1 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.1.0 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.10 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.9 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.8 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.7 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.6 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.5 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.4 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.2 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.1 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb
jmeter_perf-1.0.0 lib/jmeter_perf/extend/config_elements/http_cookie_manager.rb