Sha256: 1a5818246f47d4ae17d0c459b3ca584d840097b3ed40e93184bc1b2fa4d887e1

Contents?: true

Size: 1.13 KB

Versions: 14

Compression:

Stored size: 1.13 KB

Contents

class Should
  def equal_query(query)
    @object.to_query.split('&').should == query.split('&')
  end
end

describe "to_query" do
  it "should do a simple converion" do
    { :a => 10 }.should.equal_query 'a=10'
  end

  it "should escape for CGI" do
    { 'a:b' => 'c d' }.should.equal_query 'a%3Ab=c+d'
  end
  
  it "should work with nil parameter value" do
    empty = Object.new
    def empty.to_param; nil end
    { 'a' => empty }.should.equal_query 'a='
  end
  
  it "should do a nested conversion" do
    { :person => Hash[:login, 'seckar', :name, 'Nicholas'] }.should.equal_query 'person%5Blogin%5D=seckar&person%5Bname%5D=Nicholas'
  end
  
  it "should do a multiply nested query" do
    Hash[:account, {:person => {:id => 20}}, :person, {:id => 10}].should.equal_query 'account%5Bperson%5D%5Bid%5D=20&person%5Bid%5D=10'
  end
  
  it "should work with array values" do
    { :person => {:id => [10, 20]} }.should.equal_query 'person%5Bid%5D%5B%5D=10&person%5Bid%5D%5B%5D=20'
  end
  
  it "should not sort array values" do
    { :person => {:id => [20, 10]} }.should.equal_query 'person%5Bid%5D%5B%5D=20&person%5Bid%5D%5B%5D=10'
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
motion-support-1.2.1 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-1.1.1 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-1.2.0 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-1.1.0 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-1.0.0 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.3.0 spec/motion-support/core_ext/object/to_query_spec.rb
motion_blender-support-0.2.8 spec/motion-support/core_ext/object/to_query_spec.rb
motion_blender-support-0.2.7 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.6 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.5 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.4 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.3 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.2 spec/motion-support/core_ext/object/to_query_spec.rb
motion-support-0.2.0 spec/motion-support/core_ext/object/to_query_spec.rb