Sha256: 52e93e6e6277d42487b0fe5c1dc5861d76e5b05c2e75ee1f59a70995b4cbbd09

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

require 'test_helper'

describe Rewritten::Document do

  before do
    class Product
      include Rewritten::Document
    end
    @instance = Product.new
    def @instance.url_for(object); '/products/123'; end
    def @instance.persisted?; true; end
  end

  it 'must add the rewritten methods to the class' do
    @instance.respond_to?(:rewritten_url=).must_equal true
    @instance.respond_to?(:rewritten_url).must_equal true
    @instance.respond_to?(:has_rewritten_url?).must_equal true
  end

  it 'must return empty string when not persisted' do

    def @instance.persisted?; false; end

    @instance.rewritten_url.must_equal "" 
  end

  it 'must return translation when persisted' do
    Rewritten.add_translation('/foo/bar', '/products/123') 
    @instance.rewritten_url.must_equal '/foo/bar'
  end

  it 'must return all translations as array' do

    Rewritten.add_translation('/foo/bar', '/products/123')
    Rewritten.add_translation('/foo/baz', '/products/123')

    @instance.rewritten_urls.must_equal ['/foo/bar', '/foo/baz']         

  end

  it 'must add a new translation' do
    @instance.has_rewritten_url?.must_equal false
    @instance.rewritten_url = '/foo/baz'  
    Rewritten.get_current_translation('/products/123').must_equal '/foo/baz'
    @instance.has_rewritten_url?.must_equal true
  end

  it 'must remove all translation' do
    @instance.rewritten_url = '/foo/bar'  
    @instance.rewritten_url = '/foo/baz'  
    @instance.remove_rewritten_urls
    @instance.rewritten_urls.must_equal []
  end

end




Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rewritten-0.12.0 test/rewritten/document_test.rb