Sha256: 3e67b58fcfa1e2700c225d80bdc8bb196f931b79392cbf57e2fac589abc006e7

Contents?: true

Size: 1.2 KB

Versions: 17

Compression:

Stored size: 1.2 KB

Contents

require 'spec_helper'

RSpec.describe RSolr::Uri do
  
  let(:uri) { RSolr::Uri }

  context '.params_to_solr' do
    it "converts Hash to Solr query string w/o a starting ?" do
      hash = {:q => "gold", :fq => ["mode:one", "level:2"]}
      query = uri.params_to_solr hash
      expect(query[0]).not_to eq(??)
      [/q=gold/, /fq=mode%3Aone/, /fq=level%3A2/].each do |p|
        expect(query).to match p
      end
      expect(query.split('&').size).to eq(3)
    end
    it 'should URL escape &' do
      expect(uri.params_to_solr(:fq => "&")).to eq('fq=%26')
    end

    it 'should convert spaces to +' do
      expect(uri.params_to_solr(:fq => "me and you")).to eq('fq=me+and+you')
    end

    it 'should URL escape complex queries, part 1' do
      my_params = {'fq' => '{!raw f=field_name}crazy+\"field+value'}
      expected = 'fq=%7B%21raw+f%3Dfield_name%7Dcrazy%2B%5C%22field%2Bvalue'
      expect(uri.params_to_solr(my_params)).to eq(expected)
    end

    it 'should URL escape complex queries, part 2' do
      my_params = {'q' => '+popularity:[10 TO *] +section:0'}
      expected = 'q=%2Bpopularity%3A%5B10+TO+*%5D+%2Bsection%3A0'
      expect(uri.params_to_solr(my_params)).to eq(expected)
    end
  end
end

Version data entries

17 entries across 17 versions & 4 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rsolr-2.6.0/spec/api/uri_spec.rb
rsolr-2.6.0 spec/api/uri_spec.rb
rsolr-2.5.0 spec/api/uri_spec.rb
rsolr-2.4.0 spec/api/uri_spec.rb
rsolr-2.3.0 spec/api/uri_spec.rb
telvue-rsolr-2.2.2 spec/api/uri_spec.rb
rsolr-2.2.1 spec/api/uri_spec.rb
rsolr-2.2.0 spec/api/uri_spec.rb
rsolr-2.1.0 spec/api/uri_spec.rb
rsolr-2.0.2 spec/api/uri_spec.rb
rsolr-2.0.1 spec/api/uri_spec.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/rsolr-2.0.0/spec/api/uri_spec.rb
rsolr-2.0.0 spec/api/uri_spec.rb
rsolr-2.0.0.rc1 spec/api/uri_spec.rb
rsolr-2.0.0.pre3 spec/api/uri_spec.rb
rsolr-2.0.0.pre2 spec/api/uri_spec.rb
rsolr-2.0.0.pre1 spec/api/uri_spec.rb