Sha256: fecdcca3e153c0e1bf80a70bce9dbcd76d4dfd9cceeb0ccf4e801522e295ce94

Contents?: true

Size: 1.08 KB

Versions: 92

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Capybara::Selector::CSS::Splitter do
  let :splitter do
    ::Capybara::Selector::CSS::Splitter.new
  end

  context 'split not needed' do
    it 'normal CSS selector' do
      css = 'div[id="abc"]'
      expect(splitter.split(css)).to eq [css]
    end

    it 'comma in strings' do
      css = 'div[id="a,bc"]'
      expect(splitter.split(css)).to eq [css]
    end

    it 'comma in pseudo-selector' do
      css = 'div.class1:not(.class1, .class2)'
      expect(splitter.split(css)).to eq [css]
    end
  end

  context 'split needed' do
    it 'root level comma' do
      css = 'div.class1, span, p.class2'
      expect(splitter.split(css)).to eq ['div.class1', 'span', 'p.class2']
    end

    it 'root level comma when quotes and pseudo selectors' do
      css = 'div.class1[id="abc\\"def,ghi"]:not(.class3, .class4), span[id=\'a"c\\\'de\'], section, #abc\\,def'
      expect(splitter.split(css)).to eq ['div.class1[id="abc\\"def,ghi"]:not(.class3, .class4)', 'span[id=\'a"c\\\'de\']', 'section', '#abc\\,def']
    end
  end
end

Version data entries

92 entries across 78 versions & 4 rubygems

Version Path
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/css_splitter_spec.rb
capybara-3.38.0 spec/css_splitter_spec.rb
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/css_splitter_spec.rb
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/capybara-3.37.1/spec/css_splitter_spec.rb
capybara-3.37.1 spec/css_splitter_spec.rb
capybara-3.37.0 spec/css_splitter_spec.rb
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/capybara-3.36.0/spec/css_splitter_spec.rb
tdiary-5.2.0 vendor/bundle/ruby/3.0.0/gems/capybara-3.36.0/spec/css_splitter_spec.rb
tdiary-5.2.0 vendor/bundle/ruby/2.7.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/capybara-3.36.0/spec/css_splitter_spec.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/capybara-3.36.0/spec/css_splitter_spec.rb
capybara-3.36.0 spec/css_splitter_spec.rb
tdiary-5.1.7 vendor/bundle/ruby/2.7.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
tdiary-5.1.7 vendor/bundle/ruby/3.0.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/tdiary-5.1.4/vendor/bundle/ruby/2.7.0/gems/capybara-3.34.0/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/2.7.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/3.0.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/tdiary-5.1.5/vendor/bundle/ruby/3.0.0/gems/capybara-3.34.0/spec/css_splitter_spec.rb
tdiary-5.1.6 vendor/bundle/ruby/2.7.0/gems/capybara-3.35.3/spec/css_splitter_spec.rb