Sha256: 02fac6a755236e4c40afdfebb9b3255a417855be59ff37ac6025972a67fbdd58

Contents?: true

Size: 1.19 KB

Versions: 5

Compression:

Stored size: 1.19 KB

Contents

require File.expand_path('spec_helper', File.dirname(__FILE__))

describe Sunspot::DataExtractor do
  it "removes special characters from strings" do
    extractor = Sunspot::DataExtractor::AttributeExtractor.new(:name)
    blog      = Blog.new(:name => "Te\x0\x1\x7\x6\x8st\xB\xC\xE Bl\x1Fo\x7fg")

    expect(extractor.value_for(blog)).to eq "Test Blog"
  end

  it "removes special characters from arrays" do
    extractor = Sunspot::DataExtractor::BlockExtractor.new { tags }
    post      = Post.new(:tags => ["Te\x0\x1\x7\x6\x8st Ta\x1Fg\x7f 1", "Test\xB\xC\xE Tag 2"])

    expect(extractor.value_for(post)).to eq ["Test Tag 1", "Test Tag 2"]
  end

  it "removes special characters from hashes" do
    extractor = Sunspot::DataExtractor::Constant.new({ "Te\x0\x1\x7\x6\x8st" => "Ta\x1Fg\x7f" })

    expect(extractor.value_for(Post.new)).to eq({ "Test" => "Tag" })
  end

  it "skips other data types" do
    [
      :"Te\x0\x1\x7\x6\x8st",
      123,
      123.0,
      nil,
      false,
      true,
      Sunspot::Util::Coordinates.new(40.7, -73.5)
    ].each do |value|
      extractor = Sunspot::DataExtractor::Constant.new(value)

      expect(extractor.value_for(Post.new)).to eq value
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sunspot-2.7.1 spec/api/data_extractor_spec.rb
sunspot-2.7.0 spec/api/data_extractor_spec.rb
sunspot-2.6.0 spec/api/data_extractor_spec.rb
sunspot-2.5.0 spec/api/data_extractor_spec.rb
sunspot-2.4.0 spec/api/data_extractor_spec.rb