Sha256: c466b5b4cd608c3528e847da17e5cce11360812a46addb1e1fc72cbbbda53184

Contents?: true

Size: 1.95 KB

Versions: 2

Compression:

Stored size: 1.95 KB

Contents

RSpec::Matchers.define :generate do |html|
  match do |helper, options = nil|
    if helper.is_a?(Hash)
      helper, options = helper.keys.first, helper.values.first
    end

    if helper == :link_to && options == :nil_name
      @inline = railsstrap.send helper, nil, '/'
      @block = @inline
    elsif helper == :link_to && options == :xss_script
      @inline = railsstrap.send helper, '<script>alert("xss")</script>', '/'
      @block = railsstrap.send(helper, '/') { '<script>alert("xss")</script>' }
    elsif helper == :link_to && options == :safe_html
      @inline = railsstrap.send helper, railsstrap.tag(:hr), '/'
      @block = railsstrap.send(helper, '/') { railsstrap.tag(:hr) }
    elsif helper == :link_to || helper == :button_to
      @inline = railsstrap.send helper, *['content', '/', options].compact
      if railsstrap.test_button_to_with_block
        @block = railsstrap.send(helper, *['/', options].compact) { 'content' }
      else
        @block = @inline
      end
    elsif helper == :dropdown
      @block = railsstrap.send(helper, *['caption', options].compact) { 'content' }
      @inline = @block
    elsif helper == :glyphicon || helper == :icon
      @inline = railsstrap.send helper, *['zoom-in', options].compact
      @block = railsstrap.send helper, *[:zoom_in, options].compact
    elsif helper == :progress_bar
      @inline = railsstrap.send helper, *Array.wrap(options)
      @block = @inline
    elsif helper == :navbar || helper == :nav || helper == :card_group
      @block = railsstrap.send(helper, *[options].compact) { 'content' }
      @inline = @block
    else
      @inline = railsstrap.send helper, *['content', options].compact
      @block = railsstrap.send(helper, *[options].compact) { 'content' }
    end

    case html
      when Regexp then @inline.match(html) && @block.match(html)
      else @inline.eql?(html) && @block.eql?(html)
    end
  end

  failure_message{|actual| "expected #{html}, got #{@inline} and #{@block}"}
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
railsstrap-4.0.0.beta3 spec/support/matchers.rb
railsstrap-4.0.0.beta2 spec/support/matchers.rb